/* Module fruitiers — charte LARANCA crème/bordeaux, sans dépendance CSS JS externe */
:root{--inv-wine:#7b2029;--inv-wine-dark:#58171e;--inv-cream:#faf5ed;--inv-paper:#fffdf9;--inv-rule:#e6d8cb;--inv-muted:#756960}
.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}
[hidden]{display:none!important}
.inv-hero{background:var(--inv-cream);border-bottom:1px solid var(--inv-rule)}
.inv-hero-inner{padding:85px 0 66px;max-width:1200px}
.inv-eyebrow{font-size:11px;font-weight:700;letter-spacing:.19em;color:var(--inv-wine);display:flex;align-items:center;gap:12px;margin:0 0 21px}
.inv-line{width:26px;height:1px;background:currentColor;display:inline-block}
.inv-hero h1,.inv-admin-intro h1{font:500 clamp(46px,6.5vw,81px)/1.12 var(--serif);letter-spacing:-.05em;margin:0 0 25px}
.inv-hero h1 em,.inv-admin-intro h1 em,.inv-visit h2 em{color:var(--inv-wine);font-weight:400}
.inv-hero p{max-width:750px;font-size:16px;line-height:1.85;color:var(--inv-muted);margin:0}
.inv-stats{display:flex;align-items:center;flex-wrap:wrap;gap:17px;margin-top:34px;font-size:13px;color:#6f5b54}
.inv-stats strong{color:var(--inv-wine);font:500 24px var(--serif);margin-right:6px}
.inv-stat-sep{height:18px;width:1px;background:#ceb9aa}
.inv-list-section{padding:64px 0 90px;background:#fff}
.inv-toolbar{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-bottom:24px}
.inv-search-wrap{flex:1 1 360px;max-width:540px;position:relative}
.inv-search-wrap svg{position:absolute;top:16px;left:17px;width:20px;height:20px;fill:none;stroke:#9d827c;stroke-width:1.6;stroke-linecap:round}
.inv-search-wrap input{font:500 14px var(--sans);width:100%;height:54px;background:#faf6f0;border:1px solid #e6dcd1;border-radius:5px;padding:12px 15px 12px 50px;outline-offset:4px}
.inv-only{font-size:13px;font-weight:700;display:flex;gap:10px;align-items:center;cursor:pointer;user-select:none;color:var(--inv-wine)}
.inv-only input{width:18px;height:18px;accent-color:var(--inv-wine)}
.inv-tabs{display:flex;gap:8px;overflow-x:auto;padding:2px 0 12px;scrollbar-width:thin;scrollbar-color:#d2afa3 transparent;margin-bottom:9px}
.inv-tab{border:1px solid #dfd4c8;background:#faf7f2;color:#594f4a;white-space:nowrap;border-radius:4px;padding:11px 16px;font-size:12px;font-weight:700;transition:background .15s,color .15s}
.inv-tab.active{background:var(--inv-wine);border-color:var(--inv-wine);color:#fff}
.inv-tab:hover:not(.active){background:#efe3da}
.inv-state-note{font-size:12px;line-height:1.65;color:#7b6a5e;margin:10px 0 29px;border-left:2px solid #d8aa9e;padding:7px 12px;background:#fbf6ef}
.inv-state-note.demo{background:#fff4d9;border-color:#ca9d37;color:#795d23}
.inv-state-note.error{background:#fff1f1;border-color:#ae3737;color:#8a2828}
.inv-category{margin-bottom:48px}
.inv-category-heading{display:flex;align-items:baseline;gap:20px;border-bottom:1px solid var(--inv-rule);padding-bottom:15px;margin-bottom:16px}
.inv-index{color:#b18b82;font:500 19px var(--serif)}
.inv-category-heading h2{font:500 34px var(--serif);letter-spacing:-.025em;margin:0}
.inv-category-meta{margin-left:auto;color:#8b7f74;font-size:11px}
.inv-variety-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}
.inv-variety{border:1px solid #ede3d9;background:var(--inv-paper);min-height:120px;padding:23px 24px;display:flex;flex-direction:column;align-items:start;position:relative;gap:12px}
.inv-variety-mark{position:absolute;right:20px;top:16px;color:#cba9a0;font-size:18px}
.inv-variety h3{font:500 23px/1.3 var(--serif);margin:0;padding-right:22px}
.inv-stock{display:inline-flex;align-items:center;gap:8px;font-size:11px;font-weight:700;letter-spacing:.025em}
.inv-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:currentColor}
.inv-stock.yes{color:#266c4f}.inv-stock.no{color:#9b4141}.inv-stock.unknown{color:#927557}
.inv-smallprint{border-top:1px solid var(--inv-rule);padding-top:19px;color:#8e7e71;line-height:1.75;font-size:12px}
.inv-smallprint>span{color:var(--inv-wine);margin-right:7px}
.inv-empty{background:var(--inv-cream);border:1px solid #eee2d6;padding:60px 28px;text-align:center;margin:10px 0 35px}
.inv-empty>span{font-size:25px;color:var(--inv-wine)}
.inv-empty h2{font:500 30px var(--serif);margin:9px 0}
.inv-empty p{max-width:560px;margin:0 auto 23px;color:var(--inv-muted)}
.inv-visit{background:var(--inv-wine-dark);color:white;padding:63px 0}
.inv-visit-inner{display:flex;align-items:center;justify-content:space-between;gap:30px}
.inv-visit .inv-eyebrow{color:#f0c6bc}
.inv-visit h2{font:500 clamp(34px,4vw,53px)/1.2 var(--serif);letter-spacing:-.04em;margin:0 0 9px}
.inv-visit h2 em{color:#e5aaa1}
.inv-visit p:not(.inv-eyebrow){font-size:12px;color:#e0c3bb;margin:0}
.inv-visit-buttons{display:flex;gap:12px;flex-wrap:wrap}
.inv-outline{border-color:#b78382;color:white;background:transparent}
.inv-outline:hover{background:#8f3842}
.inv-footer{display:flex;align-items:center;gap:30px;justify-content:space-between;padding:28px 0;flex-wrap:wrap}
.inv-footer p{font-size:12px;color:#8f8076;margin:0}
.inv-footer>a:not(.footer-brand){font-size:12px;font-weight:700;color:var(--inv-wine)}
.inv-footer>a.inv-admin-link{color:#9d948c;font-weight:500}
/* Administration */
.inv-admin-body{background:#f7f1e9;min-height:100vh}
.inv-admin-header{border-bottom:1px solid var(--inv-rule);background:#fffdf9}
.inv-admin-nav{min-height:82px;display:flex;justify-content:space-between;align-items:center;gap:20px}
.inv-admin-toplinks{display:flex;gap:22px;align-items:center;font-size:12px;font-weight:700;color:var(--inv-wine)}
.inv-logout{background:none;border:0;text-decoration:underline;text-underline-offset:3px;font-size:12px;color:var(--inv-wine)}
.inv-admin-main{max-width:1060px;padding-top:57px;padding-bottom:100px}
.inv-admin-intro h1{font-size:clamp(40px,5vw,60px);margin:0 0 15px}
.inv-admin-intro>p:last-child{font-size:14px;color:var(--inv-muted);max-width:730px;line-height:1.9;margin:0 0 28px}
.inv-mode-notice,.inv-admin-alert{padding:15px 20px;font-size:13px;line-height:1.7;margin:15px 0 25px;background:#fff2d8;border-left:3px solid #b88534;color:#654b26;border-radius:2px}
.inv-mode-notice.connected{background:#f3ede9;border-color:var(--inv-wine);color:#5c4c45}
.inv-admin-alert{background:#e9f4eb;border-color:#3f8d5a;color:#245a36}
.inv-admin-alert.error{background:#fff0f0;border-color:#be4343;color:#8b2828}
.inv-admin-alert.info{background:#f0e9f6;border-color:#94769d;color:#5d4865}
.inv-login-panel{max-width:470px;background:#fffdf9;border:1px solid #e6d8cb;padding:35px;margin:20px 0 0}
.inv-login-panel h2{font:500 32px var(--serif);margin:0 0 5px}
.inv-login-panel p{font-size:13px;color:var(--inv-muted);margin:0 0 22px}
.inv-login-panel form{display:flex;flex-direction:column;gap:8px}
.inv-login-panel label,.inv-add-form label,.inv-admin-select label{font-size:12px;font-weight:700;color:#6a4a42}
.inv-login-panel input,.inv-add-form input,.inv-admin-select select,.inv-import textarea{width:100%;border:1px solid #d8c8bb;background:#fff;border-radius:4px;padding:14px 15px;min-height:49px;font:14px var(--sans);margin-bottom:12px}
.inv-login-panel button{margin-top:10px}
.inv-admin-overview{display:grid;grid-template-columns:1fr 1fr 1.4fr;gap:20px;margin:35px 0 28px}
.inv-admin-overview>div{background:#fffdf9;padding:20px 24px;border:1px solid #ece2d8;display:flex;flex-direction:column;justify-content:center;gap:3px}
.inv-big-count{font:500 38px var(--serif);color:var(--inv-wine);line-height:1.1}
.inv-admin-overview>div>span:not(.inv-big-count){font-size:12px;color:#85756b}
.inv-admin-overview .inv-edit-status{font-weight:700!important;color:#7c6a60!important}
.inv-edit-status.pending{color:var(--inv-wine)!important}
.inv-edit-status.saved{color:#337555!important}
.inv-admin-select{display:flex;align-items:end;gap:18px;justify-content:space-between;margin:30px 0 16px}
.inv-admin-select>div:first-child{width:min(100%,420px)}
.inv-admin-select select{font-weight:700;margin:8px 0 0;appearance:auto}
.inv-admin-category-count{font-size:12px;color:#827369;padding-bottom:15px}
.inv-manage-card{background:#fffdf9;border:1px solid #e8ddd2;padding:27px 32px 32px;margin-bottom:28px}
.inv-manage-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;border-bottom:1px solid #eaded1;padding-bottom:20px}
.inv-manage-heading h2{font:500 33px var(--serif);margin:0 0 3px}
.inv-manage-heading p{font-size:12px;color:var(--inv-muted);margin:0}
.inv-bulk-controls{display:flex;gap:9px;flex-wrap:wrap}
.inv-bulk-controls button,.inv-reset-button{background:#faf6f0;border:1px solid #dfcfc1;color:var(--inv-wine);padding:11px 14px;font-size:12px;font-weight:700;border-radius:4px}
.inv-bulk-controls button:hover,.inv-reset-button:hover{background:#f0e3d8}
.inv-admin-item{display:flex;align-items:center;gap:15px;min-height:70px;padding:14px 3px;border-bottom:1px solid #f0e8df}
.inv-admin-check{display:flex;align-items:center;gap:14px;cursor:pointer;min-width:0;flex:1}
.inv-admin-check input{position:absolute;opacity:0;width:1px;height:1px}
.inv-check-visual{height:29px;width:29px;border:2px solid #c7ada3;background:#fff;display:flex;align-items:center;justify-content:center;color:transparent;font-size:18px;border-radius:5px;flex:none}
.inv-admin-check input:checked+.inv-check-visual{border-color:#3c855c;color:white;background:#3c855c}
.inv-admin-check input:focus-visible+.inv-check-visual{outline:3px solid #d09e8b;outline-offset:3px}
.inv-admin-item-name{font-size:15px;font-weight:700;min-width:0;overflow-wrap:anywhere}
.inv-admin-item-name small{font-size:10px;display:block;color:#99857a;font-weight:400}
.inv-admin-item-status{font-size:11px;color:#94796f;white-space:nowrap}
.inv-admin-item-status.yes{color:#2c7b4d}.inv-admin-item-status.no{color:#ae5d5d}
.inv-remove{border:0;background:#f8eee9;color:#ad6864;width:30px;height:30px;border-radius:4px;font-size:22px;line-height:1;flex:none}
.inv-remove:hover{background:#eedbd5}
.inv-empty-admin{font-size:13px;padding:30px 5px;color:#8b776c}
.inv-add-form{margin-top:25px}
.inv-add-form>div{display:flex;gap:10px;margin-top:8px}
.inv-add-form input{margin-bottom:0;flex:1;min-width:0}
.inv-add-form button{white-space:nowrap;min-height:49px}
.inv-import{margin-top:20px;border-top:1px solid #ede0d3;padding-top:18px}
.inv-import summary{cursor:pointer;font-size:13px;font-weight:700;color:var(--inv-wine)}
.inv-import>div{padding-top:8px}
.inv-import p{font-size:12px;color:#87776c}
.inv-import textarea{min-height:130px;resize:vertical;margin-bottom:6px}
.inv-small-button{border-color:var(--inv-wine);color:var(--inv-wine);background:#fff;min-height:43px;padding:11px 18px}
.inv-old-link{display:inline-block;margin-top:24px;text-decoration:underline;text-underline-offset:4px;font-size:12px;font-weight:700;color:var(--inv-wine)}
.inv-save-bar{position:sticky;bottom:14px;z-index:20;display:flex;justify-content:space-between;align-items:center;gap:14px;background:#fffdf9;box-shadow:0 10px 42px #391a1526;border:1px solid #e9dbcd;border-radius:6px;padding:17px 20px}
.inv-save-bar>div{margin-right:auto;display:flex;flex-direction:column;gap:3px}
.inv-save-bar strong{font-size:13px}.inv-save-bar>div>span{font-size:10px;color:#988479}
.inv-save-bar .button{white-space:nowrap;min-height:48px}
.inv-save-bar button:disabled{opacity:.45;cursor:not-allowed;transform:none}
@media(max-width:930px){.inv-variety-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.inv-visit-inner{align-items:start;flex-direction:column}.inv-admin-overview{grid-template-columns:1fr 1fr}.inv-admin-overview>div:last-child{grid-column:span 2}}
@media(max-width:700px){.inv-hero-inner{padding:48px 0 44px}.inv-hero h1{font-size:clamp(39px,10vw,58px)}.inv-hero p{font-size:14px;line-height:1.75}.inv-stats{margin-top:25px;gap:12px;font-size:11px}.inv-list-section{padding:32px 0 62px}.inv-toolbar{gap:15px;margin-bottom:16px}.inv-search-wrap{flex-basis:100%;max-width:none}.inv-tabs{margin-inline:-18px;padding:2px 18px 12px}.inv-category{margin-bottom:36px}.inv-category-heading{gap:10px;flex-wrap:wrap}.inv-category-heading h2{font-size:27px}.inv-category-meta{flex-basis:100%;margin-left:0;font-size:11px;padding-left:32px}.inv-variety-grid{grid-template-columns:1fr;gap:9px}.inv-variety{min-height:91px;padding:16px 18px;gap:5px}.inv-variety h3{font-size:21px}.inv-visit{padding:43px 0}.inv-visit-buttons{width:100%}.inv-visit-buttons a{flex:1}.inv-footer{padding-bottom:110px;gap:12px}.inv-footer p{flex-basis:100%}.inv-footer>a:not(.footer-brand){font-size:11px}.inv-admin-nav{min-height:71px}.inv-admin-toplinks{gap:12px;font-size:11px}.inv-admin-main{padding-top:38px;padding-bottom:65px}.inv-admin-intro h1{font-size:41px}.inv-admin-overview{gap:9px;margin:21px 0}.inv-admin-overview>div{padding:13px}.inv-big-count{font-size:30px}.inv-admin-select{flex-direction:column;align-items:stretch;gap:0;margin-top:22px}.inv-admin-select>div:first-child{width:100%}.inv-admin-category-count{padding:7px 0}.inv-manage-card{padding:18px 15px}.inv-manage-heading{display:block}.inv-manage-heading h2{font-size:28px}.inv-bulk-controls{margin-top:14px}.inv-admin-item{gap:9px;min-height:65px}.inv-admin-check{gap:10px}.inv-admin-item-name{font-size:13px}.inv-admin-item-status{font-size:10px}.inv-add-form>div{flex-direction:column}.inv-add-form button{width:100%}.inv-save-bar{bottom:0;margin:0 -18px;padding:11px 15px calc(12px + env(safe-area-inset-bottom,0px));border-radius:0;flex-wrap:wrap;gap:9px}.inv-save-bar>div{flex-basis:100%}.inv-save-bar>div>span{display:none}.inv-save-bar .button{flex:1;font-size:11px;padding:11px 10px;white-space:normal}.inv-reset-button{min-height:47px}.inv-login-panel{padding:23px 18px}}
@media(max-width:360px){.inv-admin-item-status{display:none}.inv-hero h1{font-size:37px}.inv-visit-buttons{flex-direction:column}}
/* Catalogue enrichi — photos, descriptions et édition des fiches */
.inv-fruit-card{padding:0;overflow:hidden;display:block;min-height:0;gap:0;border-radius:3px}
.inv-fruit-photo{aspect-ratio:5 / 3;position:relative;overflow:hidden;background:linear-gradient(132deg,#eee1d7,#f7f1ea);display:flex;align-items:center;justify-content:center}
.inv-fruit-img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;z-index:1}
.inv-fruit-img.inv-photo-failed{display:none}
.inv-fruit-placeholder{color:#b9958a;font:italic 50px var(--serif);display:flex;flex-direction:column;align-items:center;gap:0}
.inv-fruit-placeholder small{font:500 11px var(--sans);color:#9f8578;letter-spacing:.08em}
.inv-fruit-body{padding:21px 22px 23px}
.inv-fruit-body h3{min-height:0;padding:0 7px 0 0;margin:0 0 12px;font-size:25px}
.inv-fruit-details{border-top:1px solid #e9dbce;margin-top:18px;padding-top:14px;width:100%}
.inv-fruit-details summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:8px;color:#812d36;font-weight:700;font-size:12px}
.inv-fruit-details summary::-webkit-details-marker{display:none}
.inv-fruit-details summary span{font-size:19px;font-weight:400;transition:transform .2s}
.inv-fruit-details[open] summary span{transform:rotate(45deg)}
.inv-fruit-details p{white-space:pre-line;font:400 13px/1.8 var(--sans);color:#60574f;margin:12px 0 0;overflow-wrap:anywhere}
.inv-admin-rich{display:block;padding:11px 0}
.inv-item-top{display:flex;align-items:center;gap:12px;min-height:72px;width:100%}
.inv-admin-photo{width:64px;height:64px;flex:none;display:grid;place-items:center;position:relative;background:#f2e9e0;border:1px solid #ecdfd4;border-radius:4px;overflow:hidden}
.inv-admin-photo img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover;z-index:2}
.inv-admin-photo img.inv-photo-failed{display:none}
.inv-admin-no-photo{color:#b99285;font-size:25px}
.inv-admin-check{min-width:0}
.inv-admin-item-name{overflow-wrap:anywhere}
.inv-edit-toggle{border:1px solid #d9c3b9;background:#fffaf5;color:var(--inv-wine);font-size:11px;font-weight:700;border-radius:4px;padding:9px 11px;flex:none}
.inv-edit-toggle:hover,.inv-edit-toggle[aria-expanded="true"]{background:#f4e7de}
.inv-edit-panel{margin:12px 0 12px 77px;border:1px solid #e8d8ca;background:#fcf9f4;padding:18px;display:grid;gap:10px}
.inv-edit-panel label{display:block;font-size:12px;font-weight:700;color:#795c4e}
.inv-edit-panel textarea,.inv-edit-panel input:not([type="file"]){width:100%;margin-top:6px;background:white;border:1px solid #d9c9bb;border-radius:4px;min-height:42px;padding:11px;font:400 13px/1.6 var(--sans)}
.inv-edit-panel textarea{min-height:110px;resize:vertical}
.inv-edit-panel input[type="file"]{width:100%;margin-top:7px;max-width:100%;font:400 12px var(--sans)}
.inv-clear-image{color:#862d36;background:#fff;border:1px solid #dcc6b9;padding:9px 12px;border-radius:3px;justify-self:start;font-size:12px;font-weight:700}
.inv-form-help{font:400 11px/1.7 var(--sans);color:#8d7c70;margin:3px 0}
.inv-add-complete{border-top:1px solid #eee0d5;padding-top:25px;display:flex;flex-direction:column;gap:2px}
.inv-add-complete h3,.inv-backups h3{font:500 24px var(--serif);margin:0 0 12px}
.inv-add-complete input,.inv-add-complete textarea{width:100%;border:1px solid #d8c8bb;background:white;padding:12px 13px;font:400 14px var(--sans);border-radius:4px;margin:3px 0 12px;min-height:45px}
.inv-add-complete input[type="file"]{padding:8px;font-size:12px}
.inv-add-complete textarea{min-height:100px;resize:vertical}
.inv-add-complete button{align-self:start;min-height:47px}
.inv-backups{margin-top:27px;border-top:1px solid #e9daca;padding-top:23px}
.inv-backups p{font-size:12px;line-height:1.7;color:#80746c;max-width:640px}
.inv-backup-actions{display:flex;gap:11px;align-items:center;flex-wrap:wrap}
.inv-backup-actions button,.inv-backup-import{display:inline-block;background:#faf6f0;color:#7b2029;border:1px solid #d8c6ba;border-radius:3px;padding:11px 15px;cursor:pointer;font-size:12px;font-weight:700}
.inv-backup-actions button:hover,.inv-backup-import:hover{background:#f3e4da}
@media(max-width:700px){
 .inv-fruit-photo{aspect-ratio:2.2 / 1}
 .inv-fruit-body{padding:18px}
 .inv-fruit-body h3{font-size:22px}
 .inv-item-top{flex-wrap:wrap;gap:9px}
 .inv-admin-photo{height:53px;width:53px}
 .inv-item-top .inv-admin-check{flex:1 1 calc(100% - 70px)}
 .inv-item-top .inv-admin-item-status{margin-left:62px;margin-right:auto}
 .inv-edit-panel{margin:12px 0 9px;padding:12px}
 .inv-edit-toggle{padding:9px 12px}
 .inv-add-complete button{width:100%}
}
@media(max-width:360px){.inv-fruit-photo{aspect-ratio:2.4 / 1}.inv-item-top .inv-admin-item-status{display:block;font-size:10px}}

.inv-variety-grid{align-items:start}.inv-price{font-weight:700;color:#7b2029;margin:0 0 12px}.inv-edit-panel input{max-width:100%;min-height:44px}.inv-fruit-details p{white-space:pre-line}[hidden]{display:none!important}
