:root{--bg: #f7f3ec;--surface: #ffffff;--surface-alt: #fbf8f3;--text: #201a15;--muted: #6f6357;--accent: #8f3b2c;--accent-hover: #742f23;--accent-soft: #f9ece8;--border: #e4dacb;--border-strong: #d3c6b2;--danger: #b42318;--danger-soft: #fdf1f0;--warn: #b54708;--warn-soft: #fff6ed;--caution: #8a6100;--caution-soft: #fffaeb;--ok: #067647;--ok-soft: #edfaf3;--app-header-h: 44px;--app-subnav-h: 46px;--app-nav-h: 62px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--radius: 12px}*{box-sizing:border-box}html{height:100%;overflow:hidden}body{margin:0;height:100%;overflow:hidden;font-family:DM Sans,system-ui,-apple-system,sans-serif;color:var(--text);background:var(--bg);overscroll-behavior:none;-webkit-text-size-adjust:100%}h2,h3,h4{margin:0}.app-shell{max-width:900px;margin:0 auto;height:100dvh;display:flex;flex-direction:column;overflow:hidden;background:var(--bg)}.app-header{flex:0 0 auto;height:calc(var(--app-header-h) + var(--safe-top));padding:var(--safe-top) 16px 0;display:flex;align-items:center;background:var(--accent);color:#fff}.app-header-name{font-size:.95rem;font-weight:700;letter-spacing:.02em}.offline-notice{margin:0;padding:8px 16px;background:var(--danger-soft);border-bottom:1px solid var(--border);color:var(--danger);font-size:.82rem;text-align:center}.view-subnav{flex:0 0 auto;display:flex;gap:6px;padding:8px 12px;background:var(--surface);border-bottom:1px solid var(--border);overflow-x:auto;scrollbar-width:none}.view-subnav::-webkit-scrollbar{display:none}.view-subtab{flex:0 0 auto;border:1px solid var(--border);background:var(--surface-alt);border-radius:999px;padding:8px 14px;font:inherit;font-size:.86rem;font-weight:600;color:var(--muted);cursor:pointer;white-space:nowrap;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.view-subtab.is-active{background:var(--accent);border-color:var(--accent);color:#fff}.app-content{flex:1 1 auto;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:14px 14px calc(20px + var(--app-nav-h) + var(--safe-bottom));display:flex;flex-direction:column;gap:16px}.app-nav{position:fixed;bottom:0;left:0;right:0;z-index:20;max-width:900px;margin:0 auto;height:calc(var(--app-nav-h) + var(--safe-bottom));padding-bottom:var(--safe-bottom);display:grid;grid-template-columns:repeat(5,1fr);background:var(--surface);border-top:1px solid var(--border)}.nav-tab{position:relative;border:0;background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:6px 2px;font:inherit;color:var(--muted);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.nav-tab.is-active{color:var(--accent)}.nav-tab-icon{width:22px;height:22px;stroke-linecap:round;stroke-linejoin:round}.nav-tab-label{font-size:.66rem;font-weight:600;letter-spacing:.01em}.nav-tab-action{color:#fff}.nav-tab-action .nav-tab-icon{width:40px;height:40px;padding:9px;border-radius:50%;background:var(--accent);box-shadow:0 4px 12px #8f3b2c52}.nav-tab-action .nav-tab-label{color:var(--accent)}.nav-tab-badge{position:absolute;top:4px;right:calc(50% - 20px);min-width:17px;padding:1px 4px;border-radius:999px;background:var(--danger);color:#fff;font-size:.64rem;font-weight:700;line-height:15px;text-align:center}.view-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.view-header h2{font-size:1.3rem;line-height:1.2}.view-subtitle{margin:4px 0 0;font-size:.82rem;color:var(--muted)}.section{display:flex;flex-direction:column;gap:10px}.section--highlight{padding:12px;margin:-12px;border-radius:var(--radius);background:var(--accent-soft)}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.section-head h3{font-size:.78rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}.section-head-count{font-size:.8rem;font-weight:700;color:var(--muted)}.section-note{margin:0;padding:9px 12px;border-radius:10px;background:var(--surface-alt);border:1px solid var(--border);font-size:.82rem;color:var(--muted)}.section-note--danger{background:var(--danger-soft);border-color:#f3c8c4;color:var(--danger)}.section-note--warn{background:var(--caution-soft);border-color:#f0dfae;color:var(--caution)}.section-note--ok{background:var(--ok-soft);border-color:#b9e6cd;color:var(--ok)}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.stat-tile{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:12px 8px;display:flex;flex-direction:column;align-items:center;gap:2px;font:inherit;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.stat-tile-value{font-size:1.5rem;font-weight:700;line-height:1.1;color:var(--muted)}.stat-tile-label{font-size:.68rem;font-weight:600;color:var(--muted);text-align:center;line-height:1.25}.stat-tile--perime.is-active{background:var(--danger-soft);border-color:#f0bcb7}.stat-tile--perime.is-active .stat-tile-value,.stat-tile--perime.is-active .stat-tile-label{color:var(--danger)}.stat-tile--bientot.is-active,.stat-tile--temperature.is-active{background:var(--caution-soft);border-color:#ecd9a3}.stat-tile--bientot.is-active .stat-tile-value,.stat-tile--bientot.is-active .stat-tile-label,.stat-tile--temperature.is-active .stat-tile-value,.stat-tile--temperature.is-active .stat-tile-label{color:var(--caution)}.stat-tile--nettoyage.is-active,.stat-tile--nc.is-active,.stat-tile--stock.is-active{background:var(--warn-soft);border-color:#f3d0ae}.stat-tile--nettoyage.is-active .stat-tile-value,.stat-tile--nettoyage.is-active .stat-tile-label,.stat-tile--nc.is-active .stat-tile-value,.stat-tile--nc.is-active .stat-tile-label,.stat-tile--stock.is-active .stat-tile-value,.stat-tile--stock.is-active .stat-tile-label{color:var(--warn)}.badge{display:inline-block;padding:3px 8px;border-radius:999px;font-size:.7rem;font-weight:700;white-space:nowrap;background:var(--surface-alt);color:var(--muted);border:1px solid var(--border)}.badge-perime{background:var(--danger);border-color:var(--danger);color:#fff}.badge-aujourdhui{background:var(--warn);border-color:var(--warn);color:#fff}.badge-bientot{background:var(--caution-soft);border-color:#e5cd91;color:var(--caution)}.badge-ddm_depassee{background:var(--warn-soft);border-color:#f0cba6;color:var(--warn)}.badge-ok{background:var(--ok-soft);border-color:#b3e3c8;color:var(--ok)}.lot-list,.produit-list,.releve-list,.tache-list,.nc-list,.seuil-list,.emplacement-list,.procede-list,.mouvement-list{display:flex;flex-direction:column;gap:8px}.lot-card{display:flex;align-items:stretch;gap:8px;padding:11px 12px;border:1px solid var(--border);border-left:4px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.lot-card--perime{border-left-color:var(--danger);background:var(--danger-soft)}.lot-card--aujourdhui{border-left-color:var(--warn);background:var(--warn-soft)}.lot-card--bientot{border-left-color:var(--caution)}.lot-card--ddm_depassee{border-left-color:var(--warn)}.lot-card--ok{border-left-color:var(--ok)}.lot-card-body{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:3px}.lot-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.lot-card-name{font-size:.98rem;line-height:1.25}.lot-card-meta{margin:0;font-size:.82rem;color:var(--text)}.lot-card-dates{margin:0;font-size:.78rem;color:var(--muted)}.lot-card-categorie{margin:0;font-size:.68rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}.lot-card-open{flex:0 0 auto;align-self:center;width:28px;height:28px;padding:0;border:0;background:transparent;color:var(--muted);cursor:pointer}.lot-card-open svg{width:18px;height:18px;stroke-linecap:round;stroke-linejoin:round}.lot-detail-status{padding:12px 14px;border-radius:var(--radius);background:var(--surface-alt);display:flex;flex-direction:column;gap:2px}.lot-detail-status strong{font-size:1rem}.lot-detail-status span{font-size:.85rem;color:var(--muted)}.lot-detail-status--perime{background:var(--danger-soft);color:var(--danger)}.lot-detail-status--perime span{color:var(--danger)}.lot-detail-status--aujourdhui,.lot-detail-status--ddm_depassee{background:var(--warn-soft);color:var(--warn)}.lot-detail-status--aujourdhui span,.lot-detail-status--ddm_depassee span{color:var(--warn)}.lot-detail-status--bientot{background:var(--caution-soft);color:var(--caution)}.lot-detail-status--bientot span{color:var(--caution)}.lot-detail-status--ok{background:var(--ok-soft);color:var(--ok)}.lot-detail-status--ok span{color:var(--ok)}.toolbar{display:flex;flex-direction:column;gap:10px}.search-field{position:relative;display:flex;align-items:center}.search-field svg{position:absolute;left:12px;width:17px;height:17px;color:var(--muted);stroke-linecap:round;pointer-events:none}.search-field input{width:100%;padding:11px 14px 11px 36px;border:1px solid var(--border);border-radius:10px;background:var(--surface);font:inherit;font-size:16px}.chip-row{display:flex;gap:7px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}.chip-row::-webkit-scrollbar{display:none}.chip{flex:0 0 auto;display:inline-flex;align-items:center;gap:5px;border:1px solid var(--border);background:var(--surface);border-radius:999px;padding:8px 13px;font:inherit;font-size:.82rem;font-weight:600;color:var(--text);cursor:pointer;white-space:nowrap;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.chip.is-active{background:var(--accent);border-color:var(--accent);color:#fff}.chip-count{padding:1px 6px;border-radius:999px;background:#00000012;font-size:.72rem;font-weight:700}.chip.is-active .chip-count{background:#ffffff38}.stock-group{display:flex;flex-direction:column;gap:8px}.stock-group+.stock-group{margin-top:14px}.stock-group-title{font-size:.74rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}.produit-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 12px;border:1px solid var(--border);border-left:4px solid transparent;border-radius:var(--radius);background:var(--surface);cursor:pointer;text-align:left;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.produit-row--perime{border-left-color:var(--danger)}.produit-row--aujourdhui,.produit-row--ddm_depassee{border-left-color:var(--warn)}.produit-row--bientot{border-left-color:var(--caution)}.produit-row.is-inactive{opacity:.55}.produit-row-body{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px}.produit-row-name{font-size:.96rem;line-height:1.25}.produit-row-meta{font-size:.78rem;color:var(--muted)}.produit-row-side{flex:0 0 auto;display:flex;flex-direction:column;align-items:flex-end;gap:4px}.produit-row-stock{font-size:.88rem;font-weight:700}.produit-row-stock.is-low{color:var(--warn)}.produit-row-unite{font-size:.74rem;color:var(--muted)}.seuil-line{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.seuil-line-name{font-size:.9rem;font-weight:600}.seuil-line-qty{font-size:.82rem;font-weight:700;color:var(--warn);white-space:nowrap}.emplacement-card{padding:12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);cursor:pointer;display:flex;flex-direction:column;gap:4px;touch-action:manipulation}.emplacement-card.is-inactive{opacity:.55}.emplacement-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.emplacement-card-range{font-size:.8rem;font-weight:700;color:var(--accent);white-space:nowrap}.emplacement-card-meta,.emplacement-card-releve{margin:0;font-size:.78rem;color:var(--muted)}.emplacement-card-releve--none{color:var(--warn)}.releve-todo{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:10px;padding:12px;border:1px solid var(--border);border-left:4px solid var(--caution);border-radius:var(--radius);background:var(--surface);font:inherit;text-align:left;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.releve-todo-name{font-size:.94rem;font-weight:600}.releve-todo-range{font-size:.78rem;color:var(--muted);white-space:nowrap}.releve-todo-cta{padding:6px 12px;border-radius:999px;background:var(--accent);color:#fff;font-size:.78rem;font-weight:700;white-space:nowrap}.releve-line{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--border);border-left:4px solid var(--ok);border-radius:10px;background:var(--surface);font-size:.88rem}.releve-line small{color:var(--muted)}.releve-line--ko{border-left-color:var(--danger);background:var(--danger-soft)}.tache-line{display:flex;align-items:flex-start;gap:11px;padding:11px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface);cursor:pointer}.tache-line--retard{border-color:#f0cba6;background:var(--warn-soft)}.tache-line input[type=checkbox],.field-check input[type=checkbox],.allergene-option input[type=checkbox]{flex:0 0 auto;width:22px;height:22px;margin:0;accent-color:var(--accent)}.tache-line-body{display:flex;flex-direction:column;gap:2px}.tache-line-name{font-size:.9rem;font-weight:600;line-height:1.3}.tache-line-meta,.tache-row-meta{font-size:.76rem;color:var(--muted)}.tache-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--border);border-left:4px solid transparent;border-radius:10px;background:var(--surface)}.tache-row--due{border-left-color:var(--caution)}.tache-row--retard{border-left-color:var(--warn);background:var(--warn-soft)}.tache-row.is-inactive{opacity:.55}.tache-row-body{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px;border:0;background:transparent;padding:0;font:inherit;text-align:left;cursor:pointer}.tache-row-name{font-size:.9rem;font-weight:600;line-height:1.3}.nc-card{display:flex;flex-direction:column;gap:4px;padding:11px 12px;border:1px solid var(--border);border-left:4px solid var(--caution);border-radius:var(--radius);background:var(--surface);font:inherit;text-align:left;cursor:pointer;touch-action:manipulation}.nc-card--majeure{border-left-color:var(--warn)}.nc-card--critique{border-left-color:var(--danger);background:var(--danger-soft)}.nc-card--traitee{border-left-color:var(--ok);background:var(--surface);opacity:.72}.nc-card-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.nc-card-source{font-size:.7rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}.nc-card-date{font-size:.76rem;color:var(--muted)}.nc-card-desc{font-size:.9rem;line-height:1.35}.nc-card-foot{font-size:.76rem;color:var(--muted)}.nc-detail-desc{margin:0;padding:12px 14px;border-radius:var(--radius);background:var(--surface-alt);font-size:.94rem;line-height:1.4}.mouvement-line{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border:1px solid var(--border);border-left:4px solid var(--border-strong);border-radius:10px;background:var(--surface)}.mouvement-line--reception{border-left-color:var(--ok)}.mouvement-line--jete,.mouvement-line--perte{border-left-color:var(--danger)}.mouvement-line--ouverture{border-left-color:var(--caution)}.mouvement-line-body{display:flex;flex-direction:column;gap:1px;min-width:0}.mouvement-line-name{font-size:.9rem;font-weight:600}.mouvement-line-meta{font-size:.78rem;color:var(--text)}.mouvement-line-foot{font-size:.72rem;color:var(--muted)}.mouvement-line-qty{font-size:.95rem;font-weight:700;color:var(--ok);white-space:nowrap}.mouvement-line-qty.is-negative{color:var(--danger)}.regle-cards{display:flex;flex-direction:column;gap:8px}.regle-card{padding:12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);display:flex;flex-direction:column;gap:4px}.regle-card strong{font-size:.92rem}.regle-card p{margin:0;font-size:.84rem;line-height:1.4;color:var(--text)}.regle-card small{font-size:.72rem;color:var(--muted)}.temp-table{display:flex;flex-direction:column;gap:6px}.temp-row{display:grid;grid-template-columns:1fr auto;gap:4px 12px;padding:10px 12px;border:1px solid var(--border);border-left:4px solid var(--border-strong);border-radius:10px;background:var(--surface)}.temp-row--froid_positif{border-left-color:#1570ef}.temp-row--froid_negatif{border-left-color:#0086c9}.temp-row--chaud{border-left-color:var(--danger)}.temp-row--ambiant{border-left-color:var(--border-strong)}.temp-row-label{font-size:.88rem;font-weight:600;line-height:1.3}.temp-row-value{font-size:.88rem;white-space:nowrap;color:var(--accent)}.temp-row-source{grid-column:1 / -1;font-size:.72rem;color:var(--muted)}.procede-card{padding:11px 12px;border:1px solid var(--border);border-left:4px solid var(--ok);border-radius:var(--radius);background:var(--surface);display:flex;flex-direction:column;gap:3px}.procede-card--ko{border-left-color:var(--danger);background:var(--danger-soft)}.procede-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.procede-card-meta{margin:0;font-size:.84rem}.procede-card-foot{margin:0;font-size:.74rem;color:var(--muted)}.procede-card-notes{margin:4px 0 0;font-size:.8rem;color:var(--muted);font-style:italic}.allergene-liste{margin:0;padding-left:20px;display:grid;gap:4px;font-size:.86rem}.export-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.export-btn{font-size:.82rem;padding:12px 10px;text-align:center;line-height:1.25}.btn{border:0;border-radius:10px;padding:12px 16px;font:inherit;font-weight:600;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn svg{width:18px;height:18px;stroke-linecap:round;stroke-linejoin:round}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover)}.btn-ghost{background:var(--surface);color:var(--accent);border:1px solid var(--border-strong)}.btn-danger{background:var(--danger);color:#fff}.btn-sm{padding:9px 13px;font-size:.84rem}.btn-block{width:100%}.btn-span-2{grid-column:span 2}.btn:disabled{opacity:.6;cursor:default}.empty-state{margin:0;padding:22px 16px;border:1px dashed var(--border-strong);border-radius:var(--radius);background:var(--surface-alt);text-align:center;color:var(--muted);font-size:.88rem}.empty-state p{margin:0}.empty-state-hint{margin-top:6px!important;font-size:.8rem;opacity:.85}.form-error{margin:0;color:var(--danger);font-size:.85rem}.sheet-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#201a1573;display:flex;align-items:flex-end;justify-content:center}.sheet{width:100%;max-width:620px;max-height:92dvh;display:flex;flex-direction:column;background:var(--bg);border-radius:18px 18px 0 0;padding-bottom:var(--safe-bottom);animation:sheet-in .22s ease-out}@keyframes sheet-in{0%{transform:translateY(18px);opacity:.6}to{transform:translateY(0);opacity:1}}@media(prefers-reduced-motion:reduce){.sheet{animation:none}}.sheet-header{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 16px 8px}.sheet-header h3{font-size:1.08rem;line-height:1.25}.sheet-close{flex:0 0 auto;width:32px;height:32px;padding:6px;border:0;border-radius:50%;background:var(--surface);color:var(--muted);cursor:pointer}.sheet-close svg{width:100%;height:100%;stroke-linecap:round}.sheet-subtitle{margin:0;padding:0 16px 6px;font-size:.8rem;color:var(--muted)}.sheet-body{flex:1 1 auto;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:8px 16px 20px;display:flex;flex-direction:column;gap:12px}.sheet-form{display:flex;flex-direction:column;gap:12px}.sheet-actions{position:sticky;bottom:-20px;z-index:2;display:flex;flex-direction:column;gap:8px;margin-top:4px;padding:10px 0 20px;background:linear-gradient(to bottom,rgba(247,243,236,0) 0%,var(--bg) 22%)}.sheet-note{margin:0;padding:10px 12px;border-radius:10px;background:var(--surface-alt);border:1px solid var(--border);font-size:.82rem;line-height:1.4;color:var(--muted)}.sheet-preview{margin:0;font-size:.84rem;font-weight:600;color:var(--muted);min-height:1.2em}.sheet-preview--ok{color:var(--ok)}.sheet-preview--ko{color:var(--danger)}.sheet-action-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.sheet-section-title{font-size:.76rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin-top:6px}.field{display:grid;gap:5px;font-size:.86rem;font-weight:600}.field>span{color:var(--muted)}.field input,.field select,.field textarea{width:100%;padding:12px 13px;border:1px solid var(--border-strong);border-radius:10px;background:var(--surface);font:inherit;font-weight:400;font-size:16px;color:var(--text)}.field textarea{resize:vertical}.field-hint{font-size:.75rem;font-weight:400;color:var(--muted);line-height:1.35}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.field-check{display:flex;align-items:center;gap:10px;padding:11px 12px;border:1px solid var(--border-strong);border-radius:10px;background:var(--surface);font-size:.88rem;font-weight:600;cursor:pointer}.field-group{border:1px solid var(--border-strong);border-radius:10px;background:var(--surface);padding:0 12px}.field-group>summary{padding:12px 0;font-size:.88rem;font-weight:600;cursor:pointer;color:var(--accent)}.field-group[open]>summary{border-bottom:1px solid var(--border);margin-bottom:12px}.field-group>*:last-child{margin-bottom:12px}.field-group .field+.field,.field-group .field-conformite+.field-conformite,.field-group .field-conformite+.field,.field-group .field+.field-switch,.field-group .field-switch+.field{margin-top:10px}.field-conformite{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0;padding:0;border:0}.field-conformite legend{grid-column:1 / -1;padding:0 0 5px;font-size:.86rem;font-weight:600;color:var(--muted)}.conformite-option{display:flex;align-items:center;justify-content:center;gap:7px;padding:11px 8px;border:1px solid var(--border-strong);border-radius:10px;background:var(--surface);font-size:.86rem;font-weight:600;cursor:pointer}.conformite-option input{accent-color:currentColor;width:18px;height:18px;margin:0}.conformite-ok:has(input:checked){border-color:var(--ok);background:var(--ok-soft);color:var(--ok)}.conformite-ko:has(input:checked){border-color:var(--danger);background:var(--danger-soft);color:var(--danger)}.field-auteur input{font-weight:600}.field-photo{display:grid;gap:6px;font-size:.86rem;font-weight:600}.field-photo>span{color:var(--muted)}.photo-preview{width:100%;max-height:240px;object-fit:contain;border:1px solid var(--border);border-radius:10px;background:var(--surface-alt)}.allergene-grid{display:grid;gap:6px}.allergene-option{display:flex;align-items:center;gap:9px;padding:8px 0;font-size:.86rem;font-weight:400;cursor:pointer}.detail-list{margin:0;display:flex;flex-direction:column;gap:1px;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--border)}.detail-list>div{display:grid;grid-template-columns:40% 1fr;gap:12px;padding:10px 12px;background:var(--surface)}.detail-list dt{font-size:.8rem;color:var(--muted)}.detail-list dd{margin:0;font-size:.86rem;font-weight:600;overflow-wrap:anywhere}.toast{position:fixed;left:50%;transform:translate(-50%);bottom:calc(var(--app-nav-h) + var(--safe-bottom) + 14px);z-index:80;max-width:min(92vw,460px);padding:11px 16px;border-radius:999px;background:var(--text);color:#fff;font-size:.86rem;font-weight:600;text-align:center;box-shadow:0 6px 18px #201a1547}.toast-error{background:var(--danger)}body.has-sheet .toast{z-index:90}.field-label{color:var(--muted);font-size:.86rem;font-weight:600}.field-numpad{gap:8px}.numpad-tete{display:flex;align-items:stretch;gap:7px}.numpad-ecran{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;flex:1 1 auto;min-width:0;min-height:62px;padding:10px 14px;border:1px solid var(--border-strong);border-radius:12px;background:var(--surface);font:inherit;text-align:left;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.field-numpad.is-open .numpad-ecran{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.numpad-ecran [data-role=numpad-valeur]{font-size:1.7rem;font-weight:700;line-height:1.1;font-variant-numeric:tabular-nums}.numpad-invite{color:var(--muted);font-size:.78rem;font-weight:500}.field-numpad.is-filled .numpad-invite{display:none}.numpad-raccourcis{display:flex;flex-wrap:wrap;gap:6px}.numpad-raccourci{flex:1 1 auto;min-height:42px;padding:8px 12px;border:1px solid var(--border);border-radius:999px;background:var(--surface-alt);font:inherit;font-size:.86rem;font-weight:600;color:var(--text);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.numpad-grille{display:none;grid-template-columns:repeat(3,1fr);gap:7px;width:100%;max-width:300px;margin-inline:auto;justify-items:stretch}.field-numpad.is-open .numpad-grille{display:grid}.numpad-touche{min-height:56px;border:1px solid var(--border);border-radius:12px;background:var(--surface);font:inherit;font-size:1.35rem;font-weight:600;color:var(--text);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.numpad-touche:active{background:var(--accent-soft);border-color:var(--accent)}.numpad-touche svg{width:24px;height:24px}.numpad-signe{display:inline-flex;align-items:center;justify-content:center;background:var(--surface-alt)}.numpad-effacer{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:62px;border:1px solid var(--border);border-radius:12px;background:var(--surface-alt);color:var(--muted);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.numpad-effacer:active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.numpad-effacer svg{width:24px;height:24px}.numpad-vide{border-color:transparent;background:transparent}.field-chips{gap:8px}.chip-groupe{display:flex;flex-wrap:wrap;gap:7px}.chip-groupe-grille{display:grid;grid-template-columns:repeat(auto-fit,minmax(126px,1fr))}.chip-groupe-compact{grid-template-columns:repeat(auto-fit,minmax(84px,1fr))}.chip-groupe-compact .chip{align-items:center;padding:9px 10px;text-align:center}.chip-groupe .chip{flex-direction:column;align-items:flex-start;gap:1px;min-height:48px;padding:9px 15px;border-radius:12px;border-color:var(--border-strong);white-space:normal;text-align:left}.chip-groupe .chip small{font-size:.72rem;font-weight:500;color:var(--muted)}.chip-groupe .chip.is-active small{color:#ffffffd1}.picker-bouton{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:54px;padding:12px 14px;border:1px solid var(--border-strong);border-radius:12px;background:var(--surface);font:inherit;font-size:16px;color:var(--muted);text-align:left;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.picker-bouton.is-filled{color:var(--text);font-weight:600}.picker-bouton svg{flex:0 0 auto;width:20px;height:20px;color:var(--muted)}.picker-recherche{margin-bottom:10px}.picker-recherche input{width:100%;min-height:50px;padding:12px 14px;border:1px solid var(--border-strong);border-radius:12px;background:var(--surface);font:inherit;font-size:16px;color:var(--text)}.picker-liste{display:grid;gap:6px;max-height:56dvh;overflow-y:auto;-webkit-overflow-scrolling:touch}.picker-ligne{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;min-height:56px;padding:11px 14px;border:1px solid var(--border);border-radius:12px;background:var(--surface);font:inherit;text-align:left;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.picker-ligne.is-active{border-color:var(--accent);background:var(--accent-soft)}.picker-ligne-nom{font-size:1rem;font-weight:600}.picker-ligne small{color:var(--muted);font-size:.78rem}.field-date{gap:8px}.date-natif{min-height:50px}.field-chips-libre{gap:8px}.chips-libre-input{min-height:50px}.field-switch{display:flex;align-items:center;gap:12px;min-height:52px;padding:8px 0;cursor:pointer;-webkit-tap-highlight-color:transparent}.field-switch input{position:absolute;opacity:0;pointer-events:none}.switch-piste{flex:0 0 auto;position:relative;width:50px;height:30px;border-radius:999px;background:var(--border-strong);transition:background .15s ease}.switch-pastille{position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #201a154d;transition:transform .15s ease}.field-switch input:checked+.switch-piste{background:var(--ok)}.field-switch input:checked+.switch-piste .switch-pastille{transform:translate(20px)}.field-switch input:focus-visible+.switch-piste{outline:2px solid var(--accent);outline-offset:2px}.switch-texte{display:grid;gap:1px;font-size:.94rem;font-weight:600}.switch-texte small{color:var(--muted);font-size:.78rem;font-weight:500}@media(min-width:769px){.app-content{padding:20px 20px 32px}.app-nav{position:sticky}.stat-grid{grid-template-columns:repeat(6,1fr)}.export-grid{grid-template-columns:repeat(4,1fr)}.regle-cards{display:grid;grid-template-columns:repeat(2,1fr)}.sheet-overlay{align-items:center}.sheet{border-radius:18px;max-height:86dvh}.lot-list,.produit-list,.releve-list,.tache-list,.nc-list,.emplacement-list,.procede-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.picker-liste{grid-template-columns:repeat(2,minmax(0,1fr));max-height:60dvh}}@media(hover:hover)and (pointer:fine){.chip:hover,.numpad-touche:hover,.numpad-raccourci:hover,.picker-ligne:hover,.picker-bouton:hover{border-color:var(--border-strong);background:var(--surface-alt)}.chip.is-active:hover{background:var(--accent-hover);border-color:var(--accent-hover)}}
