:root{font-family:Inter,Segoe UI,Arial,sans-serif;color:#193b34;background:#f5f5ef;font-synthesis:none;--green:#123d35;--muted:#68776e;--line:#dce3d9;--gold:#dfb969}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer;border:0;border-radius:10px;min-height:46px;padding:12px 18px;font-weight:650;background:#e8eee5;color:var(--green)}button:hover{filter:brightness(.97)}button:focus-visible,a:focus-visible{outline:3px solid #bc8f34;outline-offset:3px}button:disabled{opacity:.5;cursor:wait}.primary{background:var(--green);color:white}.gold{background:var(--gold);color:#243e30}.ghost{background:transparent;border:1px solid var(--line)}.danger{color:#9d3029;background:#fcece7}.small{padding:7px 11px;min-height:40px;font-size:13px}input,select{border:1px solid #ced8cd;border-radius:10px;background:white;padding:13px;width:100%;min-height:48px}input[type=checkbox]{width:20px;min-height:20px;vertical-align:middle}label{display:block;font-size:14px;margin-bottom:10px}label input,label select{margin-top:7px}a{color:var(--green)}.shell{max-width:1440px;margin:auto;display:grid;grid-template-columns:230px 1fr;min-height:100vh}.sidebar{background:var(--green);color:#fff;padding:34px 24px;display:flex;flex-direction:column;gap:38px}.brand{font-size:22px;letter-spacing:1px;font-weight:850}.brand span{color:var(--gold);font-size:12px;display:block;letter-spacing:4px;margin-top:6px}.sidebar p{font-size:12px;line-height:1.7;color:#c2d4c9}.sidebar nav{display:grid;gap:10px}.sidebar button{color:#d5e5dc;text-align:left;background:transparent}.sidebar button.active{background:#31554b;color:white}.sidebar .bottom{margin-top:auto}main{padding:36px 44px 80px;min-width:0}.top{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:34px}.eyebrow{text-transform:uppercase;font-size:11px;letter-spacing:2px;font-weight:750;color:#6b7e6f}.pill{display:inline-flex;align-items:center;padding:7px 12px;border-radius:30px;font-size:12px;background:#e8eee4;color:#385b46;gap:6px}.pill.test{background:#fff0d2;color:#75551d}.pill::before{content:'';width:6px;height:6px;background:currentColor;border-radius:50%}h1{font-size:34px;font-weight:600;letter-spacing:-1px;margin:10px 0}h2{font-size:20px;font-weight:600;margin:0 0 12px}h3{font-size:15px;margin:0 0 8px}p{line-height:1.6;color:var(--muted)}.intro{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:28px}.intro p{margin:8px 0}.grid{display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:24px;align-items:start}.card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:24px}.mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:28px 0}.mode{padding:32px;text-align:left;background:white;border:1px solid #d5dfd2;min-height:225px}.mode strong{display:block;font-size:29px;font-weight:600;margin:24px 0 10px}.mode span{font-size:13px;color:#657867}.mode .symbol{font-size:25px}.mode:hover{border-color:#123d35;box-shadow:0 5px 25px #123d3510}.scan{background:#e9eee3;border:1px dashed #a8b99d;border-radius:13px;padding:30px;text-align:center;position:relative;margin-bottom:24px}.scan-icon{border:2px solid #6b8160;border-radius:15px;font-size:28px;width:60px;margin:0 auto 16px;padding:10px}.scan p{font-size:13px;max-width:350px;margin:10px auto 20px}.scan label{display:inline-block;cursor:pointer;background:var(--green);color:white;padding:14px 22px;border-radius:9px;font-weight:650}.file{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}.search{display:flex;gap:10px;margin:20px 0}.products{display:grid;grid-template-columns:1fr 1fr;gap:12px}.product{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:white;display:flex;align-items:center;gap:14px;padding:12px;text-align:left;font-weight:400;min-width:0}.product img{width:78px;height:88px;object-fit:cover;border-radius:7px}.product h3{line-height:1.4}.product small{display:block;color:#738174;margin-bottom:8px;font-size:11px}.price{font-size:17px;font-weight:700}.price small{display:inline;font-size:11px;margin-left:4px}.stock{font-size:11px;color:#5d7358}.stock.out{color:#a54232}.basket{position:sticky;top:24px}.basket-head{display:flex;justify-content:space-between;align-items:center;padding-bottom:15px;border-bottom:1px solid var(--line)}.empty{text-align:center;padding:30px 0;color:#81907f;font-size:14px}.basket-line{display:flex;gap:10px;border-bottom:1px solid #edf0ea;padding:16px 0}.basket-line img{width:45px;height:52px;border-radius:6px}.basket-line div{flex:1}.basket-line h3{font-size:13px}.basket-line small{font-size:11px;color:#6b7e6f}.basket-line button{align-self:start;padding:3px 8px;min-height:30px}.total{display:flex;justify-content:space-between;margin:22px 0;font-size:14px;align-items:center}.total strong{font-size:27px;font-weight:600}.full{width:100%}.hint{font-size:12px;color:#7d867a;line-height:1.6}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.row.between{justify-content:space-between}.login{max-width:440px;margin:7vh auto;padding:32px}.login .brand{margin:20px 0 40px}.login h1{font-size:28px}.login .hint{background:#fff3d9;padding:12px;border-radius:8px}.list{display:grid;gap:14px}.list .card{display:flex;justify-content:space-between;align-items:center;gap:16px}.list .card p{margin:5px 0;font-size:13px}.error{color:#a83a28;background:#fff1e9;padding:12px;border-radius:8px}.success{background:#e9f1e4;border-radius:15px;padding:30px;margin-bottom:24px}.success h2{font-size:27px}.preview{width:100%;max-height:230px;object-fit:contain;background:#f3f1eb;border-radius:12px;margin:12px 0}dialog{border:1px solid var(--line);border-radius:20px;max-width:520px;width:calc(100% - 30px);padding:28px;color:var(--green);max-height:90vh}dialog::backdrop{background:#132f2acf;backdrop-filter:blur(4px)}dialog .close{float:right;padding:5px 12px;min-height:36px}dialog p{font-size:14px}#notice{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#173e34;color:white;border-radius:10px;z-index:5;max-width:90%;padding:0;box-shadow:0 4px 20px #0002}#notice:not(:empty){padding:14px 24px}.mobile-logo{display:none}.divider{margin:24px 0;border-top:1px solid var(--line)}.offline{background:#a54b2a;color:#fff}.footnote{margin-top:30px;font-size:12px;color:#798673}.qty-grid{display:grid;grid-template-columns:1fr 110px;gap:12px}.checkline{display:flex;align-items:center;gap:10px}.checkline input{width:20px}.summary-line{border-bottom:1px solid var(--line);padding:12px 0;font-size:14px}.nav-icon{display:inline-block;width:24px;color:#d6bb83}.badge-number{font-size:11px;background:#31554b;color:white;border-radius:5px;padding:4px 7px}
@media(max-width:1120px){.shell{grid-template-columns:185px 1fr}.sidebar{padding:28px 18px}main{padding:28px 24px 70px}.grid{grid-template-columns:1fr 310px}.products{grid-template-columns:1fr}.product img{width:64px;height:70px}}@media(max-width:780px){.shell{display:block}.sidebar{position:fixed;bottom:0;left:0;right:0;z-index:4;padding:7px 10px;display:block}.sidebar>.brand,.sidebar>p,.sidebar>.bottom{display:none}.sidebar nav{display:flex;justify-content:space-around;gap:3px}.sidebar nav button{font-size:11px;padding:8px;min-height:46px;text-align:center}.nav-icon{width:auto;margin-right:6px}.mobile-logo{display:block;font-size:17px;font-weight:850;letter-spacing:1px}.mobile-logo span{color:#9a7536}main{padding:20px 18px 100px}.top{margin-bottom:27px}.top .eyebrow{display:none}h1{font-size:29px}.intro{align-items:start}.intro button{font-size:12px;padding:10px}.grid{display:flex;flex-direction:column}.grid>section,.basket{width:100%}.basket{position:static}.mode-grid{gap:12px}.mode{padding:22px 18px;min-height:205px}.mode strong{font-size:24px}.mode span{font-size:12px}.card{padding:20px}.products{grid-template-columns:1fr 1fr;gap:8px}.product{display:block;padding:8px}.product img{width:100%;height:110px}.product h3{font-size:13px;margin-top:10px}.scan{padding:24px 18px}.list .card{align-items:start;flex-wrap:wrap}.login{margin:4vh auto}.top .row{gap:5px}.pill{font-size:10px;padding:6px 8px}}

.capture-label{display:block;text-align:center;cursor:pointer;padding:14px;border-radius:10px}#teach-preview[hidden]{display:none}@media(max-width:780px){.sidebar nav button{font-size:10px;padding:6px 3px}.sidebar nav .nav-icon{display:block;margin:0 0 3px}.sidebar nav{gap:0}.sidebar{padding:5px}}
.price-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0}.price-tariff{padding:18px 14px;background:#edf2e8;border-radius:12px;min-width:0}.price-tariff strong{display:block;font-size:25px;margin:12px 0;color:#123d35}.price-tariff p{font-size:12px;margin:6px 0;overflow-wrap:anywhere}@media(max-width:420px){.price-pair{grid-template-columns:1fr}.price-tariff strong{font-size:27px}.sidebar nav button{flex:1;min-width:0}}
.price-preview{max-height:135px}

/* Panier mobile placé entre la caméra et le catalogue, avec accès direct. */
.basket-jump{display:none}.basket{scroll-margin-top:14px}
@media(max-width:780px){
 .grid{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}
 .grid>section{display:contents}
 .grid>section>.scan{grid-row:1;margin-bottom:0}
 .grid>.basket{grid-row:2;position:static;min-width:0}
 .grid>section>.row{grid-row:3}
 .grid>section>.search{grid-row:4;margin:0}
 .grid>section>.products{grid-row:5;min-width:0}
 #basket-lines{max-height:170px;overflow-y:auto;overscroll-behavior:contain}
 .basket-jump{display:block;position:fixed;right:14px;bottom:91px;z-index:3;background:var(--green);color:white;border:1px solid white;box-shadow:0 3px 12px #123d3530;padding:10px 14px;font-size:13px;max-width:calc(100vw - 28px)}
 .sidebar nav{justify-content:flex-start;overflow-x:auto}.sidebar nav button{flex:0 0 auto;min-width:62px}
}

@media(max-width:780px){.sidebar nav{width:100%;max-width:100%;min-width:0}.sidebar nav button{min-width:0;flex-shrink:0}.sidebar{overflow:hidden}}
