/* Ajustements transversaux : la palette, les textes et les visuels d’origine sont conservés. */
:root {
  --green-dark: #1B5E20;
  --green: #2E7D32;
  --green-light: #66BB6A;
  --yellow: #F9A825;
  --dark: #263238;
  --light: #F5F8F5;
  --ui-border: #E5ECE6;
  --ui-muted: #718076;
  --ui-shadow: 0 18px 48px rgba(38, 50, 56, .12);
}

html { scroll-behavior: smooth; scroll-padding-top: 92px; }
body { text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; }
button, input, select, textarea { font: inherit; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 3px solid #F9A825; outline-offset: 3px;
}
button:disabled { opacity: .55; cursor: not-allowed; }

/* Navigation du site */
.header { isolation: isolate; }
.navbar { width: min(1280px, calc(100% - 48px)); gap: 18px; }
.logo-image { width: 138px; height: 60px; object-fit: contain; }
.nav-menu { gap: clamp(14px, 1.8vw, 28px); }
.nav-link { font-size: 13px; }
.nav-button, .producer-access { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; white-space: nowrap; }
.producer-access { gap: 8px; padding: 11px 15px; border-radius: 50px; font-size: 12px; font-weight: 800; }
.mobile-nav-action { display: none; }
.menu-toggle { align-items: center; justify-content: center; }
.menu-toggle[aria-expanded="true"] { background: var(--green-dark); }
.hero { background-position: center 43%; }
.hero-content { max-width: 690px; }
.hero h1 { max-width: 680px; font-size: clamp(42px, 5.3vw, 68px); line-height: 1.1; text-wrap: balance; }
.hero p { max-width: 610px; font-size: clamp(15px, 1.4vw, 18px); line-height: 1.8; }
.hero-buttons { flex-wrap: wrap; }
.btn { transition: transform .2s ease, box-shadow .2s ease, background .2s ease; }
.btn:hover { transform: translateY(-2px); }
.section-container { width: min(1180px, calc(100% - 48px)); }
.section { scroll-margin-top: 88px; }
.about-image img { object-fit: cover; }
.solution-card, .why-item, .impact-card, .contact-box { transition: transform .22s ease, box-shadow .22s ease; }
.solution-card:hover, .why-item:hover, .impact-card:hover { transform: translateY(-4px); box-shadow: var(--ui-shadow); }
.contact-form input, .contact-form select, .contact-form textarea,
.producer-profile-form input, .producer-profile-form select, .producer-profile-form textarea,
.production-form input, .production-form select, .production-form textarea {
  border: 1px solid var(--ui-border); transition: border-color .18s ease, box-shadow .18s ease;
}
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus,
.producer-profile-form input:focus, .producer-profile-form select:focus, .producer-profile-form textarea:focus,
.production-form input:focus, .production-form select:focus, .production-form textarea:focus {
  border-color: var(--green-light); box-shadow: 0 0 0 3px rgba(102, 187, 106, .16); outline: 0;
}
.solution-modal.active .solution-modal-content { animation: panel-enter .22s ease both; }
.back-to-top { display: grid; place-items: center; }
.mobile-nav-action a { display: block; }

