:root{--ink:#000;--canvas-light:#fff;--canvas-cream:#fbfbf5;--aloe:#c1fbd4;--pistachio:#d4f9e0;--hairline:#e4e4e7;--shade-30:#d4d4d8;--shade-40:#a1a1aa;--shade-50:#71717a;--shade-60:#52525b;--shade-70:#3f3f46;--shadow-card:0 8px 8px rgba(0,0,0,.06),0 4px 4px rgba(0,0,0,.06),0 2px 2px rgba(0,0,0,.06),0 0 0 1px rgba(0,0,0,.08);--fs-heading-sm:1.125rem;--fs-heading-md:1.25rem;--fs-display-sm:1.75rem;--fs-display-md:2rem;--fs-display-lg:2.75rem}body{margin:0;font-family:Inter Variable,Inter,Helvetica,Arial,sans-serif;font-feature-settings:"ss03";background-color:var(--canvas-cream);color:var(--ink);font-size:16px;font-weight:420;line-height:1.5}.agroliens-app{padding:30px}.error-page,.landing,.page-loading{max-width:1200px;margin:40px auto}.tenant-space{max-width:1200px;margin:65px auto 40px}.page-loading{font-style:italic;color:var(--shade-50)}.landing,.page-loading{text-align:center;margin-top:100px}.landing__title{font-size:var(--fs-display-lg);color:var(--ink);font-weight:330;line-height:1.1}.landing__subtitle{font-size:var(--fs-heading-sm);color:var(--shade-60);margin-bottom:40px}.landing__cta{background:var(--canvas-light);padding:28px;border-radius:12px;border:1px solid var(--hairline)}.landing__example{background:var(--aloe);padding:6px 16px;border-radius:9999px;font-weight:500;color:var(--ink);display:inline-block;margin-top:10px;font-size:.875rem}.site-header{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;flex-wrap:wrap;align-items:center;gap:12px;background:var(--ink);padding:16px 40px;border-radius:0;border:none;border-bottom:1px solid hsla(0,0%,100%,.1);box-shadow:0 1px 3px #00000014;margin:0;color:#fff}.site-header__title{flex:1;margin:0;color:#fff;font-size:var(--fs-heading-md);font-weight:500;letter-spacing:.42px}.site-header__user{font-size:.875rem;color:#fff}.role-chip{background:var(--aloe);color:var(--ink);padding:4px 12px;border-radius:9999px;font-size:.6875rem;font-weight:500;text-transform:uppercase;letter-spacing:.72px;margin-top:4px}.btn,.role-chip{display:inline-block}.btn{background:var(--ink);color:#fff;border:none;padding:12px 24px;border-radius:9999px;font-weight:420;cursor:pointer;font-size:1rem;transition:background .15s;text-decoration:none;text-align:center;font-family:inherit}.btn:hover{background:var(--shade-70)}.btn:disabled{background:var(--shade-40);cursor:not-allowed}.btn--block{width:100%;margin-top:10px;box-sizing:border-box}.btn--xs{padding:6px 16px;font-size:.8125rem;font-weight:500}.btn--sm,.btn--xs{border-radius:9999px}.btn--sm{padding:8px 20px;font-size:.875rem}.btn--success{background:var(--aloe);color:var(--ink)}.btn--success:hover{background:#a8f5be}.btn--success:disabled{background:var(--shade-30);color:var(--shade-50);cursor:not-allowed}.btn--danger{background:transparent;color:#b91c1c;border:1px solid #fca5a5}.btn--danger:hover{background:#fee2e2}.btn--secondary{border:1px solid var(--ink);color:var(--ink);background:transparent;border-radius:9999px;padding:8px 20px;cursor:pointer;font-weight:420;font-size:.9375rem;transition:background .1s;font-family:inherit}.btn--secondary:hover{background:var(--canvas-cream)}.btn--secondary:disabled{opacity:.4;cursor:not-allowed}.btn--secondary.btn--xs{padding:6px 14px;font-size:.8125rem}.btn--secondary.btn--sm{padding:8px 18px;font-size:.875rem}.btn--logout{background:transparent;color:#fff;border:1px solid hsla(0,0%,100%,.35);padding:6px 16px;border-radius:9999px;cursor:pointer;font-weight:420;font-size:.875rem;transition:border-color .15s;font-family:inherit}.btn--logout:hover{border-color:#fff;background:#ffffff14}.btn--purchase{background:var(--ink);color:#fff;border:none;padding:0 24px;border-radius:9999px;font-weight:500;font-size:.9375rem;height:42px;cursor:pointer;transition:background .15s;font-family:inherit}.btn--purchase:hover{background:var(--shade-70)}.btn--purchase:disabled{background:var(--shade-40);cursor:not-allowed}.auth{max-width:480px;margin:40px auto;background:var(--canvas-light);padding:40px;border-radius:12px;box-shadow:var(--shadow-card)}.auth__tabs{display:flex;border-bottom:1px solid var(--hairline);margin-bottom:24px}.auth__tab{flex:1;padding:12px;background:none;border:none;font-size:1rem;font-weight:500;color:var(--shade-40);cursor:pointer;font-family:inherit}.auth__tab--active{color:var(--ink);border-bottom:2px solid var(--ink);margin-bottom:-1px}.alert-error{background:#fef2f2;color:#b91c1c;padding:14px 16px;border-radius:8px;font-size:.875rem;font-weight:500;margin-bottom:20px;border:1px solid #fecaca}.form-field{margin-bottom:18px;display:flex;flex-direction:column;gap:6px}.form-field label{font-size:.8125rem;font-weight:500;color:var(--shade-60);letter-spacing:.28px}.form-field input[type=date],.form-field input[type=email],.form-field input[type=number],.form-field input[type=password],.form-field input[type=tel],.form-field input[type=text],.form-field select,.form-field textarea{padding:10px 12px;border:1px solid var(--hairline);border-radius:8px;font-size:1rem;font-weight:420;font-family:inherit;background:var(--canvas-light);color:var(--ink)}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 2px #00000014}.form-field--radio{background:var(--canvas-cream);padding:12px 16px;border-radius:8px;border:1px solid var(--hairline)}.form-field__radio-options{display:flex;gap:20px;margin-top:4px}.form-field__radio-options label{display:flex;align-items:center;gap:6px;font-size:.9375rem;cursor:pointer;color:var(--ink);margin-bottom:3rem}.form-field__optional{font-weight:420;color:var(--shade-40);font-size:.75rem}.form-field__hint{color:var(--shade-50);font-size:.75rem}.form-field--mini{margin-bottom:0;gap:4px}.form-field--mini label{font-size:.75rem}.form-field--mini input,.form-field--mini select{padding:8px 12px;font-size:.875rem;border-radius:8px}.welcome{background:var(--canvas-light);padding:22px 28px;border-radius:12px;border:1px solid var(--hairline);margin-bottom:1rem}.welcome__title{margin:0 0 4px;font-size:var(--fs-heading-sm);font-weight:500;color:var(--ink);letter-spacing:.3px}.welcome__text{margin:0;color:var(--shade-50);font-size:.9375rem}.panel{background:var(--canvas-light);margin-top:24px;padding:28px;border-radius:12px;box-shadow:var(--shadow-card)}.panel__header{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;border-bottom:1px solid var(--hairline);padding-bottom:12px}.panel__title{margin:0;font-size:var(--fs-heading-sm);font-weight:500;color:var(--ink);letter-spacing:.3px}.panel__count{color:var(--shade-50);font-size:.875rem;font-weight:500}.panel__loading{text-align:center;padding:40px;color:var(--shade-50);font-style:italic}.empty-state{text-align:center;padding:48px 20px;background:var(--canvas-cream);border-radius:12px;border:2px dashed var(--shade-30)}.empty-state__icon{font-size:2.5rem;display:block;margin-bottom:12px}.empty-state__title{margin:0 0 8px;font-size:1.0625rem;color:var(--ink);font-weight:550}.empty-state__text{margin:0;color:var(--shade-50);font-size:.9375rem}.success-alert{background:var(--aloe);color:var(--ink);padding:14px 18px;border-radius:12px;font-weight:550;animation:slideIn .25s ease-out}@keyframes slideIn{0%{transform:translateY(-6px);opacity:0}to{transform:translateY(0);opacity:1}}.margin-top-lg{margin-top:32px!important}.margin-top-md{margin-top:20px!important}.badge{font-size:.6875rem;font-weight:500;padding:4px 12px;border-radius:9999px;display:inline-block;text-align:center;letter-spacing:.28px}.badge--order-pending{background:#fef3c7;color:#92400e}.badge--order-validated{background:var(--aloe);color:var(--ink)}.badge--order-delivered{background:var(--shade-30);color:var(--ink)}.badge--order-cancelled{background:#fee2e2;color:#9b1c1c}.badge--order-disputed{background:#f3e8ff;color:#6b21a8}.badge--batch-open{background:var(--canvas-cream);color:var(--ink);border:1px solid var(--hairline)}.badge--batch-threshold-reached{background:var(--aloe);color:var(--ink)}.badge--batch-confirmed{background:var(--ink);color:#fff;margin-right:.5rem}.badge--batch-cancelled{background:#fee2e2;color:#9b1c1c}.badge--batch-delivered{background:var(--shade-30);color:var(--ink)}.badge--batch-none{background:var(--canvas-cream);color:var(--shade-50)}.badge--payment-pending{background:#fef3c7;color:#92400e}.badge--payment-confirmed{background:var(--aloe);color:var(--ink)}.badge--refunded{background:#f3e8ff;color:#6b21a8}.badge--payment-cancelled{background:#fee2e2;color:#9b1c1c}.badge--delivery-not-planned{background:var(--canvas-cream);color:var(--shade-50)}.badge--delivery-planned{background:var(--canvas-cream);color:var(--ink);border:1px solid var(--shade-30)}.badge--delivery-in-transit{background:#fef3c7;color:#92400e}.badge--delivery-delivered{background:var(--shade-30);color:var(--ink)}.badge--delivery-issue{background:#fee2e2;color:#9b1c1c}.badge--product-active{background:var(--aloe);color:var(--ink)}.badge--product-draft{background:var(--canvas-cream);color:var(--shade-50);border:1px solid var(--hairline)}.badge--product-archived,.badge--product-cancelled{background:#fee2e2;color:#9b1c1c}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.kpi-grid--3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.kpi-card{background:var(--canvas-light);padding:20px 24px;border-radius:12px;box-shadow:var(--shadow-card);display:flex;flex-direction:column;gap:4px}.kpi-card--primary .kpi-card__value,.kpi-card--success .kpi-card__value{color:var(--ink)}.kpi-card__label{font-size:.6875rem;color:var(--shade-50);font-weight:500;text-transform:uppercase;letter-spacing:.72px}.kpi-card__value{font-size:var(--fs-display-md);font-weight:550;color:var(--ink);line-height:1}.kpi-card__sub{font-size:.75rem;color:var(--shade-40);font-weight:500}.tab-bar{display:flex;background:var(--canvas-cream);padding:4px;border-radius:9999px;gap:4px;border:1px solid var(--hairline)}.tab-bar__item{flex:1;padding:10px 16px;border:none;background:none;font-size:.9375rem;font-weight:500;color:var(--shade-50);cursor:pointer;border-radius:9999px;transition:all .15s;font-family:inherit}.tab-bar__item--active{background:var(--ink);color:#fff}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}.form-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.span-full{grid-column:span 3}.form-actions{display:flex;gap:8px;justify-content:flex-end}.form-msg--error{margin:10px 0 0;color:#dc2626;font-size:.9rem}.form-msg--success{margin:10px 0 0;color:#10b981;font-size:.9rem}.form-panel{margin-bottom:24px;padding:20px;background:var(--canvas-cream);border-radius:12px;border:1px solid var(--hairline)}.form-panel__title{margin-top:0;margin-bottom:16px;color:var(--ink);font-size:1.1rem}.form-panel__fields{display:flex;gap:16px;flex-wrap:wrap;align-items:start;max-width:100%;box-sizing:border-box}.form-panel__toggle{display:flex;justify-content:space-between;align-items:center;width:100%;background:none;border:none;padding:0;font-size:1.1rem;font-weight:700;color:var(--ink);cursor:pointer;text-align:left}.form-panel__toggle:hover{color:#059669}.form-panel__toggle-icon{font-size:.75rem;color:var(--shade-40)}.form-panel__body{margin-top:16px}.form-panel__submit{height:38px;align-self:flex-end;white-space:nowrap}.flex-wide{flex:2}.flex-narrow,.flex-wide{min-width:0;margin-bottom:0}.flex-narrow{flex:1;max-width:100%}.product-form{border-bottom:1px solid var(--hairline);padding-bottom:22px;margin-bottom:22px}.product-list{display:grid;gap:10px}.product-card{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;padding:16px 20px;border:1px solid var(--hairline);border-radius:8px;background:var(--canvas-light)}.product-card__name{margin:0 0 4px;font-size:1rem;font-weight:550;color:var(--ink)}.product-card__desc{margin:0 0 4px;color:var(--shade-60);font-size:.875rem}.product-card__meta{color:var(--shade-50);line-height:1.4;font-size:.8125rem}.product-card__actions{display:grid;justify-items:end;gap:8px;min-width:120px}.product-card__batches{flex:0 0 100%}.catalog-grid{display:grid;grid-template-columns:1fr;gap:18px}.batch-card{background:var(--canvas-light);border:1px solid var(--hairline);border-radius:12px;padding:24px;box-shadow:var(--shadow-card);display:flex;flex-direction:column;gap:16px;transition:transform .15s}.batch-card:hover{transform:translateY(-1px)}.batch-card__header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.batch-card__title{margin:0 0 4px;font-size:var(--fs-heading-sm);font-weight:550;color:var(--ink)}.variety-tag{background:var(--shade-30);color:var(--ink);padding:4px 10px;letter-spacing:.28px}.batch-card__status,.variety-tag{font-size:.6875rem;font-weight:500;border-radius:9999px;text-transform:uppercase}.batch-card__status{padding:4px 12px;letter-spacing:.72px}.batch-card__status--open{background:var(--canvas-cream);color:var(--ink);border:1px solid var(--hairline)}.batch-card__status--threshold-reached{background:var(--aloe);color:var(--ink)}.batch-card__status--confirmed{background:var(--ink);color:#fff}.batch-card__status--cancelled{background:#fee2e2;color:#9b1c1c}.batch-card__desc{margin:0;color:var(--shade-60);font-size:.9375rem;line-height:1.5}.batch-card__details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 18px;background:var(--canvas-cream);padding:16px;border-radius:8px;border:1px solid var(--hairline)}.batch-card__footer{display:flex;justify-content:space-between;align-items:center;gap:20px;border-top:1px solid var(--hairline);padding-top:16px;margin-top:8px}.detail{display:flex;flex-direction:column;gap:2px}.detail__label{font-size:.75rem;color:var(--shade-50);font-weight:500;letter-spacing:.28px}.detail__value{font-size:.9375rem;color:var(--ink);font-weight:550}.progress{display:flex;flex-direction:column;gap:8px}.progress__labels{display:flex;justify-content:space-between;font-size:.875rem;color:var(--ink);font-weight:500}.progress__track{height:6px;background:var(--hairline);border-radius:9999px;overflow:hidden}.progress__fill{height:100%;background:var(--ink);border-radius:9999px;transition:width .4s ease-out}.progress__fill--completed{background:#000}.progress__meta{font-size:.8125rem;font-weight:550;color:var(--ink)}.progress__meta--warning{color:#92400e}.price{display:flex;flex-direction:column}.price__label{font-size:.75rem;color:var(--shade-50);font-weight:500}.price__value{font-size:var(--fs-display-sm);font-weight:550;color:var(--ink);line-height:1.1}.price__unit{font-size:.875rem;color:var(--shade-50)}.purchase-form{gap:12px}.purchase-form,.qty-selector{display:flex;align-items:center}.qty-selector{border:1px solid var(--hairline);border-radius:9999px;overflow:hidden;height:42px}.qty-selector__btn{width:40px;height:100%;background:transparent;border:none;font-size:1.2rem;font-weight:500;cursor:pointer;color:var(--ink);transition:background .1s}.qty-selector__btn:hover{background:var(--canvas-cream)}.qty-selector__btn:disabled{opacity:.4;cursor:not-allowed}.qty-selector__input{width:50px;height:100%;text-align:center;border:none;border-left:1px solid var(--hairline);border-right:1px solid var(--hairline);font-size:1rem;font-weight:550;font-family:inherit;background:transparent}.qty-selector__input::-webkit-inner-spin-button,.qty-selector__input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.orders-table{overflow-x:auto;margin:0 -28px -28px}.orders-table__table{width:100%;border-collapse:collapse;text-align:left;font-size:.9375rem}.orders-table__table td,.orders-table__table th{padding:14px 28px;border-bottom:1px solid var(--hairline)}.orders-table__table th{background:var(--canvas-cream);font-weight:500;color:var(--shade-50);font-size:.6875rem;text-transform:uppercase;letter-spacing:.72px}.orders-table__table tbody tr:last-child td{border-bottom:none}.orders-table__table tbody tr:hover{background:var(--canvas-cream)}.orders-table__total{font-weight:550;color:var(--ink)}.orders-table__table td:nth-child(3),.orders-table__table td:nth-child(4),.orders-table__table td:nth-child(5),.orders-table__table th:nth-child(3),.orders-table__table th:nth-child(4),.orders-table__table th:nth-child(5){min-width:72px;white-space:nowrap}.prod-info{display:flex;flex-direction:column}.prod-info__name{color:var(--ink)}.prod-info__variant{color:var(--shade-50);font-size:.8125rem}.admin-dashboard{gap:24px}.admin-dashboard,.batches-list{display:flex;flex-direction:column}.batches-list{gap:12px}.batch-admin-card{background:var(--canvas-light);border:1px solid var(--hairline);border-radius:12px;padding:20px;display:flex;flex-direction:column;gap:14px}.batch-admin-card__header{display:flex;justify-content:space-between;align-items:flex-start}.batch-admin-card__title{font-size:1.0625rem;font-weight:550;color:var(--ink);display:inline-block;margin:0 8px 0 0}.batch-admin-card__producer{font-size:.75rem;color:var(--shade-50);font-weight:500;margin-left:10px}.batch-admin-card__progress{background:var(--canvas-cream);padding:14px 16px;border-radius:8px;display:flex;flex-direction:column;gap:8px;border:1px solid var(--hairline)}.batch-admin-card__actions{display:flex;gap:10px;border-top:1px solid var(--hairline);padding-top:14px;flex-wrap:wrap}.merchant-reservations{margin-top:10px;display:flex;flex-direction:column;gap:4px;border-top:1px dashed var(--hairline);padding-top:10px}.merchant-reservations__item{display:flex;justify-content:space-between;align-items:center;font-size:.875rem;padding:4px 8px;border-radius:6px;background:var(--canvas-light)}.merchant-reservations__name{color:var(--shade-60);font-weight:600}.merchant-reservations__qty{color:#2563eb;font-weight:700}.order-card,.orders-list{display:flex;flex-direction:column;gap:14px}.order-card{background:var(--canvas-light);border-radius:12px;padding:22px;border:1px solid var(--hairline);border-left:3px solid var(--shade-30)}.order-card--pending{border-left-color:#f59e0b}.order-card--validated{border-left-color:var(--ink)}.order-card--delivered{border-left-color:var(--shade-40)}.order-card--disputed{border-left-color:#8b5cf6}.order-card__header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--hairline);padding-bottom:10px}.order-card__merchant{color:var(--shade-60);font-weight:550}.order-card__totals{display:flex;align-items:center;gap:12px}.order-card__date{font-size:.8125rem;color:var(--shade-50)}.order-card__items{display:flex;flex-direction:column;gap:6px;background:var(--canvas-cream);padding:12px 16px;border-radius:8px;border:1px solid var(--hairline)}.order-card__item{display:flex;justify-content:space-between;font-size:.9375rem}.order-card__statuses{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.order-card__notes{background:var(--canvas-cream);border:1px solid var(--hairline);padding:14px 16px;border-radius:8px;font-size:.875rem;color:var(--shade-60);display:flex;flex-direction:column;gap:6px}.order-card__notes p{margin:0}.order-card__private-note{color:var(--shade-50);font-style:italic;border-top:1px dashed var(--shade-30);padding-top:4px;margin-top:4px}.order-card__edit-toggle{border-top:1px dashed var(--hairline);padding-top:14px}.order-card__edit-form{background:var(--canvas-cream);padding:20px;border-radius:8px;border:1px solid var(--hairline);display:flex;flex-direction:column;gap:16px}.status-field{display:flex;flex-direction:column;gap:4px}.status-field__label{font-size:.75rem;color:var(--shade-50);font-weight:500;letter-spacing:.28px}.actors-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.actors-grid__col{display:flex;flex-direction:column;gap:12px}.actors-grid__title{margin:0;font-size:1rem;font-weight:550;color:var(--ink);border-bottom:1px solid var(--hairline);padding-bottom:8px}.user-list{gap:8px}.user-card,.user-list{display:flex;flex-direction:column}.user-card{background:var(--canvas-light);border:1px solid var(--hairline);border-left:3px solid var(--ink);padding:14px 16px;border-radius:8px;gap:4px;font-size:.875rem}.user-card--merchant{border-left-color:var(--shade-40)}.user-card__name{font-size:.9375rem;font-weight:550;color:var(--ink)}.user-card__email{color:var(--shade-50);font-size:.8125rem}.user-card__siret{color:var(--shade-40);font-size:.8125rem}.user-card__address,.user-card__phone{color:var(--shade-60);font-size:.8125rem}.products-table{overflow-x:auto}.products-table__table{width:100%;border-collapse:collapse;font-size:.875rem}.products-table__table th{text-align:left;padding:10px 14px;background:var(--canvas-cream);color:var(--shade-50);font-size:.6875rem;text-transform:uppercase;letter-spacing:.72px;border-bottom:1px solid var(--hairline);font-weight:500}.products-table__table td{padding:12px 14px;border-bottom:1px solid var(--hairline);color:var(--ink);vertical-align:middle}.products-table__table tr:last-child td{border-bottom:none}.products-table__table tbody tr:hover{background:var(--canvas-cream)}.products-table__variety{color:var(--shade-50);font-weight:420}@media(max-width:768px){:root{--fs-heading-sm:.9375rem;--fs-heading-md:1.0625rem;--fs-display-sm:1.25rem;--fs-display-md:1.5rem;--fs-display-lg:1.75rem}.agroliens-app{padding:16px}.site-header{padding:10px 16px;gap:6px}.site-header .btn--logout{order:2}.site-header__user{order:3;width:100%;font-size:.8125rem}.tenant-space{margin-top:80px}.panel{padding:20px}.orders-table{margin:0 -20px -20px}.orders-table__table{font-size:.8125rem}.orders-table__table td,.orders-table__table th{padding:8px 12px}.panel__header{margin-bottom:16px;padding-bottom:8px}.kpi-grid,.kpi-grid--3,.order-card__statuses{grid-template-columns:repeat(2,minmax(0,1fr))}.batch-card__details,.form-row{grid-template-columns:1fr}.span-full{grid-column:span 1}.tab-bar{flex-direction:row;flex-wrap:wrap;border-radius:12px}.actors-grid{grid-template-columns:1fr}.form-panel__fields{flex-direction:column}.form-panel__fields .flex-narrow,.form-panel__fields .flex-wide,.form-panel__fields .form-panel__submit{width:100%;flex:none}.batch-card{padding:16px}.batch-card__header{flex-wrap:wrap}.batch-card__footer{flex-direction:column;align-items:stretch;gap:12px}.purchase-form{justify-content:space-between}.btn--purchase{flex:1}}
