:root{font:15px -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:#26342f;background:#f5f6f1}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer;border:0;border-radius:8px}button:disabled{opacity:.5;cursor:not-allowed}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid #d6b475;outline-offset:3px}a{color:inherit}.hidden{display:none!important}.layout{display:grid;grid-template-columns:235px 1fr;min-height:100vh}aside{background:#153e35;color:white;padding:30px 18px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-size:22px;font-weight:700;padding:0 10px}.brand>span{background:#e1bd7e;color:#214336;padding:13px 8px;border-radius:13px}.brand small{display:block;font-size:10px;letter-spacing:3px;margin-top:5px;color:#bed0c0}.nav-label{font-size:10px;text-transform:uppercase;letter-spacing:2px;color:#9db7a6;margin:44px 12px 12px}nav{display:grid;gap:7px}.nav{padding:14px 13px;background:none;color:#d6e3da;text-align:left;border-radius:9px;font-size:14px}.nav:hover,.nav.active{background:#ffffff16;color:#fff}.nav.active{box-shadow:inset 3px 0 #dfbf85}.aside-bottom{margin-top:auto;font-size:12px;line-height:2;color:#d0dfd5;padding:12px}.aside-bottom a,.aside-bottom small{display:block;margin-top:8px}.aside-bottom small{color:#96af9f}main{padding:28px 32px;min-width:0}header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #dfe5da;padding-bottom:22px;margin-bottom:24px}.eyebrow{font-size:10px;letter-spacing:1.8px;color:#73826e}h1{font-size:30px;letter-spacing:-1px;font-weight:600;margin:7px 0 0}h2{font-size:18px;font-weight:600}.primary{padding:12px 17px;background:#23543f;color:white}.secondary{padding:10px 14px;background:white;color:#34513c;border:1px solid #d5dfce}.text-button{background:none;color:#6b7a6c;font-size:12px}.danger{background:#fff0e9;border:1px solid #e1bcae;color:#963c29;padding:10px 13px}.full{width:100%;margin-top:16px}.toolbar{display:flex;align-items:center;gap:12px;margin:0 0 18px;flex-wrap:wrap}input,select{border:1px solid #d5decf;background:white;border-radius:8px;padding:11px 12px;color:#273a2d;min-width:0}input[type=search]{flex:1;min-width:190px}.toolbar select{max-width:230px}.pos-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:25px}.product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:12px}.product-card{background:white;border:1px solid #dfe5d8;border-radius:12px;overflow:hidden;display:flex;flex-direction:column;text-align:left}.photo{width:100%;height:132px;background:#eef0e9;display:flex;align-items:center;justify-content:center;color:#a1ad9c;font-size:30px;overflow:hidden}.photo img{width:100%;height:100%;object-fit:contain;padding:7px;background:white}.product-body{padding:12px;display:flex;flex-direction:column;flex:1;gap:7px}.product-name{font-size:12px;font-weight:600;line-height:1.45;min-height:35px}.product-ref{font-size:10px;color:#83907d}.product-price{font-weight:650;font-size:15px}.product-stock{font-size:11px;color:#68835b}.product-card button{margin-top:auto;background:#eaf1e3;color:#28513b;padding:8px;font-size:12px}.product-card button.configure{color:#8a6a33;background:#f6efdf}.more{display:block;margin:22px auto}.hint{font-size:12px;color:#8c7549;margin-bottom:16px;line-height:1.6}.basket{background:white;border:1px solid #dce4d5;border-radius:14px;padding:20px;position:sticky;top:20px;align-self:start;max-height:calc(100vh - 45px);overflow:auto}.basket-head{display:flex;justify-content:space-between;align-items:center}.basket h2{margin:0}.basket-empty{text-align:center;padding:42px 12px;color:#8a9782;font-size:13px;line-height:1.7}.cart-line{border-bottom:1px solid #e8ede2;padding:16px 0}.cart-line strong{font-size:12px;line-height:1.5;display:block}.line-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:10px;font-size:13px}.qty{display:flex;align-items:center;gap:8px}.qty button{padding:3px 9px;background:#edf2e7;color:#294a32}.remove{background:none;color:#9a8b73;font-size:11px}.basket-total{display:flex;align-items:center;justify-content:space-between;padding:22px 0 15px;border-top:1px solid #e7ecdf;margin-top:12px}.basket-total strong{font-size:24px}.basket-total span{font-size:13px}label{display:block;font-size:12px;color:#63745b;margin:13px 0}.basket input,.basket select{width:100%;margin-top:6px}.change{display:flex;justify-content:space-between;margin-top:16px;font-size:12px;color:#758768}.micro{font-size:11px;color:#7c8873;line-height:1.7}.notice{padding:13px 16px;border:1px solid #e6cda7;background:#fff0d9;color:#8d6438;border-radius:10px;line-height:1.6;margin-bottom:18px}.section-top{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:20px}.section-top p{font-size:13px;line-height:1.7;color:#6b7a61}.table-wrap{max-height:570px;overflow:auto;background:white;border:1px solid #dce4d5;border-radius:11px}table{width:100%;border-collapse:collapse;text-align:left;font-size:13px}th{position:sticky;top:0;padding:14px;background:#eaf0e3;color:#627454;font-size:11px;text-transform:uppercase;white-space:nowrap;z-index:1}td{padding:13px 14px;border-top:1px solid #e9eee2;vertical-align:middle}td small{display:block;margin-top:5px;color:#8a957f;font-size:10px}td button{padding:7px 10px;font-size:12px;white-space:nowrap}.thumb{width:47px;height:52px;object-fit:contain;border:1px solid #e2e8d9;border-radius:6px;background:white}.thumb-empty{display:flex;width:47px;height:52px;background:#eff2eb;align-items:center;justify-content:center;border-radius:6px;color:#9ba78e}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-bottom:20px}.stats.four{grid-template-columns:repeat(4,1fr)}.stats>div{background:white;border:1px solid #dce4d5;padding:19px;border-radius:12px}.stats span{color:#76866a;font-size:12px}.stats b{display:block;font-size:27px;margin-top:9px;font-weight:600;letter-spacing:-.5px}.stats b.small-stat{font-size:20px}.scope{background:#eaeede;color:#697853;padding:15px;border-radius:9px;font-size:12px;line-height:1.7}.journal{background:white;border:1px solid #dce4d5;border-radius:10px;padding:17px;font-size:12px;white-space:pre-wrap;line-height:1.8}.dates{align-items:flex-end}.dates input{display:block;margin-top:6px}.negative{color:#a3482d}.positive{color:#357346}dialog{border:0;border-radius:17px;padding:27px;max-width:660px;width:calc(100% - 40px);box-shadow:0 20px 90px #102b2255;color:#263c2b}dialog::backdrop{background:#142e2877}dialog h2{margin-top:0;font-size:21px}dialog input,dialog select{width:100%;margin-top:6px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.dialog-head{display:flex;align-items:center;justify-content:space-between}.close{font-size:24px;background:none;color:#718567}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px;flex-wrap:wrap}.form-error{color:#a44429;font-size:13px;line-height:1.7;margin-top:12px}.photo-preview img{height:100px;max-width:180px;object-fit:contain}.ticket-heading{text-align:center}.ticket-heading h2{letter-spacing:2px}.ticket-meta{font-size:12px;line-height:1.8}.ticket-total{font-size:23px;text-align:right;font-weight:700;margin:20px 0}.ticket-void{background:#fff0e9;color:#9a472e;padding:12px}.empty-row{text-align:center;color:#8d9980;padding:35px}@media(max-width:1050px){.layout{grid-template-columns:190px 1fr}main{padding:23px 20px}.pos-layout{grid-template-columns:minmax(0,1fr) 275px;gap:15px}.stats.four{grid-template-columns:1fr 1fr}.product-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}}@media(max-width:750px){.layout{grid-template-columns:1fr}aside{position:static;height:auto;padding:18px}.brand{font-size:20px}.brand small,.nav-label,.aside-bottom{display:none}nav{display:flex;overflow:auto;margin-top:20px;gap:5px}.nav{padding:10px;white-space:nowrap;font-size:12px}main{padding:20px 15px}.pos-layout{grid-template-columns:1fr}.basket{position:static;max-height:none}.stats{grid-template-columns:1fr 1fr}.stats>div:last-child{grid-column:1/-1}.stats.four>div:last-child{grid-column:auto}.product-grid{grid-template-columns:repeat(2,1fr)}.section-top{align-items:flex-start;flex-direction:column}.form-grid{grid-template-columns:1fr}.stats b{font-size:23px}}@media print{body>*{display:none!important}body>dialog[open]{display:block!important;position:static!important;max-width:none;width:100%;box-shadow:none;border:0}.no-print{display:none!important}dialog::backdrop{display:none}#ticket table{font-size:11px}}

.session-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:11px;color:#697b61;margin-left:auto;margin-right:14px}#s-lines input{width:100px}#s-review-text{line-height:1.8}body[data-role="Gestionnaire stock"] #articles th:nth-child(n+3):nth-child(-n+5),body[data-role="Gestionnaire stock"] #article-rows td:nth-child(n+3):nth-child(-n+5){display:none}@media(max-width:750px){.session-tools{margin:10px 0}.session-tools span{width:100%}header{flex-wrap:wrap;gap:10px}}

.tariffs{font-size:11px;line-height:1.6;border-top:1px solid #dfe5da;padding-top:6px}.tariffs summary{cursor:pointer;font-weight:600}.tariffs strong{display:block}.stock-alerts{background:#fff3d9;border:1px solid #dbb367;border-radius:10px;padding:13px 18px;margin-bottom:18px}.stock-alerts summary{cursor:pointer;font-weight:650}.stock-alerts ul{max-height:200px;overflow:auto}.stock-alerts p{font-size:12px}@media print{body[data-print-format="80"] #receipt-dialog{width:76mm!important;padding:0!important}body[data-print-format="58"] #receipt-dialog{width:54mm!important;padding:0!important}body[data-print-format="58"] #ticket table{font-size:8px}#ticket th,#ticket td{white-space:normal;padding:4px 2px}.stock-alerts{display:none!important}}

/* Photos lisibles pour reconnaître les bouteilles en caisse et au catalogue. */
#pos .product-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}
#pos .photo{height:240px}
#pos .photo img{padding:4px;object-fit:contain}
#article-rows .thumb,#article-rows .thumb-empty{width:100px;height:140px;object-fit:contain}
@media(max-width:750px){#pos .product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}#pos .photo{height:200px}#article-rows .thumb,#article-rows .thumb-empty{width:80px;height:112px}}
.analytics-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:24px}.analytics-panel{background:#fff;border:1px solid #dfe5d8;border-radius:12px;padding:20px;min-width:0}.analytics-panel h2{margin-top:0}.chart-bars{display:grid;gap:12px;max-height:390px;overflow:auto;padding-right:5px}.chart-row{display:grid;grid-template-columns:minmax(85px,1.1fr) minmax(40px,1.5fr) auto;gap:12px;align-items:center;font-size:12px}.chart-label{overflow-wrap:anywhere}.chart-track{height:15px;background:#eef1e9;border-radius:4px;overflow:hidden}.chart-bar{height:100%;background:#39745c;border-radius:4px}.chart-value{font-variant-numeric:tabular-nums;font-size:12px}.chart-empty{padding:25px 0;color:#6b7a6c}#profit-cards b{font-size:25px}#stats-cards b{font-size:25px}@media(max-width:1000px){.analytics-grid{grid-template-columns:1fr}}@media(max-width:500px){.chart-row{grid-template-columns:minmax(65px,1fr) minmax(30px,1fr) auto;gap:6px}.chart-value{font-size:10px}}

.cashier-tier{display:grid;gap:2px;margin:8px 0}.tier-threshold{color:#245e3b;font-size:12px;font-weight:650}.tier-missing{color:#8b6226;font-size:11px}.carton-quote{background:#edf3e7;border-radius:6px;padding:8px;font-size:12px;font-weight:650;line-height:1.5}.tariffs>.text-button{margin-top:8px;font-size:11px!important;background:white!important}

.stock-history-panel{margin:28px 0;padding:24px;border-top:3px solid #955d37}.stock-history-panel h3{margin-top:26px}.stock-history-panel svg{display:block;width:100%;height:auto;min-width:360px}.stock-history-panel .stock-chart{overflow-x:auto}.stock-history-panel .stock-chart text{font:12px -apple-system,sans-serif;fill:#534e48}.stock-history-panel details{margin:20px 0}.stock-history-panel #stock-history-message{color:#8b392b}.stock-history-panel .stats{margin:20px 0}.stock-history-panel small{display:block}

.ticket-heading p{margin:5px 0;line-height:1.4;overflow-wrap:anywhere}.ticket-heading h2{overflow-wrap:anywhere}@media print{body[data-print-format="58"] .ticket-heading h2{font-size:14px;letter-spacing:.5px}body[data-print-format="58"] .ticket-heading p{font-size:10px;letter-spacing:0}body[data-print-format="80"] .ticket-heading p{font-size:11px;letter-spacing:0}}

.photo-focus{display:block;width:100%;height:100%;background:white}.photo-focus.thumb{width:46px;height:58px}.photo-preview .photo-focus{width:160px;height:190px}.visual .photo-focus,.photo .photo-focus{width:100%;height:100%;padding:5px;box-sizing:border-box}

#strategy-notes{font:inherit;padding:12px;border:1px solid #ccd5c8;border-radius:10px;line-height:1.5} [data-stock-tab]{border-radius:8px;padding:10px 14px} #dashboard-actions section{padding:12px;border-bottom:1px solid #dfe5da}

.article-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.article-gallery img{width:100%;height:180px;object-fit:contain;background:white}.article-gallery figure{margin:0;padding:8px;border:1px solid #dce4d5;border-radius:10px}.article-gallery figcaption{font-size:11px;overflow-wrap:anywhere}.article-gallery button{padding:9px;margin-top:8px;font-size:12px}

/* Caisse tactile DERFFY */
aside{overflow-y:auto}#pos .pos-welcome{background:linear-gradient(120deg,#153e35,#32624e);color:#fff;border-radius:20px;padding:24px 28px;margin-bottom:18px;display:flex;justify-content:space-between;gap:20px;align-items:center}#pos .pos-welcome .eyebrow{color:#e4c996}#pos .pos-welcome h2{font-size:25px;letter-spacing:-.5px;margin:8px 0}#pos .pos-welcome p{font-size:13px;color:#d6e4d8;margin:0;line-height:1.6}.pos-badge{color:#ecd1a1;text-align:center;font-weight:750;letter-spacing:3px;font-size:20px;min-width:130px}.pos-badge small{font-size:8px;letter-spacing:1.5px}.register-strip{padding:14px 18px;border:1px solid #ddd9c9;border-radius:12px;background:#fffaf0;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:22px;font-size:13px}.register-strip button{min-height:44px}#pos .pos-layout{grid-template-columns:minmax(0,1fr) 335px;gap:24px}#pos .toolbar{padding:12px;background:#fff;border:1px solid #e1e8dc;border-radius:14px}#pos-search{border:0;background:#f2f5ef;font-size:15px;min-height:49px}#pos .product-grid{grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:16px}#pos .product-card{border-radius:17px;box-shadow:0 3px 12px #173d3507;transition:transform .15s,box-shadow .15s}#pos .product-card:hover{transform:translateY(-3px);box-shadow:0 8px 22px #173d3517}#pos .photo{height:190px;background:linear-gradient(#fff,#f5f7f1);position:relative}#pos .photo img{padding:12px;mix-blend-mode:multiply}#pos .product-body{padding:14px;gap:8px}#pos .product-name{font-size:13px;min-height:38px}#pos .product-price{font-size:20px;letter-spacing:-.3px;color:#204f3d}#pos .product-ref{font-size:10px}#pos .product-card button{min-height:44px;border-radius:10px;background:#204f3d;color:white;font-weight:650;font-size:12px}#pos .product-card button:disabled{background:#edf1e8;color:#71806c}#pos .basket{border-radius:20px;box-shadow:0 10px 30px #153e3510;border-color:#d7e1d0;padding:22px}#pos .basket h2{font-size:20px}#pos .basket-total{background:#f0f5e9;margin:18px -8px 4px;padding:18px 12px;border-radius:12px;border:0}#pos .basket-total strong{font-size:29px;color:#194633}#review-sale{min-height:54px;border-radius:12px;font-weight:700;font-size:15px}#pos .qty button{min-width:38px;min-height:38px;border-radius:10px;font-size:18px}#pos .cart-line strong{font-size:13px}#pos .change{font-size:14px;background:#f8faf6;border-radius:8px;padding:10px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}@media(max-width:1150px){#pos .pos-layout{grid-template-columns:minmax(0,1fr) 290px;gap:15px}#pos .product-grid{grid-template-columns:repeat(auto-fill,minmax(135px,1fr))}}@media(max-width:850px){#pos .pos-layout{grid-template-columns:1fr}#pos .basket{position:static;max-height:none}#pos .product-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.pos-badge{display:none}}@media(max-width:500px){#pos .pos-welcome{padding:20px}#pos .pos-welcome h2{font-size:21px}#pos .photo{height:170px}#pos .product-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.register-strip{align-items:flex-start;flex-direction:column}.session-tools{flex-wrap:wrap;justify-content:flex-end;gap:6px}header{flex-wrap:wrap;gap:12px}}
/* Recherche de pertes : résultats visibles et accessibles au clavier. */
.loss-search-results{display:grid;gap:6px;max-height:210px;overflow:auto;margin:8px 0 15px}.loss-search-result{display:block;width:100%;text-align:left;padding:12px 14px;min-height:48px;background:#f5f7f0;border:1px solid #d5dfce;color:#263c2b}.loss-search-result strong,.loss-search-result small{display:block}.loss-search-result small{font-size:12px;color:#6b7a61;margin-top:5px}.loss-search-result:hover,.loss-search-result.selected{background:#e4efdf;border-color:#23543f}.loss-search-result:disabled{opacity:.65;cursor:not-allowed}.loss-search-result:focus-visible{outline:3px solid #d6b475;outline-offset:-3px}#loss-form textarea,#loss-decision-form textarea{display:block;width:100%;min-height:90px;margin-top:6px;padding:11px 12px;border:1px solid #d5decf;border-radius:8px;font:inherit;color:#273a2d;resize:vertical}
