@font-face{font-family:Atkinson Hyperlegible Next;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-next-latin-ext-400-normal-BalHKn7d.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-next-latin-ext-400-normal-qxMiU51n.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible Next;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-next-latin-400-normal-FfmJh7DR.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-next-latin-400-normal-DPp7N0cD.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Atkinson Hyperlegible Next;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/atkinson-hyperlegible-next-latin-ext-700-normal-CBw-mJf_.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-next-latin-ext-700-normal-292QVhS1.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible Next;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/atkinson-hyperlegible-next-latin-700-normal-Dpiyiu63.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-next-latin-700-normal-C2qZD_Q9.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-condensed-vietnamese-600-normal-A5AYRdjN.woff2) format("woff2"),url(/assets/barlow-condensed-vietnamese-600-normal-CNlPk46_.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-condensed-latin-ext-600-normal-18ESti3H.woff2) format("woff2"),url(/assets/barlow-condensed-latin-ext-600-normal-Clv9cIcR.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-condensed-latin-600-normal-DepVgxBB.woff2) format("woff2"),url(/assets/barlow-condensed-latin-600-normal-BFJEwTuo.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-condensed-vietnamese-700-normal-DYeBwlKR.woff2) format("woff2"),url(/assets/barlow-condensed-vietnamese-700-normal-DhIzd8Tb.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-condensed-latin-ext-700-normal-CwuXbfVR.woff2) format("woff2"),url(/assets/barlow-condensed-latin-ext-700-normal-BIHFfxf0.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-condensed-latin-700-normal-v1xN8_Wq.woff2) format("woff2"),url(/assets/barlow-condensed-latin-700-normal-Dmwat-ge.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:light;--inox-page: #e6eaec;--inox-surface: #fafbfb;--inox-sunken: #dce2e5;--line: #6e7b83;--line-soft: #c3ccd1;--ink: #192024;--ink-muted: #4b585f;--passe: #1d262b;--on-passe: #e8edef;--on-passe-muted: #a8b4ba;--bordeaux: #7b2d3b;--on-bordeaux: #ffffff;--bordeaux-wash: #f1e1e4;--alerte: #c2301c;--on-alerte: #ffffff;--alerte-wash: #fbe0d9;--ok: #17607a;--on-ok: #ffffff;--focus: #a36a00;--cat-viande: #c0392b;--cat-poisson: #1f5faf;--cat-legume: #2e7d3a;--cat-epicerie: #8a5a2b;--cat-boisson: #0e7480;--cat-autre: #6b7880;--scrim: rgb(11 15 17 / .55);--shadow-dialog: 0 16px 48px rgb(11 15 17 / .28);--shadow-toast: 0 6px 20px rgb(11 15 17 / .25);--radius-1: 3px;--radius-2: 6px;--radius-3: 10px;--border-control: 2px;--border-signal: 6px;--target: 48px;--target-icon: 44px;--hatch: repeating-linear-gradient(135deg, var(--alerte) 0 8px, var(--alerte-wash) 8px 16px);--font-display: "Barlow Condensed", "Arial Narrow", system-ui, sans-serif;--font-text: "Atkinson Hyperlegible Next", "Atkinson Hyperlegible", system-ui, sans-serif;--sidebar-width: 232px;--bottom-nav-height: 64px}@media(prefers-color-scheme:dark){:root{color-scheme:dark;--inox-page: #12171a;--inox-surface: #1b2226;--inox-sunken: #242d32;--line: #7f8d95;--line-soft: #33404a;--ink: #e8edef;--ink-muted: #a8b4ba;--passe: #0b0f11;--on-passe: #e8edef;--on-passe-muted: #93a0a7;--bordeaux: #e596a3;--on-bordeaux: #2a0b12;--bordeaux-wash: #3b2027;--alerte: #ff8d76;--on-alerte: #2b0904;--alerte-wash: #3e1c15;--ok: #7cc7de;--on-ok: #06232d;--focus: #ffc23d;--cat-viande: #ff8a7a;--cat-poisson: #7fb2ff;--cat-legume: #7fd08a;--cat-epicerie: #d9a76e;--cat-boisson: #5fcad4;--cat-autre: #a8b4ba;--scrim: rgb(0 0 0 / .65);--shadow-dialog: 0 16px 48px rgb(0 0 0 / .6);--shadow-toast: 0 6px 20px rgb(0 0 0 / .55)}}*,*:before,*:after{box-sizing:border-box}html,body{margin:0}body{font-family:var(--font-text);font-size:16px;line-height:1.5;background:var(--inox-page);color:var(--ink);-webkit-font-smoothing:antialiased}a{color:var(--bordeaux)}h1,h2,h3{font-family:var(--font-display);line-height:1.15;margin:0 0 .5em;text-wrap:balance}h1{font-size:2.25rem;font-weight:700}h2{font-size:1.5rem;font-weight:600}.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.brand-title{font-family:var(--font-display);font-weight:700;letter-spacing:.01em;color:var(--bordeaux)}:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:2px solid var(--focus);outline-offset:2px}.input:focus-visible{outline-offset:0}.field{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.field label{font-size:.875rem;font-weight:700;color:var(--ink)}.input{width:100%;min-height:var(--target);font:inherit;padding:10px 12px;border:var(--border-control) solid var(--line);border-radius:var(--radius-2);background:var(--inox-surface);color:var(--ink)}.input::placeholder{color:var(--ink-muted)}.field-invalid .input{border-color:var(--alerte)}.field-error{margin:0;font-size:.8125rem;font-weight:700;color:var(--alerte)}.field-hint{margin:0;font-size:.8125rem;color:var(--ink-muted)}.input-code{font-family:var(--font-display);font-size:1.625rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase}.password-input{position:relative}.password-input .input{padding-right:56px}.password-input .icon-button{position:absolute;right:4px;top:50%;transform:translateY(-50%);border-color:transparent;background:transparent}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--target);padding:0 16px;font:inherit;font-weight:700;border:var(--border-control) solid transparent;border-radius:var(--radius-2);cursor:pointer;text-decoration:none}.btn:disabled{opacity:.55;cursor:default}.btn-primary{background:var(--bordeaux);color:var(--on-bordeaux)}.btn-danger{background:var(--alerte);color:var(--on-alerte)}.btn-text{background:transparent;color:var(--bordeaux);padding:0 12px}.btn-text:hover:not(:disabled){background:var(--inox-sunken)}.btn-text-danger{color:var(--alerte)}.btn-block{width:100%}.icon-button{display:inline-grid;place-items:center;flex-shrink:0;width:var(--target-icon);height:var(--target-icon);border:var(--border-control) solid var(--line);border-radius:var(--radius-2);background:var(--inox-surface);color:var(--ink);cursor:pointer}.icon-button:hover:not(:disabled){background:var(--inox-sunken)}.icon-button:disabled{cursor:default}.icon-button-danger{color:var(--alerte)}.spinner{width:20px;height:20px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .8s linear infinite}.spinner-lg{width:36px;height:36px;border-width:3px;color:var(--bordeaux)}.spinning{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner,.spinning{animation-duration:2.5s}}.auth-page{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px 16px}.auth-card{width:100%;max-width:420px;background:var(--inox-surface);border:var(--border-control) solid var(--line);border-radius:var(--radius-2);padding:32px 24px}.auth-brand{display:flex;flex-direction:column;align-items:center;gap:12px;margin-bottom:28px}.auth-brand .brand-title{font-size:2.75rem;line-height:1;margin:0}.auth-title{font-size:2rem;margin-bottom:24px}.auth-intro{text-align:center;color:var(--ink-muted);margin:0 0 24px}.auth-links{display:flex;flex-direction:column;align-items:center;gap:4px;margin-top:16px}.auth-links a,.auth-links button{padding:8px;font-weight:700}.center-page{min-height:60dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:24px 16px;text-align:center}.app-shell{min-height:100dvh}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar-width);display:flex;flex-direction:column;gap:24px;padding:20px 12px;background:var(--passe);color:var(--on-passe);border-right:1px solid var(--line-soft)}.sidebar-brand{display:flex;align-items:center;gap:12px;padding:0 8px;text-decoration:none}.sidebar-brand .brand-title{font-size:1.75rem;line-height:1;color:var(--on-passe)}.sidebar nav{display:flex;flex-direction:column;gap:4px;flex:1}.nav-link{display:flex;align-items:center;gap:12px;min-height:var(--target);padding:0 12px;border-radius:var(--radius-2);color:var(--on-passe-muted);text-decoration:none;font-weight:700}.nav-link:hover{color:var(--on-passe)}.nav-link.active{background:var(--bordeaux);color:var(--on-bordeaux)}.sidebar-profile{display:flex;align-items:center;gap:12px;min-height:var(--target);padding:6px 8px;border-radius:var(--radius-2);color:var(--on-passe);text-decoration:none;font-weight:700}.sidebar-profile:hover{background:#ffffff0f}.sidebar :focus-visible,.mobile-header :focus-visible,.bottom-nav :focus-visible{outline-color:var(--focus)}.app-main{margin-left:var(--sidebar-width);padding:32px}.app-main>*{max-width:1200px;margin-inline:auto}.mobile-header,.bottom-nav{display:none}@media(max-width:899px){.sidebar{display:none}.mobile-header{display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:10;padding:8px 16px;padding-top:max(8px,env(safe-area-inset-top));background:var(--passe);color:var(--on-passe)}.mobile-header .brand-title{font-size:1.5rem;line-height:1;color:var(--on-passe)}.app-main{margin-left:0;padding:16px 16px calc(var(--bottom-nav-height) + 16px)}.bottom-nav{display:flex;position:fixed;inset:auto 0 0;z-index:10;height:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom));background:var(--passe);padding-bottom:env(safe-area-inset-bottom)}.bottom-nav .nav-link{flex:1;flex-direction:column;justify-content:center;gap:2px;padding:6px 4px;border-radius:0;font-size:.8125rem}}.avatar{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:var(--radius-2);overflow:hidden;background:var(--bordeaux-wash);color:var(--bordeaux);font-family:var(--font-display);font-weight:700}.avatar img{width:100%;height:100%;object-fit:cover}body.modal-open{overflow:hidden}.modal{width:calc(100% - 32px);max-width:560px;max-height:calc(100dvh - 32px);padding:0;border:none;background:var(--inox-surface);color:var(--ink);border-radius:var(--radius-3);box-shadow:var(--shadow-dialog)}.modal::backdrop{background:var(--scrim)}.modal-content{padding:24px}.modal-title{font-size:1.5rem}.modal-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:24px}.modal-actions .btn-text{border-color:var(--line);color:var(--ink);background:var(--inox-surface)}.modal[role=alertdialog]{max-width:440px}@media(max-width:899px){.modal:not([role=alertdialog]){width:100%;height:100%;max-width:none;max-height:none;border-radius:0}.modal:not([role=alertdialog]) .modal-content{padding:max(16px,env(safe-area-inset-top)) 16px max(16px,env(safe-area-inset-bottom))}}.toast-region{position:fixed;left:50%;bottom:24px;transform:translate(-50%);z-index:60;width:min(480px,calc(100% - 32px))}@media(max-width:899px){.toast-region{bottom:calc(var(--bottom-nav-height) + 16px)}}.toast{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:var(--target);padding:6px 6px 6px 16px;border-radius:var(--radius-3);background:var(--passe);color:var(--on-passe);font-weight:700;box-shadow:var(--shadow-toast)}.toast-error{background:var(--alerte);color:var(--on-alerte)}.toast-close{color:inherit;border-color:transparent;background:transparent;font-size:1.25rem}.toast-close:hover:not(:disabled){background:#ffffff1f}.page-header{margin-bottom:24px}.page-header h1{font-size:2.25rem}.muted{color:var(--ink-muted)}.chip{display:inline-flex;align-items:center;gap:8px;font:inherit;font-size:.875rem;font-weight:700;color:var(--ink);background:none;border:none;padding:0;white-space:nowrap}.chip-swatch{width:12px;height:12px;flex-shrink:0;border-radius:var(--radius-1);background:var(--cat-color, var(--cat-autre))}.chip-viande{--cat-color: var(--cat-viande)}.chip-poisson{--cat-color: var(--cat-poisson)}.chip-legume{--cat-color: var(--cat-legume)}.chip-epicerie{--cat-color: var(--cat-epicerie)}.chip-boisson{--cat-color: var(--cat-boisson)}.chip-autre{--cat-color: var(--cat-autre)}.product-icon,.icon-choice-tile{font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;line-height:1}.product-icon{display:inline-grid;place-items:center;flex-shrink:0;width:40px;height:40px;border-radius:var(--radius-2);background:var(--inox-sunken);font-size:1.375rem}.product-icon-lg{width:56px;height:56px;font-size:2rem}.product-title{display:inline-flex;align-items:center;gap:12px;min-width:0}button.chip{cursor:pointer;min-height:36px;padding:0 10px;border:var(--border-control) solid var(--line);border-radius:var(--radius-1);background:var(--inox-surface)}button.chip.chip-selected{background:var(--bordeaux-wash);border-color:var(--bordeaux)}.badge{display:inline-block;padding:1px 8px;font-size:.875rem;font-weight:700;line-height:1.43;border-radius:var(--radius-1);white-space:nowrap}.badge-low{background:var(--alerte);color:var(--on-alerte)}.badge-ok{background:var(--ok);color:var(--on-ok)}.gauge{position:relative;height:10px;background:var(--inox-sunken)}.gauge:after{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(90deg,transparent 0 calc(10% - 3px),var(--gauge-gap, var(--inox-surface)) calc(10% - 3px) 10%)}.gauge-fill{height:100%;background:var(--ok)}.gauge.low .gauge-fill{background:var(--alerte)}.gauge-lg{height:16px}.gauge-mark{position:absolute;left:50%;top:-6px;bottom:-6px;z-index:1;width:3px;margin-left:-1px;background:var(--ink)}.load-error{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:12px 16px;margin-bottom:16px;border:var(--border-control) solid var(--alerte);border-radius:var(--radius-2);background:var(--alerte-wash);color:var(--ink);font-weight:700}.load-error p{margin:0;flex:1;min-width:12rem}.empty-state{padding:48px 16px;text-align:center;color:var(--ink-muted)}.breadcrumb ol{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-wrap:wrap;align-items:center;gap:2px;font-size:.9375rem;font-weight:700}.breadcrumb li{display:inline-flex;align-items:center;gap:2px;min-width:0}.breadcrumb a{display:inline-flex;align-items:center;min-height:40px;padding:0 6px;border-radius:var(--radius-1);color:var(--bordeaux);text-decoration:none}.breadcrumb a:hover{background:var(--inox-sunken);text-decoration:underline}.breadcrumb-sep{color:var(--ink-muted);flex-shrink:0}.breadcrumb [aria-current=page]{padding:0 6px;color:var(--ink-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:40ch}.breadcrumb-back{display:none}@media(max-width:599px){.breadcrumb li:not(.breadcrumb-parent){display:none}.breadcrumb-sep{display:none}.breadcrumb-back{display:inline;margin-left:-4px}}.stock-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.stock-header h1{margin-bottom:4px;overflow-wrap:anywhere}.stock-date{margin:0;color:var(--ink-muted)}.stock-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.add-button{width:var(--target);height:var(--target);padding:0}.alert-banner{display:flex;align-items:center;gap:12px;min-height:var(--target);padding:10px 16px;margin-bottom:16px;border:var(--border-control) solid var(--alerte);border-radius:var(--radius-2);background:var(--alerte-wash);color:var(--ink);font-weight:700;text-decoration:none}.alert-banner svg{color:var(--alerte);flex-shrink:0}.alert-banner:hover{text-decoration:underline}.filter-bar{display:flex;flex-direction:column;gap:10px;margin-bottom:20px}.filter-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.search-field{position:relative;flex:1 1 220px;max-width:360px}.search-field svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--ink-muted);pointer-events:none}.search-field .input{padding-left:42px}.result-count{margin-left:auto;white-space:nowrap;font-family:var(--font-display);font-size:1.125rem;font-weight:600;color:var(--ink-muted);font-variant-numeric:tabular-nums}.filter-menu{position:relative}.filter-menu-button{display:inline-flex;align-items:center;gap:8px;min-height:var(--target);padding:0 12px;font:inherit;font-size:.9375rem;font-weight:700;border:var(--border-control) solid var(--line);border-radius:var(--radius-2);background:var(--inox-surface);color:var(--ink);cursor:pointer}.filter-menu-button:hover{background:var(--inox-sunken)}.filter-menu-button.active{background:var(--bordeaux-wash);border-color:var(--bordeaux)}.filter-menu-count{min-width:22px;padding:0 6px;border-radius:var(--radius-1);background:var(--bordeaux);color:var(--on-bordeaux);font-size:.8125rem;font-weight:700;line-height:22px;text-align:center}.filter-menu-panel{position:absolute;top:calc(100% + 6px);left:0;z-index:20;display:flex;flex-direction:column;min-width:220px;max-width:calc(100vw - 32px);padding:6px;border:var(--border-control) solid var(--line);border-radius:var(--radius-2);background:var(--inox-surface);box-shadow:var(--shadow-toast)}.filter-option{display:flex;align-items:center;gap:10px;min-height:44px;padding:0 10px;border-radius:var(--radius-1);font-weight:700;cursor:pointer}.filter-option:hover{background:var(--inox-sunken)}.filter-option input{margin:0;width:18px;height:18px;accent-color:var(--bordeaux)}.filter-pills{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.filter-pill{display:inline-flex;align-items:center;gap:4px;min-height:36px;padding:0 8px 0 12px;font:inherit;font-size:.875rem;font-weight:700;border:none;border-radius:var(--radius-1);cursor:pointer;background:var(--bordeaux-wash);color:var(--ink)}.btn-link{min-height:36px;padding:0 8px;border:none;border-radius:var(--radius-1);background:none;font:inherit;font-size:.875rem;font-weight:700;color:var(--bordeaux);cursor:pointer}.btn-link:hover{text-decoration:underline}.product-table{width:100%;border-collapse:separate;border-spacing:0;background:var(--inox-surface);border:var(--border-control) solid var(--line);border-radius:var(--radius-2);overflow:hidden}.product-table th,.product-table td{padding:12px 14px;text-align:left;vertical-align:middle}.product-table thead th{font-size:.875rem;font-weight:700;color:var(--ink-muted);border-bottom:var(--border-control) solid var(--line)}.product-table .num{text-align:right;white-space:nowrap;font-family:var(--font-display);font-size:1.25rem;font-weight:600;font-variant-numeric:tabular-nums}.product-table thead .num{font-family:inherit;font-size:.875rem;font-weight:700}.product-row{cursor:pointer}.product-row td{border-bottom:1px solid var(--line-soft)}.product-row:last-child td{border-bottom:none}.product-row:hover{background:var(--inox-sunken)}.product-row.is-low td:first-child{background-image:var(--hatch);background-size:var(--border-signal) 100%;background-repeat:no-repeat}.stock-deficit{color:var(--alerte);font-weight:700}.product-link{font-family:var(--font-display);font-size:1.25rem;font-weight:700;line-height:1.2;color:var(--ink);text-decoration:none;overflow-wrap:anywhere}.product-link:hover{text-decoration:underline}.card-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.product-card{position:relative;overflow:hidden;display:flex;flex-direction:column;gap:10px;padding:14px 16px;padding-top:calc(14px + var(--border-signal));border:var(--border-control) solid var(--line);border-radius:var(--radius-2);background:var(--inox-surface);color:var(--ink);text-decoration:none}.product-card:hover{background:var(--inox-sunken);--gauge-gap: var(--inox-sunken)}.product-card.is-low{border-color:var(--alerte)}.product-card.is-low:before{content:"";position:absolute;inset:0 0 auto;height:var(--border-signal);background:var(--hatch)}.product-card-top{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.product-card-name{min-width:0;overflow-wrap:anywhere;font-family:var(--font-display);font-size:1.25rem;font-weight:700;line-height:1.1;letter-spacing:.02em;text-transform:uppercase}.product-card-qty{flex-shrink:0;white-space:nowrap;font-family:var(--font-display);font-size:1.375rem;font-weight:600;font-variant-numeric:tabular-nums}.product-card-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;font-size:.875rem}.product-cards{display:none}@media(max-width:899px){.product-table{display:none}.product-cards{display:flex}}.detail-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px}.detail-title{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;min-width:0}.detail-title h1{margin:0;overflow-wrap:anywhere;min-width:0}.detail-actions{display:flex;flex-wrap:wrap;gap:4px}.detail-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.detail-tile{position:relative;overflow:hidden;display:flex;flex-direction:column;gap:4px;padding:18px 20px;border:var(--border-control) solid var(--line);border-radius:var(--radius-2);background:var(--inox-surface);font-size:.875rem;color:var(--ink-muted)}.detail-tile-label{font-weight:700;color:var(--ink)}.detail-tile-value{font-family:var(--font-display);font-size:2.75rem;font-weight:600;line-height:1;font-variant-numeric:tabular-nums;color:var(--ink);overflow-wrap:anywhere}.detail-tile-alert{border-color:var(--alerte);padding-top:calc(18px + var(--border-signal))}.detail-tile-alert:before{content:"";position:absolute;inset:0 0 auto;height:var(--border-signal);background:var(--hatch)}.detail-tile-alert .detail-tile-value{color:var(--alerte)}.detail-section{margin-top:12px;padding:20px 22px;border:var(--border-control) solid var(--line);border-radius:var(--radius-2);background:var(--inox-surface)}.detail-section h2{margin:0 0 16px;font-size:1.375rem}.gauge-scale{display:flex;justify-content:space-between;gap:8px;margin-top:10px;font-family:var(--font-display);font-size:1.0625rem;font-weight:600;color:var(--ink-muted);font-variant-numeric:tabular-nums}.gauge-scale span:nth-child(2){color:var(--ink)}.detail-info dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 24px;margin:0}.detail-info dt{font-size:.875rem;font-weight:700;color:var(--ink-muted)}.detail-info dd{margin:2px 0 0;font-family:var(--font-display);font-size:1.25rem;font-weight:600}.detail-notes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:stretch}.detail-section-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}.detail-section-header h2{margin:0}.comment-text{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.comment-empty,.attachment-empty{margin:0}.comment-input{resize:vertical;min-height:120px;line-height:1.5;padding-block:10px}.comment-footer{display:flex;justify-content:space-between;gap:12px;margin-top:6px}.comment-counter{margin-left:auto;font-size:.8125rem;color:var(--ink-muted);font-variant-numeric:tabular-nums}.comment-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}.attachment-add{cursor:pointer}.attachment-add.disabled{opacity:.55;cursor:default}.attachment-input:focus-visible+.attachment-add{outline:2px solid var(--focus);outline-offset:2px}.attachment-state{display:flex;justify-content:center;padding:16px;color:var(--bordeaux)}.attachment-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.attachment-item{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line-soft)}.attachment-item:last-child{border-bottom:none}.attachment-icon{flex-shrink:0;color:var(--ink-muted)}.attachment-body{display:flex;flex-direction:column;min-width:0;flex:1}.attachment-name{font-weight:700;overflow-wrap:anywhere}.attachment-meta{font-size:.8125rem;font-variant-numeric:tabular-nums}.detail-attachments .field-hint{margin-top:12px}@media(max-width:899px){.detail-notes{grid-template-columns:1fr}}@media(max-width:599px){.detail-tiles{grid-template-columns:1fr}.detail-info dl{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-section{padding:16px}}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}@media(max-width:599px){.form-row{grid-template-columns:1fr}}select.input{cursor:pointer}select.input option{background:var(--inox-surface);color:var(--ink)}.input-suffix{position:relative}.input-suffix .input{padding-right:72px}.input-suffix-unit{position:absolute;right:14px;top:50%;transform:translateY(-50%);font-family:var(--font-display);font-size:1.125rem;font-weight:600;color:var(--ink-muted);pointer-events:none}.form-error{margin:0 0 8px;color:var(--alerte);font-size:.875rem;font-weight:700}.icon-picker{border:0;margin:0 0 16px;padding:0;min-width:0}.icon-picker legend{margin-bottom:8px;padding:0;font-size:.875rem;font-weight:700}.icon-choice-input{position:absolute;opacity:0;width:1px;height:1px;margin:0;pointer-events:none}.icon-choice{display:inline-flex;align-items:center;gap:10px;cursor:pointer}.icon-choice-auto{font-weight:700}.icon-picker-own{display:flex;flex-wrap:wrap;align-items:center;gap:10px 20px;margin-bottom:12px}.icon-choice-tile img,.product-icon img{width:100%;height:100%;object-fit:cover;border-radius:calc(var(--radius-2) - 2px)}.icon-file-input:focus-visible+.icon-file-button{outline:2px solid var(--focus);outline-offset:2px}.icon-file-button{cursor:pointer;border-color:var(--line);color:var(--ink);background:var(--inox-surface)}.icon-file-button.disabled{opacity:.55;cursor:default}.icon-picker-search{margin-bottom:4px}.icon-choice-tile{display:inline-grid;place-items:center;width:44px;height:44px;font-size:1.375rem;border:var(--border-control) solid var(--line-soft);border-radius:var(--radius-2);background:var(--inox-sunken)}.icon-choice:hover .icon-choice-tile{border-color:var(--line)}.icon-choice-input:checked+.icon-choice .icon-choice-tile{border-color:var(--bordeaux);background:var(--bordeaux-wash);box-shadow:inset 0 0 0 1px var(--bordeaux)}.icon-choice-input:focus-visible+.icon-choice .icon-choice-tile{outline:2px solid var(--focus);outline-offset:2px}.icon-picker-group{margin-top:10px}.icon-picker-group h3{margin:0 0 6px;font-family:var(--font-text);font-size:.8125rem;font-weight:700;color:var(--ink-muted)}.icon-picker-grid{display:flex;flex-wrap:wrap;gap:6px}.modal-actions .btn-block{width:auto}.alert-list{max-width:720px}.alert-item-deficit{font-size:.9375rem;font-weight:700;color:var(--alerte)}.badge-role-owner{background:var(--passe);color:var(--on-passe)}.badge-role-manager,.badge-role-employee{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 var(--border-control) var(--line)}.code{font-family:var(--font-display);letter-spacing:.12em;font-weight:700;font-size:1.125rem}.code-large{margin:0;font-size:2.25rem;letter-spacing:.18em}.invitation-code{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px;margin-block:8px;text-align:center;border:var(--border-control) dashed var(--line);border-radius:var(--radius-2)}.invitation-code .muted{margin:0}.team-page{max-width:720px}.header-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.team-restaurant{margin:0;color:var(--ink-muted)}.header-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.member,.invitation{display:flex;align-items:center;gap:12px;min-height:64px;padding:8px 12px;border:var(--border-control) solid var(--line);border-radius:var(--radius-2);background:var(--inox-surface)}.member-name{flex:1;min-width:0;font-weight:700;overflow-wrap:anywhere}.invitation-info{flex:1;min-width:0;display:flex;flex-direction:column;font-size:.875rem}.team-invitations{margin-top:32px}.invite-form .role-choice{border:0;margin:0 0 16px;padding:0;display:flex;flex-wrap:wrap;gap:8px 24px}.invite-form legend{margin-bottom:8px;font-size:.875rem;font-weight:700;color:var(--ink)}.role-option{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-weight:700;cursor:pointer}.role-option input{accent-color:var(--bordeaux);width:20px;height:20px}.join-form{width:100%;max-width:360px;text-align:left}.profile-page{max-width:640px;display:flex;flex-direction:column;gap:12px}.profile-page .page-header{margin-bottom:8px}.profile-card{padding:20px;border:var(--border-control) solid var(--line);border-radius:var(--radius-2);background:var(--inox-surface)}.profile-card h2{font-size:1.375rem;margin-bottom:12px}.profile-card p{margin:0 0 8px}.profile-identity{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.profile-avatar-actions,.profile-restaurant-actions{display:flex;flex-wrap:wrap;gap:4px}.first-name-form{display:flex;align-items:flex-start;gap:12px}.first-name-form .field{flex:1;min-width:0}.first-name-form .btn-block{width:auto;margin-top:28px}.profile-info{margin:0 0 8px}.profile-info dt{font-size:.875rem;font-weight:700;color:var(--ink-muted)}.profile-info dd{margin:2px 0 0;overflow-wrap:anywhere}.profile-sign-out{align-self:flex-start}@media(max-width:599px){.first-name-form{flex-direction:column;align-items:stretch;gap:0}.first-name-form .btn-block{width:100%;margin-top:0}}.admin-page{max-width:720px}.restaurant{display:flex;align-items:center;gap:12px;min-height:64px;padding:10px 14px;border:var(--border-control) solid var(--line);border-radius:var(--radius-2);background:var(--inox-surface)}.restaurant-info{flex:1;min-width:0;display:flex;flex-direction:column;font-size:.875rem}.restaurant-name{font-family:var(--font-display);font-size:1.375rem;font-weight:700;line-height:1.15;overflow-wrap:anywhere}.restaurant-members{white-space:nowrap;font-family:var(--font-display);font-size:1.125rem;font-weight:600;font-variant-numeric:tabular-nums}