/* Écrans de connexion et d’inscription */
.login-page, .register-page { min-height: 100svh; padding: 32px 18px; }
.login-container, .register-container { width: min(100%, 480px); margin-inline: auto; }
.login-card, .register-card { border: 1px solid rgba(46, 125, 50, .12); box-shadow: 0 24px 70px rgba(38, 50, 56, .13); }
.login-input:focus-within, .input-box:focus-within { border-color: var(--green-light); box-shadow: 0 0 0 3px rgba(102, 187, 106, .15); }
.login-input input:focus, .input-box input:focus, .input-box select:focus { outline: 0; }
.password-toggle { display: inline-grid; place-items: center; min-width: 40px; min-height: 40px; }
.login-button, .register-card form > button { min-height: 48px; transition: transform .18s ease, box-shadow .18s ease; }
.login-button:hover, .register-card form > button:hover { transform: translateY(-1px); box-shadow: 0 9px 22px rgba(46, 125, 50, .2); }
.auth-notice { margin: 0 0 18px; padding: 10px 12px; color: #6D5A2B; background: #FFF8E5; border: 1px solid #F1E2B8; border-radius: 9px; font-size: 12px; line-height: 1.6; }
.auth-feedback { min-height: 0; margin: 10px 0 0; color: var(--green-dark); font-size: 13px; font-weight: 700; }
.auth-feedback:empty { display: none; }
.auth-feedback.is-error { color: #9C3630; }
.password-hint { display: block; margin-top: 5px; color: var(--ui-muted); font-size: 11px; }

/* Espace producteur */
.dashboard-page { min-height: 100vh; }
.dashboard-sidebar { box-shadow: 6px 0 24px rgba(38, 50, 56, .045); }
.dashboard-logo { display: grid; place-items: center; min-height: 104px; }
.dashboard-logo img { width: 158px; height: 70px; }
.dashboard-nav { padding-top: 18px; }
.dashboard-nav-link { min-height: 43px; padding: 11px 13px; }
.dashboard-header { min-height: 80px; gap: 14px; }
.dashboard-header-title h1 { letter-spacing: -.035em; }
.dashboard-content { width: min(1280px, calc(100% - 56px)); padding: 30px 0 44px; }
.dashboard-welcome { border: 1px solid rgba(255,255,255,.12); box-shadow: 0 13px 35px rgba(27, 94, 32, .1); }
.dashboard-stats { gap: 14px; }
.dashboard-stat-card, .dashboard-section, .dashboard-tip, .profile-card { border: 1px solid var(--ui-border); box-shadow: 0 7px 24px rgba(38, 50, 56, .045); }
.dashboard-stat-card { min-height: 105px; }
.dashboard-section { margin-top: 18px; }
.quick-action { min-height: 84px; }
.dashboard-empty { padding-block: 28px; }
.profile-view[hidden], .module-view[hidden] { display: none !important; }
.profile-view { animation: panel-enter .2s ease both; }
.profile-card { overflow: hidden; }
.profile-form-grid { gap: 16px; }
.profile-input { min-height: 45px; }
.profile-input input { min-height: 42px; }
.profile-actions { display: flex; justify-content: flex-end; gap: 10px; }
.profile-save-button, .profile-cancel-button { min-height: 43px; border-radius: 9px; }
.profile-save-button { background: var(--green); }
.module-view { animation: panel-enter .2s ease both; }
.module-header { display: flex; justify-content: space-between; align-items: flex-end; gap: 18px; margin-bottom: 18px; }
.module-header h2 { margin: 0 0 4px; color: var(--dark); font-size: clamp(22px, 3vw, 30px); }
.module-header p { margin: 0; color: var(--ui-muted); font-size: 13px; }
.module-action { display: inline-flex; align-items: center; gap: 8px; min-height: 42px; padding: 0 15px; color: #fff; background: var(--green); border: 0; border-radius: 9px; font-weight: 800; cursor: pointer; }
.module-action:hover { background: var(--green-dark); }
.module-card { padding: 20px; background: #fff; border: 1px solid var(--ui-border); border-radius: 14px; box-shadow: 0 8px 25px rgba(38,50,56,.045); }
.module-table-wrap { overflow-x: auto; border: 1px solid var(--ui-border); border-radius: 10px; background: #fff; }
.module-table { width: 100%; min-width: 640px; border-collapse: collapse; }
.module-table th, .module-table td { padding: 12px 14px; border-bottom: 1px solid #EDF1ED; text-align: left; font-size: 12px; }
.module-table th { color: #637267; background: #F7FAF7; font-size: 10px; letter-spacing: .06em; text-transform: uppercase; }
.module-table tr:last-child td { border-bottom: 0; }
.module-empty { padding: 42px 20px; color: var(--ui-muted); background: #fff; border: 1px dashed #D8E3D7; border-radius: 12px; text-align: center; }
.module-empty i { display: block; margin-bottom: 12px; color: var(--green); font-size: 28px; }
.module-empty h3 { margin: 0 0 5px; color: var(--dark); font-size: 16px; }
.module-empty p { max-width: 450px; margin: 0 auto 14px; font-size: 12px; }
.module-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-bottom: 18px; }
.module-form label { display: grid; gap: 6px; color: #435448; font-size: 12px; font-weight: 800; }
.module-form .field-full { grid-column: 1 / -1; }
.module-form input, .module-form select, .module-form textarea { width: 100%; min-height: 42px; padding: 9px 11px; color: var(--dark); background: #fff; border: 1px solid var(--ui-border); border-radius: 8px; }
.module-form input:focus, .module-form select:focus, .module-form textarea:focus { border-color: var(--green-light); outline: 0; box-shadow: 0 0 0 3px rgba(102,187,106,.14); }
.module-form-actions { display: flex; justify-content: flex-end; gap: 9px; grid-column: 1 / -1; }
.module-secondary { min-height: 40px; padding: 0 14px; color: #4D5F51; background: #F1F5F0; border: 0; border-radius: 8px; font-weight: 700; cursor: pointer; }
.module-row-actions { display: flex; gap: 6px; }
.module-row-actions button { min-height: 30px; padding: 0 9px; color: var(--green-dark); background: #ECF5EA; border: 0; border-radius: 6px; font-size: 11px; font-weight: 800; cursor: pointer; }
.module-row-actions button[data-delete] { color: #9C3630; background: #FBEDEC; }
.module-toast { position: fixed; z-index: 1200; right: 20px; bottom: 20px; max-width: min(420px, calc(100% - 32px)); padding: 13px 16px; color: #fff; background: var(--green-dark); border-radius: 10px; box-shadow: var(--ui-shadow); opacity: 0; transform: translateY(8px); pointer-events: none; transition: .2s ease; }
.module-toast.show { opacity: 1; transform: none; }
.module-toast.is-error { background: #8F302A; }
.dashboard-logout { width: calc(100% - 30px); margin: 8px 15px 14px; border: 0; text-align: left; cursor: pointer; }
.production-entry { position: relative; margin: 10px 0; padding: 18px 145px 18px 18px; background: #fff; border: 1px solid var(--ui-border); border-radius: 12px; box-shadow: 0 7px 24px rgba(38,50,56,.045); }
.production-entry h3 { margin: 0 0 5px; color: var(--green-dark); font-size: 16px; }
.production-entry p { margin: 0; color: var(--ui-muted); font-size: 13px; line-height: 1.6; }
.production-remove { position: absolute; top: 50%; right: 16px; min-height: 36px; padding: 0 12px; color: #9C3630; background: #FBEDEC; border: 0; border-radius: 7px; font-size: 12px; font-weight: 800; cursor: pointer; transform: translateY(-50%); }
.contact-feedback { margin-top: 12px; }
.socials .social-link { width: 38px; height: 38px; display: grid; place-items: center; color: rgba(255,255,255,.52); background: rgba(255,255,255,.05); border-radius: 10px; cursor: default; }
.footer-bottom .legal-placeholder { color: rgba(255,255,255,.45); font-size: 11px; cursor: help; }
.dashboard-activity-list { display: grid; gap: 10px; padding: 14px; background: #fff; border: 1px solid var(--ui-border); border-radius: 11px; }
.dashboard-activity-item { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-bottom: 10px; border-bottom: 1px solid #EDF1ED; color: var(--dark); font-size: 12px; }
.dashboard-activity-item:last-child { padding-bottom: 0; border-bottom: 0; }
.dashboard-activity-item time { color: var(--ui-muted); white-space: nowrap; font-size: 11px; }
.role-page { animation: panel-enter .2s ease both; }
.quick-actions button.quick-action { width: 100%; color: inherit; background: #fff; border: 1px solid var(--ui-border); text-align: left; cursor: pointer; font: inherit; }
.quick-actions button.quick-action:hover { border-color: rgba(46,125,50,.28); box-shadow: 0 10px 24px rgba(38,50,56,.08); }
.nav-count { display: inline-grid; place-items: center; min-width: 21px; height: 21px; margin-left: auto; padding: 0 5px; color: var(--green-dark); background: #EAF4E9; border-radius: 99px; font-size: 10px; font-weight: 800; }
.market-toolbar { display: grid; grid-template-columns: 1fr minmax(190px, .4fr); align-items: end; gap: 9px 14px; margin: 20px 0; padding: 17px; background: #fff; border: 1px solid var(--ui-border); border-radius: 12px; }
.market-toolbar label { color: #435448; font-size: 11px; font-weight: 800; }
.market-search { position: relative; }
.market-search i { position: absolute; top: 50%; left: 13px; color: var(--ui-muted); transform: translateY(-50%); }
.market-toolbar input, .market-toolbar select { width: 100%; min-height: 42px; padding: 9px 12px; color: var(--dark); background: #fff; border: 1px solid var(--ui-border); border-radius: 8px; }
.market-toolbar input { padding-left: 37px; }
.buyer-product-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 15px; }
.buyer-product-card { display: flex; flex-direction: column; min-height: 235px; padding: 18px; background: #fff; border: 1px solid var(--ui-border); border-radius: 13px; box-shadow: 0 7px 24px rgba(38,50,56,.045); }
.buyer-product-card h3 { margin: 8px 0 4px; color: var(--dark); font-size: 16px; }
.buyer-product-card p { margin: 4px 0; color: var(--ui-muted); font-size: 12px; }
.buyer-product-category { align-self: flex-start; padding: 5px 9px; color: var(--green-dark); background: #EAF4E9; border-radius: 99px; font-size: 10px; font-weight: 800; }
.buyer-product-price { margin-top: auto !important; padding-top: 12px; color: var(--green-dark) !important; font-size: 16px !important; font-weight: 800; }
.buyer-product-card .module-action { justify-content: center; margin-top: 10px; }
.buyer-request-card { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin: 10px 0; padding: 16px; background: #fff; border: 1px solid var(--ui-border); border-radius: 11px; }
.buyer-request-card h3 { margin: 0 0 4px; color: var(--dark); font-size: 14px; }
.buyer-request-card p { margin: 0; color: var(--ui-muted); font-size: 12px; line-height: 1.6; }
.request-status { display: inline-block; margin-top: 7px; padding: 4px 8px; color: #705E2E; background: #FFF8E5; border-radius: 99px; font-size: 10px; font-weight: 800; }
.buyer-dialog { width: min(520px, calc(100% - 28px)); padding: 0; color: var(--dark); background: #fff; border: 1px solid var(--ui-border); border-radius: 16px; box-shadow: var(--ui-shadow); }
.buyer-dialog::backdrop { background: rgba(20,38,25,.52); backdrop-filter: blur(3px); }
.buyer-dialog-form { display: grid; gap: 13px; padding: 22px; }
.buyer-dialog-form > label { display: grid; gap: 6px; color: #435448; font-size: 12px; font-weight: 800; }
.buyer-dialog-form input, .buyer-dialog-form textarea { width: 100%; min-height: 42px; padding: 10px 12px; border: 1px solid var(--ui-border); border-radius: 8px; font: inherit; }
.buyer-dialog-form textarea { resize: vertical; }
.dialog-close { display: grid; place-items: center; width: 38px; height: 38px; color: var(--dark); background: #F1F5F0; border: 0; border-radius: 50%; cursor: pointer; }
.buyer-dialog .module-note { margin: 0; }
.module-note { margin: 0 0 16px; padding: 11px 13px; color: #6D5A2B; background: #FFF8E5; border: 1px solid #F1E2B8; border-radius: 9px; font-size: 12px; }
.account-completion { margin: 0 0 16px; padding: 16px; background: #f6faf5; border: 1px solid #dbe9dc; border-radius: 12px; }
.account-completion-head { display: flex; justify-content: space-between; gap: 12px; align-items: center; margin-bottom: 9px; color: #315b39; font-size: 13px; font-weight: 800; }
.account-completion-head strong { color: #214d2d; font-size: 14px; }
.account-completion-track { height: 9px; overflow: hidden; background: #e2eadf; border-radius: 999px; }
.account-completion-track span { display: block; height: 100%; background: linear-gradient(90deg, #69a84f, #26713d); border-radius: inherit; transition: width .2s ease; }
.account-completion ul { display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 12px 0 0; padding-left: 18px; color: #657269; font-size: 12px; }
.account-completion.is-complete { color: #245c35; background: #f1f8ef; }
.account-profile-status { display: inline-flex; align-items: center; gap: 7px; margin-top: 10px; padding: 6px 10px; color: #765d1b; background: #fff8e5; border-radius: 999px; font-size: 12px; font-weight: 800; }
.account-document-upload { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 16px; }
.account-document-upload label { display: grid; gap: 7px; color: #435448; font-size: 12px; font-weight: 800; }
.account-document-upload input { max-width: 100%; font-size: 12px; }
.account-document-upload small { color: #718076; font-size: 11px; font-weight: 500; }
@media (max-width: 620px) { .account-completion-head { align-items: flex-start; flex-direction: column; } .account-document-upload { grid-template-columns: 1fr; } }
.account-exit { display: flex; align-items: center; gap: 11px; width: calc(100% - 30px); margin: 0 15px 16px; padding: 12px 14px; color: #7D514B; background: #FBF2F0; border-radius: 9px; font-size: 13px; font-weight: 700; }
.account-exit:hover { background: #F8E7E3; }
.prototype-strip { display: flex; align-items: flex-start; gap: 9px; margin: 0 auto 0; padding: 11px 14px; color: #705E2E; background: #FFF8E5; border-bottom: 1px solid #F1E2B8; font-size: 11px; line-height: 1.55; }
.prototype-strip i { margin-top: 2px; }

/* Pages publiques et navigation multipage */
.public-page { min-height: 65vh; background: var(--light); }
.public-page-intro { padding: 145px 0 42px; background: linear-gradient(135deg, #F5F8F5, #EEF6EE); }
.public-page-intro h1, .public-contact-heading h1 { max-width: 900px; margin: 0 0 16px; color: var(--dark); font-size: clamp(34px, 5vw, 56px); line-height: 1.12; letter-spacing: -.045em; }
.public-page-intro p, .public-contact-heading p { max-width: 760px; color: var(--ui-muted); font-size: 16px; line-height: 1.8; }
.public-about .section-container { align-items: center; }
.public-about .about-content .btn { margin-top: 25px; }
.public-values-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.public-values-grid .solution-card { opacity: 1; transform: none; }
.public-values-grid .solution-card h2 { margin: 10px 0; color: var(--dark); font-size: 21px; line-height: 1.35; letter-spacing: -.02em; }
.public-values-grid .solution-card h3 { margin: 10px 0; }
.public-values-grid .solution-card p { line-height: 1.75; }
.public-services { padding-top: 38px; }
.public-services .solution-card { scroll-margin-top: 105px; opacity: 1; transform: none; }
.public-services .solution-card h2 { margin: 15px 0 12px; color: var(--dark); font-size: 23px; line-height: 1.3; letter-spacing: -.025em; }
.public-services .solution-link, .public-news .solution-link { display: inline-flex; align-items: center; gap: 9px; margin-top: 15px; }
.public-article-type { display: inline-flex; margin: 6px 0 2px; color: var(--green); font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.public-news .solution-card { opacity: 1; transform: none; }
.public-news .solution-card h2 { margin: 10px 0; color: var(--dark); font-size: 21px; line-height: 1.35; }
.public-news-note { margin-top: 22px; color: var(--ui-muted); font-size: 12px; line-height: 1.7; }
.public-cta { padding: 55px 0; background: #EAF3EA; }
.public-cta .section-container { display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.public-cta h2 { margin: 0 0 10px; color: var(--dark); font-size: clamp(24px, 3vw, 34px); }
.public-cta p { max-width: 700px; color: var(--ui-muted); line-height: 1.7; }
.public-list-heading { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 28px; }
.public-list-heading h2 { margin-bottom: 8px; color: var(--dark); font-size: clamp(24px, 3vw, 32px); }
.public-list-heading p { color: var(--ui-muted); font-size: 14px; }
.public-products-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.public-product-card { padding: 25px; background: #fff; border: 1px solid var(--ui-border); border-radius: 18px; box-shadow: 0 8px 26px rgba(38, 50, 56, .05); }
.public-product-card h3 { margin: 10px 0; color: var(--dark); font-size: 20px; }
.public-product-card p { margin: 8px 0; color: var(--ui-muted); font-size: 13px; line-height: 1.65; }
.public-product-card .public-product-price { color: var(--green-dark); font-size: 17px; font-weight: 800; }
.public-product-card .btn { margin-top: 12px; }
.public-product-category { display: inline-flex; padding: 6px 10px; color: var(--green-dark); background: #EAF5EA; border-radius: 30px; font-size: 11px; font-weight: 800; }
.public-empty-state { grid-column: 1 / -1; padding: 48px 24px; background: #fff; border: 1px dashed #C9D9CA; border-radius: 18px; text-align: center; }
.public-empty-state > i { color: var(--green); font-size: 32px; }
.public-empty-state h3 { margin: 14px 0 8px; color: var(--dark); }
.public-empty-state p { color: var(--ui-muted); }
.public-contact-page { padding-top: 132px; }
.public-contact-heading { margin: 0 auto 32px; }
.contact-detail a { color: var(--green-dark); font-size: 13px; font-weight: 800; text-decoration: none; }
.contact-detail a:hover { text-decoration: underline; }
.contact-honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.contact-privacy-note { color: var(--ui-muted); font-size: 11px; line-height: 1.6; }
.home-contact-action { align-self: center; padding: 34px; background: #F5F8F5; border-radius: 18px; }
.home-contact-action > i { color: var(--green); font-size: 27px; }
.home-contact-action h3 { margin: 14px 0 8px; font-size: 21px; }
.home-contact-action p { margin-bottom: 20px; color: var(--ui-muted); line-height: 1.7; }
.profile-page-content { padding-top: 42px; }
.profile-panel { max-width: 900px; margin: 0 auto; padding: clamp(22px, 4vw, 42px); background: #fff; border: 1px solid var(--ui-border); border-radius: 22px; box-shadow: var(--ui-shadow); }
.profile-panel-heading { display: flex; align-items: center; gap: 16px; margin-bottom: 26px; }
.profile-avatar { display: grid; width: 54px; height: 54px; place-items: center; color: var(--green); background: #E8F5E9; border-radius: 17px; font-size: 22px; }
.profile-panel-heading h2 { margin-bottom: 5px; color: var(--dark); font-size: 24px; }
.profile-panel-heading p { color: var(--ui-muted); font-size: 13px; }
.profile-edit-form { display: grid; gap: 18px; }
.profile-edit-form[hidden] { display: none; }
.profile-edit-form .form-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.profile-edit-form .form-group input { font-family: inherit; }
.profile-form-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 4px; }
.profile-form-actions .btn { min-height: 46px; padding: 12px 18px; border: 0; border-radius: 10px; font-weight: 800; }
.profile-form-actions .btn-secondary { color: var(--green-dark); background: #EAF5EA; }
.profile-access-feedback { margin: 0 0 16px; color: var(--ui-muted); font-size: 14px; line-height: 1.7; }
.profile-access-feedback:empty { display: none; }
.profile-access-feedback.is-error { color: #9C3630; }

@media (max-width: 850px) {
  .public-values-grid, .public-products-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .public-cta .section-container { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 600px) {
  .public-page-intro { padding: 118px 0 32px; }
  .public-page-intro h1, .public-contact-heading h1 { font-size: clamp(31px, 9vw, 42px); }
  .public-page-intro p, .public-contact-heading p { font-size: 14px; }
  .public-values-grid, .public-products-grid, .profile-edit-form .form-row { grid-template-columns: 1fr; }
  .public-list-heading { align-items: flex-start; flex-direction: column; }
  .public-contact-page { padding-top: 100px; }
  .contact-box { padding: 30px 21px; gap: 34px; }
  .home-contact-action { padding: 24px; }
  .profile-page-content { padding-top: 24px; }
}

@keyframes panel-enter { from { opacity: .5; transform: translateY(5px); } to { opacity: 1; transform: translateY(0); } }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

@media (max-width: 1050px) {
  .navbar { gap: 12px; }
  .nav-menu { gap: 16px; }
  .nav-link { font-size: 12px; }
  .nav-button { padding-inline: 13px; font-size: 11px; }
  .producer-access { padding-inline: 12px; font-size: 11px; }
}

@media (max-width: 850px) {
  .navbar { position: relative; width: calc(100% - 34px); height: 76px; justify-content: space-between; gap: 10px; }
  .logo-image { width: 126px; height: 55px; }
  .menu-toggle { display: inline-flex; flex: 0 0 43px; }
  .nav-menu { position: absolute; top: calc(100% - 1px); right: -17px; left: -17px; z-index: 1002; display: none; align-items: stretch; gap: 0; padding: 8px 18px 17px; background: #fff; border-top: 1px solid #E8F0E9; box-shadow: 0 18px 28px rgba(38,50,56,.14); }
  .nav-menu.active { display: flex; flex-direction: column; }
  .nav-menu li { border-bottom: 1px solid #EDF1ED; }
  .nav-menu li:last-child { border-bottom: 0; }
  .nav-menu .nav-link, .header.scrolled .nav-menu .nav-link { display: block; padding: 12px 4px; color: var(--dark); }
  .nav-menu .nav-link::after { display: none; }
  .mobile-nav-action { display: block; }
  .nav-button, .producer-access { display: none !important; }
  .mobile-nav-action:last-child a { margin-top: 10px; padding: 12px 14px; color: #fff !important; background: var(--green); border-radius: 8px; text-align: center; }
  .hero { min-height: 720px; }
  .hero-container { width: calc(100% - 42px); padding-top: 95px; padding-bottom: 80px; }
  .hero-content { width: min(650px, 100%); }
  .hero-overlay { background: linear-gradient(90deg, rgba(12,45,18,.93), rgba(24,80,31,.73)); }
  .section { padding-block: 78px; }
  .dashboard-sidebar { width: 270px; }
  .dashboard-content { width: calc(100% - 36px); padding-top: 24px; }
  .dashboard-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .profile-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
  html { scroll-padding-top: 76px; }
  .section-container { width: calc(100% - 34px); }
  .hero { min-height: 660px; }
  .hero-container { width: calc(100% - 36px); padding-top: 80px; }
  .hero h1 { font-size: clamp(36px, 9vw, 51px); }
  .hero p { font-size: 14px; }
  .hero-buttons { align-items: stretch; flex-direction: column; max-width: 320px; }
  .hero-buttons .btn { justify-content: center; }
  .hero-trust { flex-wrap: wrap; gap: 10px 16px; }
  .section { padding-block: 62px; }
  .section h2 { font-size: clamp(29px, 8vw, 38px); letter-spacing: -.04em; }
  .contact-form { width: 100%; }
  .dashboard-header { min-height: 68px; padding-inline: 13px; }
  .dashboard-header-title h1 { font-size: 17px; }
  .dashboard-content { width: calc(100% - 26px); padding-top: 18px; }
  .dashboard-welcome { gap: 12px; padding: 18px; }
  .dashboard-welcome h2 { font-size: 21px; }
  .dashboard-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
  .dashboard-stat-card { min-height: 94px; padding: 13px; }
  .dashboard-section { padding: 18px 14px; }
  .profile-form-grid { grid-template-columns: 1fr; }
  .profile-actions { justify-content: stretch; }
  .profile-actions button { flex: 1; }
  .module-header { align-items: flex-start; flex-direction: column; }
  .buyer-product-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .market-toolbar { grid-template-columns: 1fr; }
  .production-entry { padding: 16px; }
  .production-remove { position: static; margin-top: 12px; transform: none; }
  .buyer-product-grid { grid-template-columns: 1fr; }
  .buyer-request-card { align-items: flex-start; flex-direction: column; }
  .module-form { grid-template-columns: 1fr; }
  .module-form .field-full, .module-form-actions { grid-column: 1; }
  .login-page, .register-page { padding: 20px 12px; }
}

@media (max-width: 380px) {
  .navbar { width: calc(100% - 24px); }
  .logo-image { width: 112px; }
  .hero h1 { font-size: 35px; }
  .dashboard-header-title h1 { font-size: 15px; }
  .dashboard-user-avatar { width: 34px; height: 34px; }
  .dashboard-stats { grid-template-columns: 1fr; }
  .profile-card { padding: 16px 12px; }
}

/* Administration de la plateforme */
.admin-page { min-height: 100vh; color: #263238; background: #F5F8F5; font-family: "Manrope", sans-serif; }
.admin-shell[hidden], .admin-setup-wrap[hidden] { display: none !important; }
.admin-shell { min-height: 100vh; display: grid; grid-template-columns: 258px minmax(0, 1fr); }
.admin-sidebar { position: sticky; top: 0; display: flex; height: 100vh; flex-direction: column; padding: 18px 15px; background: #fff; border-right: 1px solid #E7EDE8; z-index: 5; }
.admin-brand { display: grid; min-height: 100px; place-items: center; border-bottom: 1px solid #EEF2EE; }
.admin-brand img { width: 174px; height: 76px; object-fit: contain; }
.admin-sidebar-label { margin: 27px 12px 12px; color: #8A988D; font-size: 9px; font-weight: 800; letter-spacing: .08em; }
.admin-nav { display: grid; gap: 6px; }
.admin-nav-link { width: 100%; display: flex; align-items: center; gap: 12px; min-height: 48px; padding: 0 12px; color: #526157; background: transparent; border: 0; border-radius: 9px; text-align: left; font-size: 12px; font-weight: 700; cursor: pointer; }
.admin-nav-link > i { width: 18px; color: #809084; text-align: center; font-size: 15px; }
.admin-nav-link:hover { color: var(--green-dark); background: #F4F8F4; }
.admin-nav-link.active { color: var(--green-dark); background: #EAF4EB; }
.admin-nav-link.active > i { color: var(--green); }
.admin-nav-link b { display: grid; min-width: 23px; height: 22px; margin-left: auto; padding-inline: 5px; place-items: center; color: #657368; background: #F0F3F0; border-radius: 20px; font-size: 10px; }
.admin-sidebar-bottom { display: grid; gap: 16px; margin-top: auto; padding: 15px 5px 3px; }
.admin-security-note { display: flex; align-items: center; gap: 9px; padding: 12px; color: #54705A; background: #F2F8F2; border: 1px solid #E5F0E5; border-radius: 9px; font-size: 10px; font-weight: 700; }
.admin-security-note i { color: var(--green); font-size: 15px; }
.admin-sidebar-bottom > a { display: flex; gap: 9px; padding: 9px 8px; color: #627166; text-decoration: none; font-size: 11px; font-weight: 700; }
.admin-sidebar-bottom > a:hover { color: var(--green); }
.admin-main { min-width: 0; }
.admin-topbar { position: sticky; top: 0; z-index: 4; display: flex; min-height: 83px; align-items: center; justify-content: space-between; gap: 16px; padding: 12px clamp(20px, 4vw, 48px); background: rgba(255,255,255,.96); border-bottom: 1px solid #E7EDE8; backdrop-filter: blur(12px); }
.admin-topbar-kicker { color: #829085; font-size: 9px; font-weight: 800; letter-spacing: .1em; }
.admin-topbar h1 { margin: 3px 0 0; color: #27352B; font-size: 19px; letter-spacing: -.03em; }
.admin-account { display: flex; align-items: center; gap: 10px; }
.admin-account > span:nth-child(2) { display: grid; gap: 2px; }
.admin-account strong { max-width: 190px; overflow: hidden; color: #34453A; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.admin-account small { color: #849187; font-size: 10px; }
.admin-avatar { display: grid; width: 38px; height: 38px; place-items: center; color: var(--green); background: #EAF4EB; border-radius: 50%; }
.admin-account > button { display: grid; width: 36px; height: 36px; margin-left: 5px; place-items: center; color: #6E7A70; background: transparent; border: 1px solid #E6ECE7; border-radius: 9px; cursor: pointer; }
.admin-account > button:hover { color: #9C3630; background: #FFF5F4; }
.admin-mobile-menu { display: none; }
.admin-content { width: min(1440px, 100%); margin: 0 auto; padding: 28px clamp(18px, 4vw, 48px) 55px; }
.admin-view[hidden] { display: none !important; }
.admin-welcome { display: flex; min-height: 158px; align-items: center; justify-content: space-between; gap: 20px; padding: 27px 32px; color: #fff; background: linear-gradient(112deg, #1B5E20, #2E7D32 75%, #438C45); border-radius: 15px; box-shadow: 0 12px 30px rgba(27,94,32,.12); }
.admin-welcome > div:first-child > span { color: #D7EBD8; font-size: 9px; font-weight: 800; letter-spacing: .1em; }
.admin-welcome h2 { margin: 8px 0 5px; font-size: clamp(21px, 3vw, 28px); letter-spacing: -.04em; }
.admin-welcome p { margin: 0; color: #E6F1E6; font-size: 12px; }
.admin-welcome-icon { display: grid; width: 76px; height: 76px; flex: 0 0 auto; place-items: center; color: #E5F2E6; background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.18); border-radius: 20px; font-size: 30px; }
.admin-stat-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px; margin-top: 17px; }
.admin-stat { position: relative; min-height: 134px; padding: 18px; background: #fff; border: 1px solid #E6ECE7; border-radius: 12px; box-shadow: 0 5px 18px rgba(38,50,56,.035); }
.admin-stat > span { color: #6D7B70; font-size: 11px; font-weight: 700; }
.admin-stat > i { position: absolute; top: 16px; right: 16px; display: grid; width: 34px; height: 34px; place-items: center; color: var(--green); background: #EFF7EF; border-radius: 10px; }
.admin-stat > strong { display: block; margin-top: 12px; color: #263A2B; font-size: 27px; letter-spacing: -.04em; }
.admin-stat > small { display: block; margin-top: 3px; color: #839087; font-size: 10px; }
.admin-stat > small b { color: #536357; }
.admin-stat-attention > i { color: #B47C13; background: #FFF7E5; }
.admin-overview-grid { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(250px, .8fr); gap: 15px; margin-top: 16px; }
.admin-panel { padding: 20px; background: #fff; border: 1px solid #E6ECE7; border-radius: 12px; box-shadow: 0 5px 18px rgba(38,50,56,.035); }
.admin-panel-heading { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.admin-panel-heading h2 { margin: 0; color: #2C3C31; font-size: 15px; }
.admin-panel-heading p { margin: 4px 0 0; color: #89948B; font-size: 10px; }
.admin-quick-links { display: grid; }
.admin-quick-links button { display: flex; align-items: center; gap: 12px; width: 100%; padding: 14px 4px; color: #647167; background: transparent; border: 0; border-top: 1px solid #EFF2EF; text-align: left; cursor: pointer; }
.admin-quick-links button > i:first-child { display: grid; width: 35px; height: 35px; flex: 0 0 auto; place-items: center; color: var(--green); background: #EFF7EF; border-radius: 9px; }
.admin-quick-links button > span { display: grid; gap: 3px; }
.admin-quick-links button b { color: #34453A; font-size: 11px; }
.admin-quick-links button small { color: #849187; font-size: 10px; }
.admin-quick-links button > i:last-child { margin-left: auto; font-size: 10px; }
.admin-quick-links button:hover > span b { color: var(--green); }
.admin-role-row { display: flex; align-items: center; justify-content: space-between; padding: 13px 0; color: #617066; border-top: 1px solid #EFF2EF; font-size: 11px; }
.admin-role-row span { display: flex; align-items: center; gap: 9px; }
.admin-role-row i { color: var(--green); }
.admin-role-row b { color: #2F4235; font-size: 13px; }
.admin-notice { display: none; margin: 0 0 15px; padding: 11px 14px; color: #27612F; background: #EDF7ED; border: 1px solid #DAEDDB; border-radius: 9px; font-size: 12px; font-weight: 700; }
.admin-notice.is-visible { display: block; }
.admin-notice.is-error { color: #9C3630; background: #FFF3F2; border-color: #F3D9D6; }
.admin-view-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin: 5px 0 20px; }
.admin-eyebrow { color: var(--green); font-size: 9px; font-weight: 800; letter-spacing: .1em; }
.admin-view-heading h2 { margin: 6px 0 5px; color: #2C3C31; font-size: clamp(22px, 3vw, 27px); letter-spacing: -.04em; }
.admin-view-heading p { margin: 0; color: #7E8B81; font-size: 11px; }
.admin-search { display: flex; width: min(300px, 100%); min-height: 42px; align-items: center; gap: 9px; padding: 0 12px; color: #839087; background: #fff; border: 1px solid #E0E8E1; border-radius: 9px; }
.admin-search:focus-within { border-color: #76A879; box-shadow: 0 0 0 3px rgba(102,187,106,.12); }
.admin-search input { width: 100%; min-width: 0; color: #2C3C31; background: transparent; border: 0; outline: 0; font-size: 11px; }
.admin-table-wrap { overflow: auto; background: #fff; border: 1px solid #E5EBE6; border-radius: 12px; box-shadow: 0 5px 18px rgba(38,50,56,.035); }
.admin-table { width: 100%; min-width: 800px; border-collapse: collapse; }
.admin-table th { padding: 13px 14px; color: #7C897F; background: #F8FAF8; border-bottom: 1px solid #E8EEE9; text-align: left; font-size: 9px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; white-space: nowrap; }
.admin-table td { padding: 13px 14px; color: #4C5B50; border-bottom: 1px solid #EEF2EF; font-size: 10px; vertical-align: middle; }
.admin-table tr:last-child td { border-bottom: 0; }
.admin-table td > b { color: #34453A; font-size: 11px; }
.admin-user-cell { display: flex; align-items: center; gap: 9px; min-width: 175px; }
.admin-user-cell > span:last-child { display: grid; gap: 3px; }
.admin-user-cell b { color: #34453A; font-size: 11px; }
.admin-user-cell small, .admin-cell-subtitle { display: block; margin-top: 4px; color: #859188; font-size: 9px; }
.admin-user-initial { display: grid; width: 34px; height: 34px; flex: 0 0 auto; place-items: center; color: var(--green-dark); background: #EAF4EB; border-radius: 50%; font-size: 12px; font-weight: 800; }
.admin-user-actions { display: flex; align-items: center; gap: 6px; }
.admin-role-tag { display: inline-flex; padding: 5px 8px; color: #53665A; background: #F0F4F0; border-radius: 20px; font-size: 9px; font-weight: 800; white-space: nowrap; }
.admin-status { display: inline-flex; align-items: center; gap: 6px; color: #438149; font-size: 9px; font-weight: 800; white-space: nowrap; }
.admin-status > i { width: 6px; height: 6px; background: currentColor; border-radius: 50%; }
.admin-status.is-inactive { color: #A14B43; }
.admin-status.is-pending { color: #AD7919; }
.admin-action-button { min-height: 31px; padding: 0 9px; color: #3D7044; background: #EFF7EF; border: 1px solid #DCEBDD; border-radius: 7px; font-size: 9px; font-weight: 800; cursor: pointer; white-space: nowrap; }
.admin-action-button:hover { filter: brightness(.97); }
.admin-action-button.is-danger { color: #A64B43; background: #FFF5F4; border-color: #F1DEDC; }
.admin-action-button:disabled { opacity: .55; cursor: wait; }
.admin-protected { color: #65816B; font-size: 9px; white-space: nowrap; }
.admin-inline-select, .admin-inline-input { min-height: 34px; padding: 6px 8px; color: #45544A; background: #fff; border: 1px solid #DFE7E0; border-radius: 7px; font-size: 9px; }
.admin-inline-input { width: 190px; }
.admin-table-empty { padding: 40px 14px; color: #7E8B81; text-align: center; font-size: 11px; }
.admin-user-dialog { width: min(760px, calc(100% - 24px)); max-height: 88vh; padding: 0; overflow: hidden; color: #34453A; background: #fff; border: 1px solid #E2EAE3; border-radius: 15px; box-shadow: 0 25px 80px rgba(20,40,25,.25); }
.admin-user-dialog::backdrop { background: rgba(24,40,28,.56); backdrop-filter: blur(3px); }
.admin-dialog-heading { position: sticky; top: 0; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 18px 22px; background: #fff; border-bottom: 1px solid #E9EFEA; }
.admin-dialog-heading h2 { margin: 5px 0 0; color: #2C3C31; font-size: 19px; }
.admin-dialog-heading > button { display: grid; width: 34px; height: 34px; place-items: center; color: #67766B; background: #F4F7F4; border: 1px solid #E5ECE6; border-radius: 8px; cursor: pointer; }
.admin-dialog-body { max-height: calc(88vh - 72px); overflow: auto; padding: 19px 22px 24px; }
.admin-detail-account { padding: 15px; background: #F6F9F6; border: 1px solid #E7EEE8; border-radius: 10px; }
.admin-detail-account > p { margin: 7px 0 12px; color: #7A887D; font-size: 10px; }
.admin-detail-contact { display: flex; flex-wrap: wrap; gap: 8px 16px; color: #536258; font-size: 10px; }
.admin-detail-contact span { display: inline-flex; align-items: center; gap: 7px; }
.admin-detail-contact i { color: var(--green); }
.admin-detail-section { margin-top: 17px; }
.admin-detail-section h3 { display: flex; align-items: center; gap: 8px; margin: 0 0 9px; color: #34453A; font-size: 12px; }
.admin-detail-section h3 span { display: inline-grid; min-width: 20px; height: 20px; padding-inline: 5px; place-items: center; color: #647267; background: #F0F4F0; border-radius: 20px; font-size: 9px; }
.admin-detail-section dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; margin: 0; }
.admin-detail-section dl > div, .admin-detail-record { min-width: 0; padding: 10px; background: #fff; border: 1px solid #E8EEE9; border-radius: 8px; }
.admin-detail-section dt, .admin-detail-record small { color: #869289; font-size: 9px; }
.admin-detail-section dd { margin: 3px 0 0; color: #425348; font-size: 10px; overflow-wrap: anywhere; }
.admin-detail-records { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.admin-detail-record { display: grid; gap: 7px; }
.admin-detail-record > div { display: grid; gap: 3px; }
.admin-detail-record > div + div { padding-top: 6px; border-top: 1px solid #EFF2EF; }
.admin-detail-record > div span { color: #425348; font-size: 10px; overflow-wrap: anywhere; }
.admin-detail-empty { margin: 0; padding: 14px; color: #8A958C; background: #F9FBF9; border: 1px dashed #DFE7E0; border-radius: 8px; font-size: 10px; }
.admin-settings-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 16px; }
.admin-settings-card { display: grid; gap: 13px; padding: 23px; background: #fff; border: 1px solid #E5EBE6; border-radius: 12px; box-shadow: 0 5px 18px rgba(38,50,56,.035); }
.admin-settings-icon { display: grid; width: 39px; height: 39px; place-items: center; color: var(--green); background: #EFF7EF; border-radius: 10px; }
.admin-settings-card h3 { margin: 0; color: #2C3C31; font-size: 15px; }
.admin-settings-card > p:not(.admin-settings-feedback) { margin: -8px 0 2px; color: #849187; font-size: 10px; line-height: 1.6; }
.admin-settings-card label { display: grid; gap: 6px; color: #526157; font-size: 10px; font-weight: 800; }
.admin-settings-card input { width: 100%; min-height: 41px; padding: 8px 11px; color: #2C3C31; background: #fff; border: 1px solid #DFE7E0; border-radius: 8px; font-size: 11px; }
.admin-settings-card input:focus { border-color: #76A879; outline: 0; box-shadow: 0 0 0 3px rgba(102,187,106,.12); }
.admin-settings-submit { display: inline-flex; min-height: 42px; align-items: center; justify-content: center; gap: 8px; margin-top: 3px; padding: 0 14px; color: #fff; background: var(--green); border: 0; border-radius: 8px; font-size: 10px; font-weight: 800; cursor: pointer; }
.admin-settings-submit:hover { background: var(--green-dark); }
.admin-settings-feedback { min-height: 0; margin: 0; color: #2F7538; font-size: 10px; font-weight: 700; }
.admin-settings-feedback:empty { display: none; }
.admin-settings-feedback.is-error { color: #9C3630; }
.admin-setup-wrap { min-height: 100vh; display: grid; place-items: center; padding: 26px 16px; background: radial-gradient(ellipse at top left, #E5F2E6, transparent 48%), linear-gradient(135deg, #F8FBF8, #FFF9E9); }
.admin-setup-card { width: min(100%, 500px); padding: clamp(22px, 5vw, 42px); background: #fff; border: 1px solid #E3EBE4; border-radius: 17px; box-shadow: 0 24px 70px rgba(38,50,56,.12); }
.admin-setup-logo { display: inline-grid; margin-bottom: 20px; }
.admin-setup-logo img { width: 145px; height: 64px; object-fit: contain; }
.admin-setup-card h1 { margin: 9px 0 9px; color: #28392D; font-size: clamp(23px, 5vw, 29px); letter-spacing: -.04em; }
.admin-setup-card > p { margin: 0 0 22px; color: #738076; font-size: 12px; line-height: 1.7; }
.admin-setup-form { display: grid; gap: 13px; }
.admin-setup-form[hidden] { display: none !important; }
.admin-setup-form label { display: grid; gap: 6px; color: #46564A; font-size: 10px; font-weight: 800; }
.admin-setup-form label span, .admin-setup-form small { color: #89958C; font-weight: 500; }
.admin-setup-form input { min-height: 43px; padding: 0 11px; color: #28392D; background: #fff; border: 1px solid #DFE7E0; border-radius: 8px; font-size: 12px; }
.admin-setup-form input:focus { border-color: #66BB6A; outline: 0; box-shadow: 0 0 0 3px rgba(102,187,106,.13); }
.admin-setup-form button { min-height: 47px; margin-top: 3px; color: #fff; background: var(--green); border: 0; border-radius: 8px; font-size: 11px; font-weight: 800; cursor: pointer; }
.admin-setup-form button:hover { background: var(--green-dark); }
.admin-feedback { min-height: 0; margin: 0; color: var(--green-dark); font-size: 11px; font-weight: 700; }
.admin-feedback:empty { display: none; }
.admin-feedback.is-error { color: #9C3630; }
.admin-back-link { display: inline-flex; gap: 8px; margin-top: 18px; color: #6F7D72; text-decoration: none; font-size: 10px; font-weight: 700; }
.admin-back-link:hover { color: var(--green); }
.admin-login-link { display: block; margin-top: 17px; color: #718076; text-align: center; text-decoration: none; font-size: 11px; font-weight: 700; }
.admin-login-link:hover { color: var(--green); }

@media (max-width: 1050px) {
  .admin-shell { grid-template-columns: 230px minmax(0, 1fr); }
  .admin-stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .admin-shell { display: block; }
  .admin-sidebar { position: fixed; left: 0; width: 258px; transform: translateX(-102%); transition: transform .2s ease; box-shadow: 14px 0 35px rgba(38,50,56,.13); }
  .admin-sidebar.is-open { transform: translateX(0); }
  .admin-mobile-menu { display: grid; width: 37px; height: 37px; flex: 0 0 auto; place-items: center; color: #526157; background: #F4F8F4; border: 1px solid #E5ECE6; border-radius: 8px; }
  .admin-topbar { justify-content: flex-start; padding-inline: 15px; }
  .admin-topbar > div:nth-child(2) { flex: 1; }
  .admin-account { gap: 7px; }
  .admin-account > span:nth-child(2) { display: none; }
  .admin-overview-grid { grid-template-columns: 1fr; }
  .admin-settings-grid { grid-template-columns: 1fr; }
  .admin-view-heading { align-items: flex-start; flex-direction: column; }
  .admin-search { width: 100%; }
}
@media (max-width: 480px) {
  .admin-content { padding: 19px 12px 36px; }
  .admin-topbar { min-height: 69px; gap: 9px; }
  .admin-topbar h1 { font-size: 16px; }
  .admin-topbar-kicker { font-size: 8px; }
  .admin-avatar { width: 34px; height: 34px; }
  .admin-account > button { width: 33px; height: 33px; }
  .admin-welcome { min-height: 140px; padding: 20px; }
  .admin-welcome-icon { width: 50px; height: 50px; border-radius: 14px; font-size: 20px; }
  .admin-welcome p { max-width: 230px; line-height: 1.6; }
  .admin-stat-grid { gap: 9px; }
  .admin-stat { min-height: 122px; padding: 14px; }
  .admin-stat > i { top: 12px; right: 11px; width: 29px; height: 29px; font-size: 12px; }
  .admin-stat > span { display: block; max-width: 105px; font-size: 10px; }
  .admin-stat > strong { margin-top: 15px; font-size: 24px; }
  .admin-panel { padding: 16px; }
  .admin-dialog-heading { padding: 15px; }
  .admin-dialog-body { padding: 14px 15px 19px; }
  .admin-detail-section dl, .admin-detail-records { grid-template-columns: 1fr; }
  .admin-setup-wrap { align-items: start; padding: 16px 11px; }
  .admin-setup-card { padding: 23px 18px; }
}

/* Commandes, offres confirmées et suivi des livraisons */
.buyer-request-actions, .order-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.buyer-request-actions .module-action, .order-actions .module-action { justify-content: center; }
.buyer-quote { margin-top: 8px !important; color: #385941 !important; }
.buyer-quote strong { color: var(--green-dark); }
.request-status.is-paid { color: #2F7538; background: #EAF4E9; }
.sales-section-title { margin: 22px 0 10px; color: #34453A; font-size: 15px; }
.offer-price-input { display: grid; min-width: 140px; gap: 4px; color: #7A887D; font-size: 9px; }
.offer-price-input input { width: 110px; min-height: 34px; padding: 6px 8px; color: #34453A; background: #fff; border: 1px solid var(--ui-border); border-radius: 7px; }
.order-card { display: grid; gap: 12px; margin: 11px 0; padding: 17px; color: #45544A; background: #fff; border: 1px solid var(--ui-border); border-radius: 12px; box-shadow: 0 7px 24px rgba(38,50,56,.045); }
.order-card-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.order-card-heading h3 { margin: 8px 0 4px; color: #28392D; font-size: 15px; }
.order-card-heading p, .order-contact p, .order-card > p { margin: 4px 0; color: #718076; font-size: 11px; line-height: 1.6; }
.order-summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 11px 13px; color: #617066; background: #F6F9F6; border-radius: 8px; font-size: 11px; }
.order-summary strong { color: var(--green-dark); font-size: 15px; }
.delivery-update-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; padding-top: 12px; border-top: 1px solid #EEF2EF; }
.delivery-update-form label { display: grid; gap: 5px; color: #5B695F; font-size: 10px; font-weight: 800; }
.delivery-update-form label:nth-child(3) { grid-column: 1 / -1; }
.delivery-update-form input, .delivery-update-form select { width: 100%; min-height: 38px; padding: 7px 9px; color: #34453A; background: #fff; border: 1px solid var(--ui-border); border-radius: 7px; font: inherit; font-size: 10px; }
.delivery-update-form button { justify-self: start; }
.admin-order-fields { display: grid; min-width: 190px; gap: 5px; }
.admin-orders-table { min-width: 1100px; }
.admin-orders-table .admin-inline-input { width: 180px; }

@media (max-width: 600px) {
  .buyer-request-actions { width: 100%; }
  .buyer-request-actions > * { flex: 1; }
  .delivery-update-form { grid-template-columns: 1fr; }
  .delivery-update-form label:nth-child(3) { grid-column: auto; }
  .order-card-heading { flex-direction: column; }
  .order-card-heading > .request-status { align-self: flex-start; }
}

/* Registre agricole de la coopérative */
.farm-view[hidden], .farm-form[hidden] { display: none !important; }
.farm-view .module-card { margin-top: 14px; }
.farm-form { padding: 18px; background: #F8FBF8; border: 1px solid #E5ECE6; border-radius: 12px; }
.farm-form-intro { display: grid; gap: 5px; grid-column: 1 / -1; padding-bottom: 12px; border-bottom: 1px solid #E4ECE5; }
.farm-form-intro strong { color: var(--dark); font-size: 15px; }
.farm-form-intro span, .farm-fieldset small { color: #718076; font-size: 11px; line-height: 1.55; }
.farm-form .farm-span-all { grid-column: 1 / -1; }
.farm-fieldset { display: grid; gap: 12px; grid-column: 1 / -1; min-width: 0; margin: 0; padding: 15px; background: #fff; border: 1px solid #DEE8DF; border-radius: 10px; }
.farm-fieldset legend { padding: 0 6px; color: #354A3A; font-size: 12px; font-weight: 800; }
.farm-fieldset p { margin: 0; color: #718076; font-size: 11px; line-height: 1.5; }
.farm-grid-two, .farm-grid-three { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.farm-grid-three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.farm-fieldset .module-secondary { justify-self: start; }
.farm-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 8px 0 14px; }
.farm-list-filters { display: flex; flex: 1; flex-wrap: wrap; align-items: end; justify-content: flex-end; gap: 8px; }
.farm-list-filters label { display: grid; min-width: 125px; gap: 4px; color: #647368; font-size: 9px; font-weight: 800; }
.farm-list-filters input, .farm-list-filters select { min-height: 37px; max-width: 190px; padding: 6px 8px; color: #35483A; background: #fff; border: 1px solid #DEE7DF; border-radius: 7px; font: inherit; font-size: 10px; }
.farm-search { display: flex; width: min(430px, 100%); min-height: 42px; align-items: center; gap: 9px; padding: 0 12px; color: #7B8A7D; background: #fff; border: 1px solid var(--ui-border); border-radius: 9px; }
.farm-search:focus-within { border-color: var(--green-light); box-shadow: 0 0 0 3px rgba(102,187,106,.12); }
.farm-search input { width: 100%; min-width: 0; color: var(--dark); background: transparent; border: 0; outline: 0; font: inherit; font-size: 11px; }
.farm-muted, .farm-section-heading p { color: #7D897F; font-size: 11px; }
.farm-kpi-inline { display: flex; flex-wrap: wrap; gap: 9px; margin: 0 0 14px; }
.farm-kpi-inline > span { display: inline-flex; min-height: 40px; align-items: center; gap: 5px; padding: 0 12px; color: #657468; background: #F3F7F3; border: 1px solid #E5ECE5; border-radius: 9px; font-size: 11px; }
.farm-kpi-inline strong { color: #34583A; font-size: 13px; }
.farm-table { min-width: 860px; }
.farm-table th { white-space: nowrap; }
.farm-table td { vertical-align: middle; }
.farm-cell-sub { display: block; margin-top: 4px; color: #879389; font-size: 10px; }
.farm-status { display: inline-flex; padding: 5px 8px; color: #4B6950; background: #EDF6ED; border-radius: 20px; font-size: 10px; white-space: nowrap; }
.farm-pagination { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 14px; color: #7B887D; font-size: 11px; }
.farm-pagination > div { display: flex; align-items: center; gap: 9px; }
.farm-pagination button { min-height: 33px; padding: 0 10px; color: #45634A; background: #F0F6F0; border: 1px solid #E0EADF; border-radius: 7px; font: inherit; font-weight: 700; cursor: pointer; }
.farm-pagination button:disabled { opacity: .45; cursor: default; }
.farm-metric-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin: 14px 0; }
.farm-metric-grid > div { display: grid; min-width: 0; gap: 6px; padding: 14px; background: #fff; border: 1px solid #E4ECE5; border-radius: 10px; }
.farm-metric-grid span { color: #758278; font-size: 10px; }
.farm-metric-grid strong { color: #2F5237; font-size: clamp(16px, 2vw, 21px); overflow-wrap: anywhere; }
.farm-metric-grid small { color: #7F8B81; font-size: 10px; }
.producer-dossier { margin: 14px 0; padding: 20px; background: linear-gradient(145deg, #FBFDFB, #F3F8F3); border: 1px solid #DDE9DE; border-radius: 14px; }
.producer-dossier-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.producer-dossier-heading h3 { margin: 6px 0; color: var(--dark); font-size: 20px; }
.producer-dossier-heading p, .producer-dossier-columns p, .producer-dossier-columns li { color: #708076; font-size: 11px; line-height: 1.6; }
.producer-dossier-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin: 13px 0; }
.producer-dossier-columns section { padding: 14px; background: #fff; border: 1px solid #E5ECE6; border-radius: 10px; }
.producer-dossier-columns h4 { margin: 0 0 8px; color: #405446; font-size: 12px; }
.producer-dossier-columns p { margin: 5px 0; }
.producer-dossier-columns ul { margin: 0 0 14px; padding-left: 17px; }
.producer-dossier-columns a { display: inline-flex; gap: 7px; align-items: center; color: var(--green-dark); font-size: 11px; font-weight: 700; }
.farm-private-value { overflow-wrap: anywhere; }
.farm-section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; margin: 25px 0 10px; }
.farm-section-heading h3 { margin: 3px 0 0; color: #2F4134; font-size: 17px; }
.farm-kicker { color: #6E8971; font-size: 9px; font-weight: 900; letter-spacing: .1em; }
.farm-chart-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.farm-chart { min-width: 0; padding: 16px; background: #fff; border: 1px solid #E4ECE5; border-radius: 12px; box-shadow: 0 5px 18px rgba(38,50,56,.035); }
.farm-chart-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; margin-bottom: 13px; }
.farm-chart-heading h3 { margin: 0; color: #35483A; font-size: 13px; }
.farm-chart-heading span { color: #829086; font-size: 10px; }
.farm-bars { display: grid; gap: 10px; }
.farm-bar-row { display: grid; grid-template-columns: minmax(75px, .65fr) minmax(40px, 1fr) auto; align-items: center; gap: 8px; }
.farm-bar-row > span { overflow: hidden; color: #657368; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.farm-bar-track { height: 10px; overflow: hidden; background: #EEF3EE; border-radius: 99px; }
.farm-bar-track i { display: block; height: 100%; background: linear-gradient(90deg, #65A96B, #2F7538); border-radius: inherit; }
.farm-bar-row strong { min-width: 68px; color: #43594A; text-align: right; font-size: 9px; }
.farm-chart-empty { margin: 0; color: #859187; font-size: 11px; line-height: 1.6; }
.farm-filters { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 11px; }
.farm-filters label { display: grid; gap: 5px; color: #536257; font-size: 10px; font-weight: 800; }
.farm-filters input, .farm-filters select { width: 100%; min-height: 38px; padding: 7px 9px; color: #35483A; background: #fff; border: 1px solid #DEE7DF; border-radius: 7px; font: inherit; font-size: 10px; }
.farm-filters input:focus, .farm-filters select:focus { border-color: #76A879; outline: 0; box-shadow: 0 0 0 3px rgba(102,187,106,.12); }
.farm-production-preview { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px 12px; grid-column: 1 / -1; padding: 14px; background: #EFF7EF; border: 1px solid #DCEBDD; border-radius: 9px; color: #68806A; font-size: 10px; }
.farm-production-preview strong { color: #2E6336; font-size: 14px; }
.farm-stat-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.platform-stat-grid > div { background: #F7FAF7; }
.farm-view .module-action:disabled { opacity: .55; cursor: not-allowed; }
.farm-audit-panel { margin-top: 14px; }
.farm-audit-list { display: grid; gap: 0; }
.farm-audit-list > div { display: grid; grid-template-columns: 110px minmax(0, 1fr) minmax(130px, auto); align-items: center; gap: 12px; padding: 10px 0; border-top: 1px solid #EEF2EF; color: #657368; font-size: 10px; }
.farm-audit-action { color: #3E6745; font-weight: 800; text-transform: capitalize; }
.farm-audit-list time { color: #879389; text-align: right; white-space: nowrap; }
@media (max-width: 900px) { .farm-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); } .farm-stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) {
  .farm-form { padding: 13px; }
  .farm-grid-three, .farm-grid-two, .farm-filters, .farm-chart-grid, .producer-dossier-columns { grid-template-columns: 1fr; }
  .farm-form .farm-span-all { grid-column: auto; }
  .farm-metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .farm-toolbar, .farm-section-heading, .producer-dossier-heading { align-items: stretch; flex-direction: column; }
  .farm-list-filters { display: grid; grid-template-columns: 1fr; }
  .farm-list-filters input, .farm-list-filters select { width: 100%; max-width: none; }
  .farm-toolbar > button { width: 100%; }
  .farm-search { width: 100%; }
  .farm-pagination { align-items: flex-start; flex-direction: column; }
  .farm-pagination > div { width: 100%; justify-content: space-between; }
  .farm-bar-row { grid-template-columns: minmax(72px, .7fr) minmax(36px, 1fr) auto; gap: 5px; }
  .farm-bar-row strong { min-width: 56px; font-size: 8px; }
  .farm-production-preview { grid-template-columns: 1fr; }
  .farm-chart, .producer-dossier { padding: 13px; }
  .farm-audit-list > div { grid-template-columns: 1fr; gap: 4px; }
  .farm-audit-list time { text-align: left; }
}

/* Gestion complète des membres de coopérative */
.farm-form label[hidden], .farm-fieldset[hidden] { display: none !important; }
.farm-form textarea, .farm-inline-form input, .farm-inline-form select {
  width: 100%; min-height: 39px; padding: 9px 10px; color: #35483A; background: #fff;
  border: 1px solid #DEE7DF; border-radius: 7px; font: inherit; font-size: 11px;
}
.farm-form textarea { resize: vertical; line-height: 1.55; }
.farm-form-help { grid-column: 1 / -1; color: #607364; font-size: 11px; line-height: 1.5; }
.farm-check { display: flex !important; grid-column: 1 / -1; grid-template-columns: 18px 1fr; align-items: start; gap: 9px !important; color: #435649 !important; font-size: 12px !important; font-weight: 600 !important; }
.farm-check input { width: 17px; height: 17px; margin: 1px 0 0; accent-color: #397645; }
.farm-rules { grid-column: 1 / -1; padding: 12px; background: #F5F8F5; border: 1px solid #E3EAE4; border-radius: 9px; }
.farm-rules summary { color: #34583A; font-size: 12px; font-weight: 800; cursor: pointer; }
.farm-rules pre { max-height: 190px; overflow: auto; margin: 10px 0 0; color: #58675B; font: inherit; font-size: 11px; line-height: 1.65; white-space: pre-wrap; }
.farm-export-actions { justify-content: flex-end; }
.farm-export-actions button { white-space: nowrap; }
.farm-status-suspendu { color: #78551A; background: #FFF4DB; }
.farm-status-inactif, .farm-status-archive { color: #6A716D; background: #EEF0EE; }
.farm-member-tabs { display: flex; flex-wrap: wrap; gap: 7px; margin: 12px 0; padding: 10px; background: #F3F7F3; border-radius: 10px; }
.farm-member-tabs a { padding: 7px 10px; color: #3D6545; background: #fff; border: 1px solid #E1E9E2; border-radius: 99px; font-size: 10px; font-weight: 800; text-decoration: none; }
.farm-member-tabs a:hover, .farm-member-tabs a:focus-visible { background: #E9F3EA; }
.farm-member-details { scroll-margin-top: 16px; }
.farm-member-details section { min-width: 0; scroll-margin-top: 16px; }
.farm-inline-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 13px; padding: 13px; background: #F7FAF7; border: 1px solid #E4ECE5; border-radius: 9px; }
.farm-inline-form > strong, .farm-inline-form > small, .farm-inline-form > button { grid-column: 1 / -1; }
.farm-inline-form label { display: grid; min-width: 0; gap: 5px; color: #536257; font-size: 10px; font-weight: 800; }
.farm-inline-form > button { justify-self: start; }
.farm-document-list { display: grid; gap: 8px; margin: 12px 0; padding: 0; list-style: none; }
.farm-document-list li { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; padding: 9px 10px; background: #F7FAF7; border: 1px solid #E5ECE6; border-radius: 8px; color: #59695D; font-size: 10px; }
.farm-document-list li > span:last-child { display: inline-flex; align-items: center; gap: 10px; }
.farm-document-list a, .farm-document-list button { padding: 4px 0; color: #2F703B; background: transparent; border: 0; font: inherit; font-size: 10px; font-weight: 800; cursor: pointer; text-decoration: none; }
.farm-document-list button { color: #9C4841; }
.farm-member-overview { margin-top: 15px; }
.member-summary-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)); gap: 9px; }
.member-summary-grid article { display: grid; gap: 7px; min-height: 74px; padding: 12px; background: #fff; border: 1px solid #E4ECE5; border-radius: 10px; }
.member-summary-grid article span { color: #718076; font-size: 10px; line-height: 1.4; }
.member-summary-grid article strong { color: #315D39; font-size: 20px; }
.member-distribution-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 12px; }
.member-distribution-grid > div { min-width: 0; padding: 13px; background: #fff; border: 1px solid #E5ECE6; border-radius: 10px; }
.member-distribution-grid h4 { margin: 0 0 10px; color: #3B5241; font-size: 11px; }
.member-distribution-grid p { display: flex; justify-content: space-between; gap: 8px; margin: 7px 0; color: #6B796F; font-size: 10px; }
.member-distribution-grid p strong { color: #3C6343; }
.member-trend { display: flex; height: 104px; align-items: end; justify-content: space-around; gap: 8px; border-bottom: 1px solid #E6ECE6; }
.member-trend > div { display: flex; height: 100%; flex: 1; flex-direction: column; align-items: center; justify-content: end; gap: 5px; color: #758278; font-size: 9px; }
.member-trend i { width: min(26px, 80%); min-height: 3px; background: linear-gradient(180deg, #6EA974, #347443); border-radius: 5px 5px 0 0; }
.farm-member-analysis { margin: 14px 0; }
.admin-geography-status { margin-bottom: 16px; }
.admin-geography-counts { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 8px; }
.admin-geography-counts span { padding: 10px 12px; color: #718076; background: #F6F9F6; border: 1px solid #E7EEE8; border-radius: 9px; font-size: 10px; }
.admin-geography-counts strong { display: block; margin-top: 4px; color: #315D39; font-size: 17px; }
.admin-geography-consent { display: flex !important; align-items: flex-start; gap: 8px; }
.admin-geography-consent input { width: auto !important; min-height: 0; margin-top: 2px; }
.admin-geography-tools { align-items: start; }
@media (max-width: 700px) {
  .member-distribution-grid { grid-template-columns: 1fr; }
  .farm-export-actions { justify-content: flex-start; flex-wrap: wrap; }
  .farm-export-actions button { flex: 1 1 150px; }
  .farm-inline-form { grid-template-columns: 1fr; }
  .farm-inline-form > button { width: 100%; }
  .farm-document-list li { align-items: flex-start; flex-direction: column; }
  .farm-document-list li > span:last-child { width: 100%; justify-content: flex-start; }
}
