/* GENERATED by packages/design-system/build.cjs. Do not edit. */
@layer theme, base, g-reset, g-native, components, g-tokens, g-components, g-layout, g-compositions, g-density, utilities, g-accessibility;
@layer g-tokens {
:root {
  --g-background: #fffcf5;
  --g-surface: #ffffff;
  --g-surface-soft: #f6f0e6;
  --g-surface-raised: #ebe2d3;
  --g-text: #2e1d12;
  --g-text-muted: #5b4a3c;
  --g-text-subtle: #74635a;
  --g-border: #e7ddcd;
  --g-border-control: #8f7e6e;
  --g-success: #1e6e43;
  --g-success-soft: #e2f1e7;
  --g-warning: #7a5200;
  --g-warning-soft: #fff0cf;
  --g-error: #b3261e;
  --g-error-soft: #fbe6e3;
  --g-info: #245a8c;
  --g-info-soft: #e4eef8;
  --g-on-action: #ffffff;
  --g-disabled: #eee9e3;
  --g-disabled-text: #675e56;
  --g-action: #17633f;
  --g-action-hover: #0f4f31;
  --g-action-soft: #e3f0e7;
  --g-action-ink: #0f4a2c;
  --g-action-line: #b5d6c1;
  --g-focus: #0f4f31;
  --g-font-sans: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --g-font-xs: 0.75rem;
  --g-font-sm: 0.875rem;
  --g-font-md: 1rem;
  --g-font-lg: 1.125rem;
  --g-font-h1: 1.75rem;
  --g-font-h2: 1.375rem;
  --g-font-hero: clamp(2rem, 8vw, 3rem);
  --g-weight-normal: 400;
  --g-weight-medium: 600;
  --g-weight-bold: 700;
  --g-weight-heading: 800;
  --g-line-body: 1.45;
  --g-line-heading: 1.15;
  --g-space-0: 0;
  --g-space-1: 4px;
  --g-space-2: 8px;
  --g-space-3: 12px;
  --g-space-4: 16px;
  --g-space-5: 20px;
  --g-space-6: 24px;
  --g-space-8: 32px;
  --g-radius-sm: 8px;
  --g-radius-field: 12px;
  --g-radius-button: 12px;
  --g-radius-card: 16px;
  --g-radius-sheet: 24px;
  --g-radius-pill: 999px;
  --g-shadow: none;
  --g-shadow-floating: 0 4px 24px rgb(66 40 28 / 12%);
  --g-control: 48px;
  --g-touch: 44px;
  --g-content-wide: 1200px;
  --g-content-reading: 680px;
  --g-content-form: 560px;
  --g-gutter: 16px;
  --g-gap: 12px;
  --g-card-padding: 16px;
  --g-tile-padding: 10px;
  --g-stack: 16px;
  --g-row-height: 52px;
  --g-vertical-space: 8px;
  --g-header-height: 64px;
  --g-nav-height: 66px;
  --g-z-nav: 30;
  --g-z-popover: 40;
  --g-z-modal: 100;
  --g-z-toast: 110;
  --g-motion-duration: 120ms;
  --g-motion-easing: ease-out;
  --g-scrim: rgb(46 29 18 / 45%);
  --g-seller-stat-height: 64px;
  --g-seller-stat-padding: 8px 10px;
  --g-seller-stat-font: 1.125rem;
}
[data-g-theme="omq"] {
  --g-seller-stat-height: 64px;
  --g-seller-stat-padding: 8px 10px;
  --g-seller-stat-font: 1.125rem;
  --g-action: #17633f;
  --g-action-hover: #0f4f31;
  --g-action-soft: #e3f0e7;
  --g-action-ink: #0f4a2c;
  --g-action-line: #b5d6c1;
  --g-focus: #0f4f31;
}
[data-g-theme="ovq"] {
  --g-action: #c2410c;
  --g-action-hover: #a1350a;
  --g-action-soft: #fce9dc;
  --g-action-ink: #8c2d07;
  --g-action-line: #f0c2a4;
  --g-focus: #a1350a;
}
:root, body {
  --sans: var(--g-font-sans);
  --titre: var(--g-font-sans);
  --paper: var(--g-background);
  --ink: var(--g-text);
  --ink-2: var(--g-text-muted);
  --line: var(--g-border);
  --line-2: var(--g-border-control);
  --green: var(--g-action);
  --green-deep: var(--g-action-hover);
  --green-soft: var(--g-action-soft);
  --red: var(--g-error);
  --oq-bg: var(--g-background);
  --oq-paper: var(--g-surface);
  --oq-ink: var(--g-text);
  --oq-muted: var(--g-text-muted);
  --oq-line: var(--g-border);
  --oq-line-strong: var(--g-border-control);
  --oq-green: var(--g-action);
  --oq-green-hover: var(--g-action-hover);
  --oq-on-green: var(--g-on-action);
  --oq-soft: var(--g-action-soft);
  --oq-gold: var(--g-warning-soft);
  --oq-gold-ink: var(--g-warning);
  --oq-red: var(--g-error);
  --oq-red-bg: var(--g-error-soft);
  --oq-surface-soft: var(--g-surface-soft);
  --oq-card-radius: var(--g-radius-card);
  --oq-radius: var(--g-radius-card);
  --oq-button-radius: var(--g-radius-button);
  --oq-input-radius: var(--g-radius-field);
  --oq-image-radius: var(--g-radius-field);
  --oq-shadow: var(--g-shadow);
  --oc-bg: var(--g-background);
  --oc-ink: var(--g-text);
  --oc-muted: var(--g-text-muted);
  --oc-line: var(--g-border);
  --oc-green: var(--g-action);
  --oc-soft: var(--g-action-soft);
  --omq-radius: var(--g-radius-card);
  --omq-button-radius: var(--g-radius-button);
  --omq-input-radius: var(--g-radius-field);
  --omq-image-radius: var(--g-radius-field);
  --omq-shadow: var(--g-shadow);
  --seller-width: var(--g-content-wide);
}
body, h1, h2, h3 { font-family: var(--g-font-sans); }
}
/* OMQ compositions on native DOM. Palette, typography, controls, cards and
 * density belong exclusively to canonical tokens/primitives. Only necessary
 * sheet, camera, cropping and visibility geometry is retained below. */
@layer g-native {
 :where(.omq-icon) { display:inline-block; width:20px; height:20px; flex:none; vertical-align:middle; }
 :where(.omq-entry svg) { width:20px; height:20px; flex:none; }

:where(body.omqSeller .sellerAvailabilitySwitch .dispoDot){position:absolute;top:3px;left:3px;width:16px;height:16px}

:where(.agentScreen [hidden]){display:none!important}

:where(.agentScreen #notice:empty){display:none}

:where(.agentScreen .agentNavigation){position:fixed;bottom:0;left:0;right:0;z-index:var(--g-z-nav);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--g-space-1);padding:var(--g-space-2)}

@media (min-width:1024px){
:where(.agentScreen .agentNavigation){position:sticky;bottom:auto;max-width:var(--g-content-form);margin:var(--g-space-6) auto}}

:where(.agentSpaceSwitch nav){position:absolute;z-index:var(--g-z-nav);right:0;min-width:210px;padding:var(--g-space-2)}

:where(.agentScreen :is(.agentFormSection,.dish,.agentDishExtras,.agentSecondary)>summary::-webkit-details-marker){display:none}

:where(.omqClient [hidden]){display:none!important}

:where(.omqClient .oc-item-photo>span){display:none}

:where(.omqClient .oc-meal-view.pcPlat::after){display:none}

:where(.omqClient.clientMenu .heroBande,.omqClient.clientMenu .pcSelectionBadge){display:none}

:where(.omqClient.pcFeuilleOuverte #bar){visibility:hidden}

:where(.omqClient .oc-screen>.oc-footer){position:sticky;bottom:0;flex-shrink:0;z-index:2;margin-top:auto}

:where(.omqClient .oc-screen>.oc-footer:empty){display:none}

:where(.omqClient.clientOrder #state.oc-sr){position:absolute;height:1px;width:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;margin:0;padding:0}

:where(.omqClient.clientOrder #order-progress li::after){display:none}

:where(.omqClient .oc-selection){position:fixed;inset:0;margin:auto;width:min(100%,412px);height:100dvh;max-height:100dvh;max-width:100%;padding:0;overflow:auto}

:where(.omqClient.claimFeuilleOuverte #bar){visibility:hidden}

:where(.omqClient .oc-main>.oc-row:first-child:empty){display:none}

:where(.omqClient .oc-timeline li:before){content:"";position:absolute;left:12px;top:26px;bottom:0;width:1px}

:where(.omqClient .oc-timeline li:last-child:before){display:none}

:where(.omqClient .oc-sr){position:absolute;width:1px;height:1px;padding:0;margin:-var(--g-space-1);overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}

:where(.omqClient .omq-training-panel[hidden]){display:none}

:where(.order-page #privacy:empty, .order-page #summary:empty){display:none}

:where(.order-page #items:empty){display:none}

:where(.order-page .actions:empty){display:none}

:where([hidden]){display:none!important}

@media print{
:where(.omqDisplayChoice){display:none}}

:where(.srOnly){position:absolute;width:1px;height:1px;padding:0;margin:-var(--g-space-1);overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}

:where(.editorialTrack::-webkit-scrollbar){display:none}

:where(body[data-first-dish] main>p,
body[data-first-dish] #notice,
body[data-first-dish] #new-menu,
body[data-first-dish] #editor,
body[data-first-dish] #success,
body[data-first-dish] #owner-confirmation){display:none!important}

:where(body[data-first-dish] header.fd-header){align-items:center;padding-top:var(--g-space-2);padding-bottom:var(--g-space-2)}

:where(body[data-first-dish] header.fd-header a){display:inline-flex;align-items:center;white-space:nowrap}

:where(body[data-first-dish] header.fd-header a+a){padding:0 var(--g-space-3)}

:where(body[data-first-dish] main,body[data-first-dish] header.fd-header,body[data-first-dish] .omqLegalFooter){width:100%;max-width:var(--g-content-form);margin-inline:auto;padding-inline:var(--g-space-5)}

:where(body[data-first-dish] main){padding-top:var(--g-space-2)}

:where(body[data-first-dish] #first-dish){max-width:var(--g-content-form);margin-inline:auto}

:where(body[data-first-dish] main h1){margin:var(--g-space-2) 0 0}

:where(.fd-live:empty){display:none}

:where(.fd-photos:empty){display:none}

:where(.fd-badge){position:absolute;top:10px;left:10px;padding:var(--g-space-1) var(--g-space-2)}

@keyframes fd-spin{
to{transform:rotate(360deg)}}

@media (max-width:360px){
:where(body[data-first-dish] main,body[data-first-dish] header){padding-left:var(--g-space-3);padding-right:var(--g-space-3)}}

:where(.omqInterface [hidden]){display:none!important}

:where(.omqInterface #blocPlats>h2,.omqInterface #blocPlats>.legende){position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;margin:0;padding:0}

:where(.omqInterface .pcImageCadree img){object-fit:cover}

:where(.omqInterface .feuilleCorps > *){flex-shrink:0}

:where(.omqInterface .agentNavigation){position:fixed;bottom:0;display:flex;justify-content:space-around;gap:var(--g-space-1);padding:var(--g-space-3);z-index:var(--g-z-nav);left:0;right:0;margin:0;padding-bottom:calc(var(--g-space-2) + env(safe-area-inset-bottom))}

:where(.omqInterface .ligne[id^=plat-]>.msg:empty){display:none}

:where(.omqInterface .sellerAddChoices>summary::-webkit-details-marker){display:none}

:where(.omqInterface.avecContexteVendeur main>a[href="/compte"]){display:none}

:where(.omqInterface .agentNav){position:fixed;bottom:0;left:0;right:0;max-width:var(--g-content-form);margin:auto;display:flex;flex-wrap:nowrap;gap:var(--g-space-1);padding:var(--g-space-2) var(--g-space-2);z-index:var(--g-z-nav)}

:where(.omqAdmin .adminAccount summary::-webkit-details-marker){display:none}

:where(.omqAdmin .adminAccount > div){position:absolute;right:0;top:100%;width:220px;max-width:calc(100vw - 32px);padding:var(--g-space-3);z-index:var(--g-z-modal)}

:where(.landingMarqueNom){display:none}

:where(html.firstDishLanding .top .bande){display:none}

:where(html.firstDishLanding #btnMine){display:none}

:where(.sheet .panel,.feuilleCorps,.spFeuilleCorps,.sheet .agPanel){max-width:min(100%,640px)}

:where(.feuilleCorps,.spFeuilleCorps){max-height:92dvh}

:where(.sheet h2,.feuilleCorps h2){padding-right:var(--g-space-8)}

:where(.landing .landingTitre::after){display:none}

:where(.pcEntete.avecPhoto .pcEnteteOmbre){display:none}

:where(.pcSansPhoto>svg){display:none}

:where(.pcGrille .pcPhotoRepli){display:none}

:where(.omq-cart-summary){display:none}

@media (min-width:760px){
:where(.feuille,.sheet){align-items:center}}

@media (min-width:1100px){
:where(.ongletsAdmin){position:sticky;top:0;z-index:2}}

@media (max-width:759px){
:where(body:has(input:not([type=checkbox]):not([type=radio]):focus,textarea:focus) .bar){display:none}}

:where(html body.omqClient .oc-meal .oc-placeholder:not(.oc-photo-error,.oc-meal-media)){display:none}

:where(html body.omqClient .oc-large-photo.oc-placeholder:not(.oc-photo-error)){display:none}

:where(.omqIllustrationLabel){position:absolute;bottom:6px;left:6px;padding:var(--g-space-1) var(--g-space-2)}

:where(.onglets){position:sticky;top:0;z-index:3;display:flex;gap:var(--g-space-1);overflow-x:auto;margin:var(--g-space-2) calc(-1 * var(--gouttiere)) 0;padding:var(--g-space-2) var(--gouttiere)}

:where(.onglets::-webkit-scrollbar){display:none}

:where(.pastilleQte){position:absolute;top:8px;right:8px;min-width:32px;height:32px;padding:0 var(--g-space-2);display:inline-flex;align-items:center;justify-content:center}

:where(.barreBas){position:fixed;left:0;right:0;bottom:0;z-index:var(--g-z-nav);padding:var(--g-space-2) var(--gouttiere) calc(var(--g-space-3) + env(safe-area-inset-bottom))}

:where(.feuille){position:fixed;inset:0;z-index:var(--g-z-modal)}

:where(.feuille[hidden]){display:none}

:where(.feuilleCorps){position:relative;width:100%;max-width:var(--g-content-form);max-height:92vh;overflow-y:auto;padding:var(--g-space-3) var(--g-space-4) calc(var(--g-space-4) + env(safe-area-inset-bottom));touch-action:pan-y}

:where(.feuilleTete){display:flex;align-items:center;justify-content:space-between;gap:var(--g-space-2)}

:where(.feuilleNom){margin:var(--g-space-3) 0 0;overflow-wrap:anywhere}

:where(.feuilleDescription){margin:var(--g-space-1) 0 0}

:where(.feuillePrix){margin:var(--g-space-1) 0 0}

:where(.etape+.etape::before){content:"";position:absolute;top:13px;right:50%;width:100%;height:3px;z-index:0}

:where(.repasMsg:empty){display:none}

:where(.repasBloc [hidden],.repasFeuille [hidden]){display:none}

:where(.repasFermer){position:absolute;top:10px;right:12px;display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:0 var(--g-space-3);cursor:pointer}

:where(.partagePlat [hidden]){display:none}

@keyframes omq-pe-pulse{
50%{opacity:.25}}

:where(.photo-main #photo-state:empty){display:none}

:where(.photo-publish-dock){position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:var(--g-content-form);z-index:var(--g-z-nav);padding:var(--g-space-3) var(--g-space-4) calc(var(--g-space-4) + env(safe-area-inset-bottom));max-height:none;overflow:visible}

:where(.photo-short-flow #agent-draft-handoff>summary){display:none}

:where(.photo-short-flow #draft-pause){display:none}

:where(.photo-short-flow #omqLegalFooter){display:none}

:where(.photo-main.photo-review>h1,.photo-main.photo-review>p){display:none}

:where(.photo-main .omq-photo-import:not([data-partial=true])>p:first-child){display:none}

:where(.photo-short-flow #global-configuration){padding:0;display:none}

:where(.photo-short-flow #agent-draft-limit){display:none}

:where(.photo-main.photo-review .omq-pm-prep>h3){display:none}

:where(.photo-short-flow .photo-publish-dock[hidden]){display:none}

:where(.photo-main.photo-mounted>.photo-kicker,.photo-main.photo-mounted>h1,.photo-main.photo-mounted>p){display:none}

:where(.photo-main.photo-mounted #photo-state:empty){display:none}

:where(.photo-main .omq-pm .omq-pm-prep>h3){display:none}

:where(.photo-main .photo-country-editor){display:none}

:where(.photo-main details>summary::-webkit-details-marker){display:none}

:where(.photo-short-flow #editor #draft-back,.photo-short-flow #draft-preview,.photo-short-flow #editor #remove-photo){display:none}

:where(.photo-short-flow .photo-country-editor){display:none}

:where(.photo-short-flow:has(.photo-handoff-ready) #items,.photo-short-flow:has(.photo-handoff-ready) #global-configuration,.photo-short-flow:has(.photo-handoff-ready) .photo-country-line){display:none}

:where(.photo-short-flow #notice:empty){display:none}

:where(.photo-short-flow #agent-draft-handoff>p.note){display:none}

:where(.photo-private-banner){position:sticky;top:0;padding:var(--g-space-3)}

:where(.photo-link-copy>input[hidden]){display:none}

:where(.photo-main #affiliate-preparations:empty){display:none}

:where(.photo-main #affiliate-state:empty){display:none}

:where(.photo-short-flow #omqLegalFooter,.photo-login #omqLegalFooter){display:none}

:where(.photo-short-flow #editor>section:first-of-type>h2){display:none}

:where(.photo-short-flow #notice[data-routine=true]){display:none}

:where(body.omqSeller.photo-short-flow #notice[data-routine=true]){display:none}

:where(body.omqSeller.photo-short-flow #seller-legal){display:none}

:where(body.omqSeller.photo-short-flow:has(.photo-handoff-ready) #notice:not([data-error=true])){display:none}

:where(body.omqSeller.photo-short-flow:has(.photo-handoff-ready) #handoff-recipient){display:none}

:where(body.photo-login #seller-legal){display:none}

:where(body.omqSeller.photo-short-flow .photo-main:has(.photo-handoff-ready) .photo-steps){display:none}

:where(.omq-pm .omq-pm-live){position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

:where(.omq-pm .omq-pm-save[hidden], .omq-pm .omq-pm-warn[hidden], .omq-pm .omq-pm-state[hidden]){display:none}

@keyframes omq-pm-spin{
to{transform:rotate(360deg)}}

:where(.omq-pm .omq-pm-pwa[hidden]){display:none}

@media (min-width: 640px){
:where(.omq-pm .omq-pm-actions > input[type="file"]){display:none}}

@media (max-width: 380px){
:where(.omq-pm .omq-pm-thumb){display:none}}

:where(.omq-pm .omq-pm-kpi-open>.omq-pm-kpi-arrow){display:none}

:where(.omq-pm .omq-pm-kpi-note){position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

:where(.omq-pm .omq-pm-hidden-link){position:absolute;left:-10000px;width:1px;height:1px;padding:0}

:where(.proposalValueLabel){display:none}

@media (max-width:599px){
:where(.proposalComparison thead){position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}}

:where(.rv-page [hidden]){display:none!important}

:where(.rv-page .rv-msg:empty){display:none}

:where(#omq-language-slot:empty){display:none}

:where(.legalPage button[hidden]){display:none}

:where(.omqFooterPreferences:empty){display:none}

:where(.vendeurNavigation){position:fixed;bottom:0;left:0;right:0;z-index:var(--g-z-nav);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--g-space-1);padding:0 max(var(--g-space-2),calc((100vw - var(--g-space-8))/2)) env(safe-area-inset-bottom);height:calc(68px + env(safe-area-inset-bottom))}

:where(.avecContexteVendeur > header,.avecContexteVendeur > .top){display:none}

:where(.vendeurActionLabel){position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

:where(.avecContexteVendeur main > a[href="/?compte=1"]){display:none}

:where(body.vendeurPhotoEditeur #app, body.vendeurPhotoEditeur #bar){display:none!important}

:where(body.omqSeller .omq-camera-tag){position:absolute;right:4px;bottom:4px;width:28px;height:28px;display:grid;place-items:center}

:where(body.omqSeller .omq-camera-tag svg){width:17px;height:17px}

:where(body.omqSeller .omq-badge){display:grid;place-items:center;min-width:17px;height:17px;padding:0 var(--g-space-1);position:absolute;top:2px;right:24px}

:where(body.omqSeller .omq-price-input span){position:absolute;right:18px;top:20px}

:where(body.omqSeller .omq-sr){position:absolute;width:1px;height:1px;padding:0;margin:-var(--g-space-1);overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}

:where(body.omqSeller #vendeurContexte .vendeurBreadcrumbs,body.omqSeller #vendeurContexte .vendeurContexteActions){display:none}

:where(body.omqSeller #aujourdhui>h1){display:none}

:where(body.omqSeller #blocPlats>h2){display:none}

:where(body.omqSeller .msg:empty){display:none}

:where(body.omqSeller [hidden]){display:none!important}

:where(body.omqSeller .order-header){display:none}

:where(body.omqSeller>header,body.omqSeller #bar){display:none}

@media print{
:where(.sellerQrIntro){display:none!important}}

:where(body.omqSeller #notice:empty){display:none}

:where(body.omqSeller .vendeurPriorite p){position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}

:where(body.omqSeller.sellerSettings #save){width:100%;position:sticky;bottom:0;z-index:var(--g-z-modal)}

:where(body.omqSeller.sellerSettings .sellerCarte #labPos){display:none}

:where(body.omqSeller.sellerSettings .sellerCarteRetrait:has(#retraitBlock[hidden]),body.omqSeller.sellerSettings #fullForm[hidden]~.sellerCarteRetrait){display:none}

:where(body.omqSeller.sellerSettings #sheetNew>.panel:before){display:none}

:where(body.omqSeller #sellerQrPreview[hidden]){display:none}

@media print{
:where(body.omqSeller #sellerQrFormats,body.omqSeller #seller-legal,body.omqSeller #sellerAccountNav){display:none!important}}

@media print{
:where(body.omqSeller.sellerQrTables .poster){display:none!important}}

:where(body.omqSeller .omq-session-status:empty){display:none}

:where(body.omqSeller .sellerToday .msg:empty){display:none}

:where(body.omqSeller :is(.sellerSectionAssignments,.sellerGlobalActions,.sellerDishConditions,.sellerSecondaryTools,.carteOptions)>summary::-webkit-details-marker){display:none}

:where(body.omqSeller .sellerInlinePrice summary::-webkit-details-marker){display:none}

:where(body.omqSeller .sellerAvailabilitySwitch::before){display:none}
/* Native shells use the same widths and density as the canonical layouts. */
:where(body.omqSeller,body.agentScreen,body.order-page){padding:0;min-width:0;width:100%;}
:where(main,article,section,form,fieldset,.omq-pm,.omq-pm-view,.omq-pm-list){min-width:0;}
:where(label:not(.g-switch,.g-more-density-options label)){display:grid;gap:var(--g-space-2);}
:where(label+label,fieldset+fieldset){margin-top:var(--g-space-3);}
:where(fieldset){border:1px solid var(--g-border);border-radius:var(--g-radius-field);padding:var(--g-card-padding);}
:where(legend){padding-inline:var(--g-space-2);font-weight:var(--g-weight-bold);}
:where(img,video,canvas,svg){max-width:100%;}
:where(.omq-top,.agentHeader,.photo-header,.oc-row,.fd-header,.rv-card-head,.order-head){display:flex;align-items:center;justify-content:space-between;gap:var(--g-gap);}
:where(.omq-top-actions,.omq-actions,.agentActions,.agentTools,.order-tools,.rv-actions,.fd-actions,.omq-form-actions){display:flex;flex-wrap:wrap;gap:var(--g-gap);align-items:center;}
:where(.omq-pm,.omq-pm-view,.omq-pm-list,.omq-pm-group,.fd-fields,.order-form,.rv-fields,.agentGrid,.agentList,.agentCardBody,.photo-state,.pendingProposals,.spaces){display:grid;gap:var(--g-gap);}
:where(.omq-pm section,.agentCard,.agentPanel,.agentProposal,.fd-card,.order-panel,.rv-card,.rv-panel){margin-block:var(--g-stack);}
:where(.omq-pm-item,.agentDish,.mcLigne,.omq-entry,.order-item){display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--g-gap);padding-block:var(--g-vertical-space);min-height:var(--g-row-height);}
:where(.omq-pm-item-main,.omq-dish-info,.agentEntry>div,.oc-row>div){flex:1 1 0;min-width:0;}
:where(.omq-pm-item-main>strong,.agentEntry strong){display:block;}
:where(.omq-pm-muted,.omq-small,.agentKicker,.agentSub,.oc-small,.oc-sub,.legalDate,.fd-help){color:var(--g-text-muted);font-size:var(--g-font-sm);}
:where(.omq-status,.agentNotice,.fd-notice,.notice,.info){padding:var(--g-card-padding);border-radius:var(--g-radius-field);background:var(--g-surface-soft);}
:where(.omq-error,.notice.danger,.error){color:var(--g-error);background:var(--g-error-soft);}
:where(.ok,.omq-status.is-success){color:var(--g-success);background:var(--g-success-soft);}
:where(.omq-pm-cardimg,.omq-preview-image,.grandePhoto){width:100%;height:auto;max-height:360px;object-fit:contain;}
:where(.omq-photo-button img,.oc-picture img,.pcPhoto img){display:block;width:100%;height:100%;object-fit:cover;}
:where(.agentMark,.oc-mark){display:grid;place-items:center;min-width:var(--g-touch);min-height:var(--g-touch);border-radius:var(--g-radius-field);background:var(--g-action-soft);color:var(--g-action);}
:where(.omq-top img,.agentHeader img,.photo-header img,.fd-header img){width:40px;height:40px;object-fit:contain;flex:none;}
:where(.order-list,.agentList,.rv-list,.omq-pm-list){list-style:none;padding:0;}
:where(.oc-layout,.oc-sheet,.oc-body,.oc-items,.oc-panel){min-width:0;}
:where(.oc-kicker){color:var(--g-text-muted);font-size:var(--g-font-sm);}
:where(.oc-total){display:flex;justify-content:space-between;flex-wrap:wrap;gap:var(--g-gap);font-size:var(--g-font-lg);font-weight:var(--g-weight-bold);padding-block:var(--g-stack);}
:where(.oc-qty,.pcChoixCommande,.fleches,.oc-tabs){display:flex;align-items:center;gap:var(--g-gap);}
:where(.oc-qty button,.pcChoixCommande button){min-width:var(--g-touch);}
:where(.oc-placeholder){display:grid;place-items:center;aspect-ratio:1;background:var(--g-surface-soft);color:var(--g-text-muted);}
:where(.oc-placeholder svg){width:40px;height:40px;}
:where(.feuille,.photoEnhanceOverlay,.photo-overlay,.omq-photo-preview,.pcFeuille,.fd-modal-backdrop){position:fixed;inset:0;z-index:var(--g-z-modal);background:var(--g-scrim);}
:where(.feuilleCorps,.photo-enhance-panel,.pcFeuilleCorps,.omq-photo-preview-body){width:100%;max-width:var(--g-content-form);max-height:calc(100dvh - var(--g-space-6));overflow:auto;padding:var(--g-card-padding);border-radius:var(--g-radius-sheet);background:var(--g-background);color:var(--g-text);}
:where(.feuille){display:flex;align-items:flex-end;justify-content:center;}
:where(.pcFeuilleCorps,.feuilleCorps){padding-bottom:calc(var(--g-card-padding) + env(safe-area-inset-bottom));}
:where(.oc-sheet-actions,.oc-sticky,.photo-publish-dock,.barreBas){background:var(--g-background);border-top:1px solid var(--g-border);padding:var(--g-space-3) var(--g-gutter);}
:where(.oc-btn,.omq-btn,.fd-primary,.agentButton){min-height:var(--g-control);}
:where(.omq-btn,.fd-primary,.agentButton){justify-content:center;}
:where(.photo-main>button,.photo-main>.omq-btn,.oc-sheet-actions>.oc-btn){width:100%;}
:where(.agentProgress,.omq-progress){height:var(--g-space-2);background:var(--g-surface-raised);border-radius:var(--g-radius-pill);overflow:hidden;}
:where(.agentProgress>span,.omq-progress>span){display:block;height:100%;background:var(--g-action);}
:where(.omqLegalFooterWithBar){padding-bottom:calc(var(--g-dock-clearance,var(--barre-h,0px)) + var(--g-space-6));}
:where(.omq-photo-preview img){max-width:100%;max-height:calc(100dvh - 160px);object-fit:contain;}
@media(min-width:600px){:where(.omq-form-grid,.rv-pair,.fd-fields--pair){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--g-gap);}}
@media print{:where(.omqLegalFooter,.vendeurNavigation,.photo-header,.omq-top){display:none!important;}}
}

/* Public restaurant identity and action glyphs keep their intrinsic icon size.
   Unconstrained SVGs otherwise take a browser-sized viewport after CSS retirement. */
@layer g-native {
 .oc-top .oc-brand { display:flex; align-items:center; gap:var(--g-gap); min-width:0; }
 .oc-top .oc-brand > div { min-width:0; }
 .oc-top .oc-mark { flex:none; width:var(--g-touch); height:var(--g-touch); }
 .oc-top .oc-mark > svg { width:24px; height:24px; }
 .oc-main .oc-location { display:flex; align-items:flex-start; gap:var(--g-space-2); }
 .oc-main .oc-location > svg { flex:none; width:20px; height:20px; }
 .oc-main .oc-quick > :is(a,button) > svg,
 .oc-main :is(.oc-icon,.oc-link,.oc-add,.oc-back) > svg { flex:none; width:20px; height:20px; }

/* OMQ keeps the original photo footprint when a meal has no genuine photo. */
.omqClient .oc-meal .oc-meal-media { display:grid; place-content:center; justify-items:center; gap:var(--ov-s2); width:100%; height:auto; min-height:0; aspect-ratio:1; border-radius:0; flex:none; }
.omqClient .oc-meal .oc-meal-media > svg { width:24px; height:24px; }
.omqClient .oc-meal .oc-meal-media > span { font-size:var(--ov-fs-sm); }

 .omqClient .oc-meal-camera-link { display:block; flex:none; color:var(--g-text-muted); text-decoration:none; }
}

/* OMQ page compositions. The shared primitives own typography, controls,
   cards, colors and density. This layer owns native positioning and flow. */
@layer g-native {
  :where(html[data-g-page]) { --native-page-width:var(--g-content-form); }
  :where(html[data-g-page]) :is(.wrap,body>main) { width:100%; max-width:var(--native-page-width); margin-inline:auto; padding:var(--g-gutter); }
  :where(html[data-g-page]) :is(.top,body>header:not(.ov-brandbar)) { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:var(--g-gap); min-height:var(--g-header-height); padding:var(--g-space-3) var(--g-gutter); background:var(--g-background); color:var(--g-text); border-bottom:1px solid var(--g-border); }
  :where(html[data-g-page]) :is(.marque,.nomCommerce,.choixNom,.pcPlatNom,.spNomPlat) { font-weight:var(--g-weight-heading); }
  :where(html[data-g-page]) :is(.note,.legende,.lead,.detail,.spLieu,.spStatutTexte) { color:var(--g-text-muted); }
  :where(html[data-g-page]) :is(.bloc,.encadre,.vocal,.etape,.essai,.spStatut,.spEnvoye) { min-width:0; margin-block:var(--g-stack); padding:var(--g-card-padding); border:1px solid var(--g-border); border-radius:var(--g-radius-card); background:var(--g-surface); box-shadow:var(--g-shadow); }
  :where(html[data-g-page]) :is(.actions,.gestes,.liens,.row,.spActions,.cropActions,.pubOutils) { display:flex; flex-wrap:wrap; align-items:center; gap:var(--g-gap); }
  :where(html[data-g-page]) :is(.actions,.gestes,.liens,.spActions) > * { min-width:0; max-width:100%; }
  :where(html[data-g-page]) :is(.bouton,.plein,.go,.primary,.spEnvoyer) { display:inline-flex; align-items:center; justify-content:center; min-height:var(--g-control); padding:var(--g-space-3) var(--g-space-4); border:1px solid var(--g-action); border-radius:var(--g-radius-button); background:var(--g-action); color:var(--g-on-action); font:var(--g-weight-bold) var(--g-font-md)/1.2 var(--g-font-sans); text-align:center; text-decoration:none; }
  :where(html[data-g-page]) :is(.boutonContour,.contour,.pick) { display:inline-flex; align-items:center; justify-content:center; min-height:var(--g-control); padding:var(--g-space-3) var(--g-space-4); border:1px solid var(--g-border-control); border-radius:var(--g-radius-button); background:var(--g-surface); color:var(--g-action); text-decoration:none; }
  :where(html[data-g-page]) :is(.large,.pubMaPosition,.spEnvoyer) { width:100%; }
  :where(html[data-g-page]) :is(.adresse,.lien,.lienBouton,#lienEntier,#link,#lienVisible) { overflow-wrap:anywhere; }
  :where(html[data-g-page]) .g-position-context { position:relative; }
  :where(html[data-g-page]) :is(.msg,.spMessage,#notice,#result):empty { display:none; }
  :where(html[data-g-page]) :is(.msg,#notice)[data-error="true"] { color:var(--g-error); }
  :where(html[data-g-page]) :is(.photoPlat,.photoChoixImage,.capture img,.agPhotoVerif) { display:block; max-width:100%; object-fit:contain; }
  :where(html[data-g-page]) :is(.encadre h3,.bloc h2,.spEnvoye h1) { margin-top:0; }

  /* Native training occupies one viewport; the coach and iframe share the
     available space. Completion returns to document scrolling. */
  :where(html[data-g-page="apprentissage"] body) { display:flex; flex-direction:column; height:100dvh; min-height:0; overflow:hidden; }
  :where(html[data-g-page="apprentissage"]) :is(body>header,#coach,body>iframe) { width:100%; max-width:var(--g-content-form); margin-inline:auto; }
  :where(html[data-g-page="apprentissage"] body>header) { flex:none; }
  :where(html[data-g-page="apprentissage"] #coach) { flex:none; max-height:40dvh; overflow:auto; padding:var(--g-card-padding); }
  :where(html[data-g-page="apprentissage"] #coach h1) { margin-block:0 var(--g-space-2); font-size:var(--g-font-h2); }
  :where(html[data-g-page="apprentissage"] body>iframe) { display:block; flex:1 1 0; min-height:0; height:0; border:1px solid var(--g-border); }
  :where(html[data-g-page="apprentissage"] body.trainingDone) { height:auto; min-height:100dvh; overflow:auto; }
  :where(html[data-g-page="apprentissage"]) :is(#training-finish,#training-restart-finish) { width:100%; min-height:var(--g-control); }
  :where(html[data-g-page="apprentissage"] #training-options) { width:calc(100% - var(--g-space-8)); max-width:var(--g-content-form); padding:var(--g-card-padding); border:1px solid var(--g-border); border-radius:var(--g-radius-sheet); }
  :where(html[data-g-page="apprentissage"] #training-options::backdrop) { background:color-mix(in srgb,var(--g-text) 55%,transparent); }

  /* Auth, native forms and guides use the same reading column. */
  :where(html:is([data-g-page="acces-v1"],[data-g-page="accompagnement-v1"],[data-g-page="preparer-v1"])) :is(header,main) { width:100%; max-width:var(--g-content-form); margin-inline:auto; padding:var(--g-gutter); }
  :where(html:is([data-g-page="acces-v1"],[data-g-page="accompagnement-v1"],[data-g-page="preparer-v1"])) :is(section,article,fieldset) { min-width:0; margin-block:var(--g-stack); padding:var(--g-card-padding); border:1px solid var(--g-border); border-radius:var(--g-radius-card); background:var(--g-surface); }
  :where(html:is([data-g-page="acces-v1"],[data-g-page="accompagnement-v1"],[data-g-page="preparer-v1"])) label { display:block; margin-block:var(--g-space-3); }
  :where(html[data-g-page="preparer-v1"]) #items { padding:0; list-style:none; }
  :where(html[data-g-page="preparer-v1"]) #items li { display:flex; flex-wrap:wrap; align-items:center; gap:var(--g-gap); margin-block:var(--g-space-3); padding-block:var(--g-space-3); border-bottom:1px solid var(--g-border); }
  :where(html[data-g-page="preparer-v1"]) #items li>span { flex:1 1 140px; min-width:0; }
  :where(html[data-g-page="accompagnement-v1"]) .proposalComparison { width:100%; border-collapse:collapse; }
  :where(html[data-g-page="accompagnement-v1"]) .proposalComparison :is(th,td) { padding:var(--g-space-2); border:1px solid var(--g-border); text-align:left; overflow-wrap:anywhere; }
  :where(html[data-g-page="seller-menu"]) :is(.choixListe,.plats,.apercuTexte,.mlListe) { padding:0; list-style:none; }
  :where(html[data-g-page="seller-menu"]) .choixCommerce { display:grid; gap:var(--g-space-1); width:100%; margin-block:var(--g-space-3); padding:var(--g-card-padding); border:1px solid var(--g-border); border-radius:var(--g-radius-card); background:var(--g-surface); text-align:left; text-decoration:none; }
  :where(html[data-g-page="seller-menu"]) :is(.choixHaut,.ligneTete,.prixForm,.mlChamp,.prixZone,.platPrix) { display:flex; flex-wrap:wrap; align-items:center; gap:var(--g-gap); min-width:0; }
  :where(html[data-g-page="seller-menu"]) :is(.prixChamp,.champPrix input) { width:9ch; max-width:100%; }
  :where(html:is([data-g-page="guide-vendeur"],[data-g-page="guide-ajouter"])) .tete { display:flex; flex-wrap:wrap; align-items:center; gap:var(--g-stack); }
  :where(html:is([data-g-page="guide-vendeur"],[data-g-page="guide-ajouter"])) .qr { flex:none; width:120px; aspect-ratio:1; }
  :where(html:is([data-g-page="guide-vendeur"],[data-g-page="guide-ajouter"])) .qr svg { display:block; width:100%; height:100%; }
  :where(html:is([data-g-page="guide-vendeur"],[data-g-page="guide-ajouter"])) .teteTexte { flex:1 1 160px; min-width:0; }
  :where(html:is([data-g-page="guide-vendeur"],[data-g-page="guide-ajouter"])) .capture { max-width:360px; margin:var(--g-stack) auto; }
  :where(html:is([data-g-page="guide-vendeur"],[data-g-page="guide-ajouter"])) .capture img { width:100%; height:auto; border:1px solid var(--g-border); border-radius:var(--g-radius-card); }
  :where(html[data-g-page="formation"]) :is(.pas,.tuiles) { display:grid; gap:var(--g-gap); list-style:none; padding:0; counter-reset:steps; }
  :where(html[data-g-page="formation"]) .pas li { display:flex; gap:var(--g-gap); align-items:center; }
  :where(html[data-g-page="formation"]) .pas li::before { content:counter(steps); counter-increment:steps; display:grid; place-items:center; flex:none; width:32px; height:32px; border-radius:var(--g-radius-pill); background:var(--g-action-soft); color:var(--g-action); font-weight:var(--g-weight-bold); }
  :where(html[data-g-page="formation"]) .vocal audio { width:100%; }

  /* Legacy discovery remains a native map/list composition when its DOM is
     enabled. Its measurements belong to the existing drag/resize handlers. */
  :where(html[data-g-page="home"] .top) { position:relative; z-index:20; }
  :where(html[data-g-page="home"] .top .file) { order:1; margin-left:auto; }
  :where(html[data-g-page="home"] #mapWrap) { position:fixed; inset:var(--haut,70px) 0 var(--bas,65px); }
  :where(html[data-g-page="home"] #map) { position:absolute; inset:0; }
  :where(html[data-g-page="home"] .leaflet-bottom) { bottom:var(--couvert,0px); }
  :where(html[data-g-page="home"] .surCarte) { position:absolute; z-index:450; inset:var(--g-space-3) var(--g-space-3) auto; pointer-events:none; }
  :where(html[data-g-page="home"] .surCarte>*) { pointer-events:auto; }
  :where(html[data-g-page="home"].js .liste) { position:fixed; inset:auto 0 var(--bas,65px); z-index:500; display:flex; flex-direction:column; max-height:calc(100dvh - var(--haut,70px) - var(--bas,65px)); min-height:0; background:var(--g-surface); border-top:1px solid var(--g-border); border-radius:var(--g-radius-sheet) var(--g-radius-sheet) 0 0; }
  :where(html[data-g-page="home"]) :is(.listeTete,.listeCorps) { min-height:0; }
  :where(html[data-g-page="home"].js .listeTete) { display:flex; flex:none; align-items:center; justify-content:space-between; gap:var(--g-gap); padding:var(--g-space-3) var(--g-gutter); touch-action:none; user-select:none; }
  :where(html[data-g-page="home"] .listeCorps) { overflow:auto; overscroll-behavior:contain; padding:var(--g-gutter); }
  :where(html[data-g-page="home"] .liste.tiree) { transition:none; }
  :where(html[data-g-page="home"]) :is(.listeTete,.poignee,.ongletsBas) { display:none; }
  :where(html[data-g-page="home"].js .ongletsBas) { display:flex; position:fixed; inset:auto 0 0; z-index:600; min-height:var(--g-touch); padding-bottom:env(safe-area-inset-bottom); }
  :where(html[data-g-page="home"]) :is(.p1Choix,.pvListeCommerces,.p1RestosListe,.p1PrepListe,.agListe) { list-style:none; padding:0; display:grid; gap:var(--g-gap); }
  :where(html[data-g-page="home"]) :is(.p1LienQr,.agQr svg) { max-width:160px; aspect-ratio:1; }
  :where(html[data-g-page="home"]) :is(.p1LienBoutons,.p1TourneeLiens,.agLiens) { display:flex; flex-wrap:wrap; gap:var(--g-gap); }
  :where(html[data-g-page="home"]) :is(.p1LienBoutons,.p1TourneeLiens,.agLiens)>* { flex:1 1 130px; }

  /* Bottom sheets and the two distinct crop tools keep their coordinate
     systems. No numeric image offsets set by the handlers are restyled. */
  :where(html[data-g-page]) :is(.sheet,.ouverture,.cropSheet,.viewer,.pcCrop) { position:fixed; inset:0; display:flex; align-items:flex-end; justify-content:center; z-index:var(--g-z-modal); padding:var(--g-space-3); background:color-mix(in srgb,var(--g-text) 60%,transparent); }
  :where(html[data-g-page]) .sheet { display:none; }
  :where(html[data-g-page]) .sheet.open { display:flex; }
  :where(html[data-g-page]) :is(.panel,.cropPanel,.pcCropCarte) { width:100%; max-width:var(--g-content-form); min-width:0; max-height:calc(100dvh - var(--g-space-6)); overflow:auto; overscroll-behavior:contain; padding:var(--g-card-padding); padding-bottom:max(var(--g-card-padding),env(safe-area-inset-bottom)); border:1px solid var(--g-border); border-radius:var(--g-radius-sheet); background:var(--g-surface); color:var(--g-text); }
  :where(html[data-g-page="home"] #sheetMaTournee) { z-index:99; }
  :where(html[data-g-page="home"] #sheetPhotos) { z-index:101; }
  :where(html[data-g-page="home"]) :is(.mmFiltres,.mmChoix) { display:flex; gap:var(--g-gap); overflow:auto; min-width:0; }
  :where(html[data-g-page="home"] .mmFiltres>*) { flex:none; }
  :where(html[data-g-page="home"]) :is(.mmBarre,.mgBas) { position:sticky; bottom:0; display:flex; flex-wrap:wrap; gap:var(--g-gap); padding-block:var(--g-space-3); background:var(--g-surface); }
  :where(html[data-g-page="home"] body.agentCreator #sheetNew .item) { display:grid; grid-template-columns:minmax(0,1fr) var(--g-touch); gap:var(--g-gap); }
  :where(html[data-g-page="home"] .cropSheet) { align-items:stretch; z-index:102; }
  :where(html[data-g-page="home"] .cropPanel) { display:flex; flex-direction:column; height:100%; max-height:100%; overflow:hidden; }
  :where(html[data-g-page="home"] .cropStage) { position:relative; flex:1 1 0; min-height:0; overflow:hidden; touch-action:none; }
  :where(html[data-g-page="home"] .cropStage img) { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; pointer-events:none; user-select:none; }
  :where(html[data-g-page="home"] .cropRect) { position:absolute; outline:2px solid var(--g-on-action); box-shadow:0 0 0 100vmax color-mix(in srgb,var(--g-text) 60%,transparent); touch-action:none; }
  :where(html[data-g-page="home"] .cropHandle) { position:absolute; width:var(--g-touch); height:var(--g-touch); touch-action:none; }
  :where(html[data-g-page="home"] .cropHandle[data-handle="nw"]) { top:0; left:0; }
  :where(html[data-g-page="home"] .cropHandle[data-handle="ne"]) { top:0; right:0; }
  :where(html[data-g-page="home"] .cropHandle[data-handle="sw"]) { bottom:0; left:0; }
  :where(html[data-g-page="home"] .cropHandle[data-handle="se"]) { bottom:0; right:0; }
  :where(html[data-g-page="home"] .cropActions) { flex:none; padding-top:var(--g-space-3); }

  /* Public native detail and cart use window scrolling plus the measured
     bar variable. Shared public compositions own their visible cards. */
  :where(html[data-g-page="public-menu"]) { scroll-padding-bottom:calc(var(--barre-h,140px) + var(--g-space-4)); }
  :where(html[data-g-page="public-menu"]) .wrap { padding-inline:0; padding-bottom:calc(var(--barre-h,140px) + var(--g-space-4)); }
  :where(html[data-g-page="public-menu"]) :is(.bar,.pcBarreSsr) { position:fixed; inset:auto 0 0; z-index:var(--g-z-nav); padding:var(--g-space-2); padding-bottom:max(var(--g-space-2),env(safe-area-inset-bottom)); background:var(--g-background); border-top:1px solid var(--g-border); }
  :where(html[data-g-page="public-menu"] .pcCompact) { position:fixed; inset:0 0 auto; z-index:var(--g-z-nav); width:100%; max-width:var(--g-content-form); margin-inline:auto; background:var(--g-background); }
  :where(html[data-g-page="public-menu"]) :is(.pcPilules,.pcCompactPilules,.pcPhotosPlat--public) { display:flex; gap:var(--g-gap); min-width:0; overflow-x:auto; scroll-snap-type:x proximity; }
  :where(html[data-g-page="public-menu"]) :is(.pcPilules,.pcCompactPilules)>* { flex:none; }
  :where(html[data-g-page="public-menu"]) :is(.pcPhotosPlat--public .pcEncart) { flex:0 0 144px; scroll-snap-align:start; }
  :where(html[data-g-page="public-menu"] .pcPhotosPlat--public img) { width:144px; height:112px; object-fit:cover; }
  :where(html[data-g-page="public-menu"]) :is(.hero,.pcEntete,.pcPlat,.pcPhotoOuvrir,.pcCropVue) { position:relative; }
  :where(html[data-g-page="public-menu"]) :is(.heroPhoto,.heroOmbre,.pcEnteteOmbre) { position:absolute; inset:0; }
  :where(html[data-g-page="public-menu"]) :is(.hero .t,.pcEnteteTexte) { position:relative; z-index:1; pointer-events:none; }
  :where(html[data-g-page="public-menu"]) :is(.heroThumb,.pcCardActions,.pcQuickAdd,.pcHeaderTools) { position:relative; z-index:2; pointer-events:auto; }
  :where(html[data-g-page="public-menu"]) :is(.viewer,.pcCrop) { align-items:center; z-index:calc(var(--g-z-modal) + 2); }
  :where(html[data-g-page="public-menu"] .viewer img) { display:block; max-width:calc(100% - 2 * var(--g-gutter,16px)); max-height:90dvh; object-fit:contain; }
  :where(html[data-g-page="public-menu"]) #viewerClose { position:absolute; top:max(16px,env(safe-area-inset-top)); right:16px; min-width:44px; min-height:44px; z-index:1; }
  :where(html[data-g-page="public-menu"] .pcCropVue) { width:100%; height:min(260px,45dvh); overflow:hidden; touch-action:none; }
  :where(html[data-g-page="public-menu"] .pcCropVue img) { display:block; width:100%; height:100%; object-fit:contain; pointer-events:none; user-select:none; }
  :where(html[data-g-page="public-menu"]) :is(.pcPhotoOuvrir img,.pcPhotosPlat .pcEncart img) { display:block; width:100%; height:auto; max-height:320px; object-fit:contain; }
  :where(html[data-g-page="public-menu"]) .pcChoixCommande { display:flex; align-items:center; justify-content:center; gap:var(--g-space-5); }
  :where(html[data-g-page="public-menu"]) .pcChoixCommande button { width:var(--g-control); min-height:var(--g-control); }

  /* Table flow retains image evidence and horizontal state progression. */
  :where(html[data-g-page="sur-place"]) .spEntete { padding:var(--g-card-padding); background:var(--g-action-soft); border-bottom:1px solid var(--g-border); }
  :where(html[data-g-page="sur-place"]) :is(.spLigne,.spStatutTitre,.spOutils,.spBascule) { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:var(--g-gap); }
  :where(html[data-g-page="sur-place"]) .spListe { padding:0; list-style:none; }
  :where(html[data-g-page="sur-place"]) .spLigne { min-height:var(--g-row-height); padding-block:var(--g-space-2); border-bottom:1px solid var(--g-border); }
  :where(html[data-g-page="sur-place"]) .spChaine { display:flex; flex-wrap:wrap; gap:var(--g-space-2); list-style:none; padding:0; }
  :where(html[data-g-page="sur-place"]) .spFichier { position:absolute; width:1px; height:1px; opacity:0; overflow:hidden; pointer-events:none; }
  :where(html[data-g-page="sur-place"]) .spPreuve img { max-width:100%; max-height:320px; object-fit:contain; }

  /* Screen QR previews and physical print formats use native QR SVG data. */
  :where(html[data-g-page="qr"]) :is(.poster,.a5,.sticker) { margin-inline:auto; padding:var(--g-card-padding); background:var(--g-surface); border:1px solid var(--g-border); border-radius:var(--g-radius-card); text-align:center; break-inside:avoid; }
  :where(html[data-g-page="qr"]) .poster { width:min(100%,360px); }
  :where(html[data-g-page="qr"]) :is(.qrBox,.a5 .qr) { width:70%; aspect-ratio:1; margin:var(--g-stack) auto; }
  :where(html[data-g-page="qr"]) :is(.qrBox svg,.qr svg) { display:block; width:100%; height:100%; }
  :where(html[data-g-page="qr"]) .planche { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--g-gap); }
  :where(html[data-g-page="qr"]) .sticker .qr { width:70%; aspect-ratio:1; margin:var(--g-space-2) auto; }
  :where(html[data-g-page="qr"]) .affiches { display:grid; gap:var(--g-stack); }
  :where(html[data-g-page="qr"]) :is(.name,.a5 .table) { font-size:var(--g-font-h1); font-weight:var(--g-weight-heading); }
  :where(html[data-g-page="qr"]) .adresse { overflow-wrap:anywhere; color:var(--g-text-muted); }
  @page omq-guide { size:A5; margin:10mm; }
  @page omq-poster { size:105mm 148mm; margin:0; }
  @page planche { size:A4; margin:8mm; }
  @page affiche { size:A5; margin:0; }
  @media print {
    :where(html:is([data-g-page="guide-vendeur"],[data-g-page="guide-ajouter"])) { page:omq-guide; }
    :where(html:is([data-g-page="guide-vendeur"],[data-g-page="guide-ajouter"])) :is(.top,.gestes,.dit,.pied) { display:none; }
    :where(html:is([data-g-page="guide-vendeur"],[data-g-page="guide-ajouter"])) :is(.encadre,dl>div,li,.capture) { break-inside:avoid; }
    :where(html:is([data-g-page="guide-vendeur"],[data-g-page="guide-ajouter"])) .capture img { max-height:120mm; width:auto; margin-inline:auto; }
    :where(html[data-g-page="qr"]) .poster { page:omq-poster; width:105mm; height:148mm; border:0; border-radius:0; }
    :where(html[data-g-page="qr"]) .planche { page:planche; grid-template-columns:97mm 97mm; grid-auto-rows:68mm; gap:2mm 0; }
    :where(html[data-g-page="qr"]) .sticker { border:0.3mm dashed var(--g-border-control); border-radius:3mm; }
    :where(html[data-g-page="qr"]) .sticker:nth-child(8n) { break-after:page; }
    :where(html[data-g-page="qr"]) .sticker .qr { width:38mm; height:38mm; }
    :where(html[data-g-page="qr"]) .affiches { page:affiche; display:block; }
    :where(html[data-g-page="qr"]) .a5 { width:148mm; height:209mm; border:0; border-radius:0; break-after:page; }
    :where(html[data-g-page="qr"]) .a5 .qr { width:95mm; height:95mm; }
  }

  .omq-global-phone { display:grid; grid-template-columns:minmax(0,1fr); gap:var(--g-space-2); min-width:0; }
  .omq-global-phone label { margin:0; }
  .omq-global-phone :is(input,select) { min-height:var(--g-control); width:100%; min-width:0; max-width:100%; }
  .omq-global-phone small { color:var(--g-error); overflow-wrap:anywhere; }
  :is(.formationCible,.trainingTarget) { outline:3px solid var(--g-focus)!important; outline-offset:4px!important; }
  .omq-photo-preview { display:block; width:auto; max-width:100%; max-height:240px; object-fit:contain; border-radius:var(--g-radius-card); margin-block:var(--g-space-2); }
  .omq-seller-photo-full { display:block; width:100%; max-height:70dvh; object-fit:contain; }
  #omq-ui-language { min-width:0; max-width:var(--g-content-form); margin:var(--g-space-2) auto; }
  :is(#omq-ui-language summary,#omq-ui-language select,#global-configuration>summary,#global-address-panel>summary) { min-height:var(--g-touch); padding:var(--g-space-3); overflow-wrap:anywhere; }
  .omq-story-dialog { width:var(--g-content-form); max-width:calc(100vw - var(--g-space-6)); max-height:90dvh; padding:0; border:1px solid var(--g-border); border-radius:var(--g-radius-sheet); }
  .g-photo-story { box-sizing:border-box; padding:var(--g-card-padding); background:var(--g-background); color:var(--g-text); font:var(--g-font-md)/var(--g-line-body) var(--g-font-sans); }
  .g-photo-story :is(.row,.actions) { display:flex; flex-wrap:wrap; align-items:center; gap:var(--g-gap); }
  .g-photo-story .story-heading { position:sticky; top:0; z-index:2; padding-bottom:var(--g-space-2); background:var(--g-background); }
  .g-photo-story .photos { display:grid; grid-template-columns:repeat(auto-fill,minmax(min(100%,140px),1fr)); gap:var(--g-gap); }
  .g-photo-story :is(.photos label,.frame) { min-width:0; border:1px solid var(--g-border); border-radius:var(--g-radius-card); padding:var(--g-card-padding); margin-block:var(--g-space-3); overflow-wrap:anywhere; }
  .g-photo-story .photos img { width:100%; height:85px; object-fit:contain; }
  .g-photo-story .preview { display:block; width:250px; max-width:100%; max-height:340px; object-fit:contain; margin:var(--g-space-3) auto; }
  .g-photo-story :is(progress,#result video) { width:100%; }
  .g-photo-story #result video { max-height:360px; }
  .g-photo-story .primary { background:var(--g-action); border-color:var(--g-action); color:var(--g-on-action); }

}

/* Native visibility contracts, consolidated to each selector’s final state.
   These select existing DOM only; account, permission and feature gates stay
   in the native server and JavaScript. */
@layer g-native {
  @media print {
  :where(html[data-g-page="guide-ajouter"] .top) { display:none; }
  :where(html[data-g-page="guide-ajouter"] .gestes) { display:none; }
  :where(html[data-g-page="guide-ajouter"] .dit) { display:none; }
  :where(html[data-g-page="guide-ajouter"] .pied) { display:none; }
  :where(html[data-g-page="guide-vendeur"] .top) { display:none; }
  :where(html[data-g-page="guide-vendeur"] .gestes) { display:none; }
  :where(html[data-g-page="guide-vendeur"] .dit) { display:none; }
  :where(html[data-g-page="guide-vendeur"] .pied) { display:none; }
  :where(html[data-g-page="qr"] .go) { display:none; }
  :where(html[data-g-page="qr"] .back) { display:none; }
  :where(html[data-g-page="qr"] .lot h1) { display:none; }
  :where(html[data-g-page="qr"] .lot .lead) { display:none; }
  :where(html[data-g-page="qr"] .lot h2) { display:none; }
  :where(html[data-g-page="qr"] .lot .quoi) { display:none; }
  :where(html[data-g-page="qr"] .imprimer) { display:none; }
  :where(html[data-g-page="qr"] .lot .back) { display:none; }
  }
  :where(html[data-g-page="home"] .sheet) { display:none; }
  :where(html[data-g-page="home"] .photo input) { display:none; }
  :where(html[data-g-page="home"] .cropStage img) { pointer-events:none; }
  :where(html[data-g-page="home"] .pubEnLigne) { display:none; }
  :where(html[data-g-page="home"] .pubCrosshair) { pointer-events:none; }
  :where(html[data-g-page="home"] .accueilVendeur) { display:none; }
  :where(html[data-g-page="home"] .p1Bloc) { display:none; }
  :where(html[data-g-page="home"] .p1RoleCommercial) { display:none; }
  :where(html[data-g-page="home"] .mgVoirManger) { display:none; }
  :where(html[data-g-page="home"] .avAvecSession) { display:none; }
  :where(html[data-g-page="home"] .landing) { display:none; }
  :where(html[data-g-page="home"] .landingLogin) { display:none; }
  :where(html[data-g-page="home"] .landingHeaderCta) { display:none; }
  :where(html[data-g-page="home"] .pvAccueilSur) { display:none; }
  :where(html[data-g-page="home"] .pvAccueilLead) { display:none; }
  :where(html[data-g-page="home"] .mgVendreN) { display:none; }
  :where(html[data-g-page="home"] .mgRetrouverAgent) { display:none; }
  :where(html[data-g-page="home"] .mgDevise) { pointer-events:none; }
  :where(html[data-g-page="public-menu"] .hero .heroOmbre) { pointer-events:none; }
  :where(html[data-g-page="public-menu"] .hero .t) { pointer-events:none; }
  :where(html[data-g-page="public-menu"] .hero .heroThumb) { pointer-events:auto; }
  :where(html[data-g-page="public-menu"] .pcEnteteOmbre) { display:none; }
  :where(html[data-g-page="public-menu"] .pcEnteteTexte) { pointer-events:none; }
  :where(html[data-g-page="public-menu"] .pcPlat > .pcSansPhoto .pcPlatNom) { display:none; }
  :where(html[data-g-page="public-menu"] .pcCropVue img) { pointer-events:none; }
  :where(html[data-g-page="public-menu"] .pcFeuilleCorps > .pcSansPhoto .pcPlatNom) { display:none; }
  :where(html[data-g-page="public-menu"] .pcPlat .pcPhotoRepli .pcPlatNom) { display:none; }
  :where(html[data-g-page="public-menu"] .pcAutreLigne > *) { pointer-events:none; }
  :where(html[data-g-page="sur-place"] .spFichier) { pointer-events:none; }
  :where(html[data-g-page="essai-gps"] .resultat) { display:none; }
  :where(html[data-g-page="meal-card-options"] .backdrop) { display:none; }
  :where(html[data-g-page="meal-card-options"] .shade) { pointer-events:none; }
  :where(html[data-g-page="meal-card-options"] .fallback) { display:none; }
  :where(html[data-g-page="meal-card-options"] .missing img) { visibility:hidden; }
  @media (min-width: 720px) {
  :where(html[data-g-page="home"] .landingSticky) { display:none; }
  }
}

/* Native visibility contracts, consolidated to each selector’s final state.
   These select existing DOM only; account, permission and feature gates stay
   in the native server and JavaScript. */
@layer g-accessibility {
  :where(html[data-g-page="apprentissage"] body.clientTraining[hidden]) { display:none; }
  :where(html[data-g-page="apprentissage"] body.clientTraining>header) { display:flex; }
  :where(html[data-g-page="apprentissage"] body.clientTraining #step-title) { display:none; }
  :where(html[data-g-page="apprentissage"] body.clientTraining #result:empty) { display:none; }
  :where(html[data-g-page="apprentissage"] body.sellerTraining>iframe[hidden]) { display:none; }
  :where(html[data-g-page="apprentissage"] body.sellerTraining.trainingDone #step-title) { display:block; }
  :where(html[data-g-page="apprentissage"] body.sellerTraining #training-finish) { display:flex; }
  :where(html[data-g-page="apprentissage"] body.sellerTraining #training-finish[hidden]) { display:none; }
  :where(html[data-g-page="apprentissage"] body.adminTraining #step-title) { display:block; }
  :where(html[data-g-page="apprentissage"] body.adminTraining>iframe[hidden]) { display:none; }
  :where(html[data-g-page="apprentissage"] body.adminTraining #training-finish) { display:flex; }
  :where(html[data-g-page="apprentissage"] body.adminTraining #training-finish[hidden]) { display:none; }
  :where(html[data-g-page="apprentissage"] body.adminTraining #training-restart-finish[hidden]) { display:none; }
  :where(html[data-g-page="apprentissage"] body.clientTraining.trainingDone>iframe[hidden]) { display:none; }
  :where(html[data-g-page="apprentissage"] body.clientTraining.trainingDone #step-title) { display:block; }
  :where(html[data-g-page="apprentissage"] body.clientTraining #training-finish) { display:flex; }
  :where(html[data-g-page="apprentissage"] body.clientTraining #training-finish[hidden]) { display:none; }
  :where(html[data-g-page="seller-menu"] .msg:empty) { display:none; }
  :where(html[data-g-page="seller-menu"] .mlChamp[hidden]) { display:none; }
  :where(html[data-g-page="seller-menu"] body[data-k] > .top) { display:none; }
  :where(html[data-g-page="seller-menu"] [data-k] #souciOuvrir) { display:flex; }
  :where(html[data-g-page="seller-menu"] .rappel[hidden]) { display:none; }
  :where(html[data-g-page="connexion"] [hidden]) { display:none; }
  :where(html[data-g-page="formation"] .pas li::before) { display:inline-flex; }
  :where(html[data-g-page="formation"] .fait::before) { display:inline-flex; }
  :where(html[data-g-page="home"] [hidden]) { display:none; }
  :where(html[data-g-page="home"] .listeTete.avecCarte .poignee) { display:block; }
  :where(html[data-g-page="home"] .listeBoutons:empty) { display:none; }
  :where(html[data-g-page="home"].js .ongletsBas) { display:flex; }
  :where(html[data-g-page="home"] #near .barre) { display:none; }
  :where(html[data-g-page="home"] #near[data-etat="ko"] .barre) { display:inline; }
  :where(html[data-g-page="home"] .ouverture[hidden]) { display:none; }
  :where(html[data-g-page="home"] .sheet.open) { display:flex; }
  :where(html[data-g-page="home"] .panel::before) { display:block; }
  :where(html[data-g-page="home"] .cropSheet .panel::before) { display:none; }
  :where(html[data-g-page="home"] body.agentCreator #sheetNew .item) { display:grid; }
  :where(html[data-g-page="home"] .mmTete[hidden]) { display:none; }
  :where(html[data-g-page="home"] .mmFiltres[hidden]) { display:none; }
  :where(html[data-g-page="home"] .mmBarre[hidden]) { display:none; }
  :where(html[data-g-page="home"] .mmFiltre[hidden]) { display:none; }
  :where(html[data-g-page="home"] .mmJour[hidden]) { display:none; }
  :where(html[data-g-page="home"] .mmPublier[hidden]) { display:none; }
  :where(html[data-g-page="home"] .itemGroup[hidden]) { display:none; }
  :where(html[data-g-page="home"].p1Agent .mmEnregistrer) { display:none; }
  :where(html[data-g-page="home"] .mmFiltres::-webkit-scrollbar) { display:none; }
  :where(html[data-g-page="home"] #addItem) { display:none; }
  :where(html[data-g-page="home"] .itemCategorieEtat:empty) { display:none; }
  :where(html[data-g-page="home"] .mmChoix[hidden]) { display:none; }
  :where(html[data-g-page="home"] .mmChoix.mmChoixForm) { display:block; }
  :where(html[data-g-page="home"] .mmMsg:empty) { display:none; }
  :where(html[data-g-page="home"] #sheetPub.publie .pubPhotoBox) { display:none; }
  :where(html[data-g-page="home"] #sheetPub.repasCarte .pubPhotoBox) { display:none; }
  :where(html[data-g-page="home"] #sheetPub .pubBande) { display:none; }
  :where(html[data-g-page="home"] #sheetPub.vendeur .pubPhotoBox) { display:none; }
  :where(html[data-g-page="home"].p1Onboarding .accueilVendeur) { display:block; }
  :where(html[data-g-page="home"].vendeurEntreeV1 .accueilVendeur) { display:flex; flex-direction:column; gap:var(--ov-s3); width:100%; max-width:var(--ov-maxw); margin-inline:auto; padding:var(--ov-s4) var(--ov-gutter) var(--ov-s6); }
  :where(html[data-g-page="home"].p1Redirection body) { visibility:hidden; }
  :where(html[data-g-page="home"].p1Vos #vosCommerces) { display:block; }
  :where(html[data-g-page="home"].p1Jour #aujourdhuiVille) { display:block; }
  :where(html[data-g-page="home"].p1Connecte #vosCommerces) { display:none; }
  :where(html[data-g-page="home"].p1Connecte #aujourdhuiVille) { display:none; }
  :where(html[data-g-page="home"].p1Commercial .p1RoleCommercial) { display:flex; }
  :where(html[data-g-page="home"].p1Commercial #btnAjouterAutre) { display:none; }
  :where(html[data-g-page="home"].p1Agent #devenirVendeur) { display:none; }
  :where(html[data-g-page="home"] .agSous:empty) { display:none; }
  :where(html[data-g-page="home"] .agCarte[hidden]) { display:none; }
  :where(html[data-g-page="home"] .agLiens [hidden]) { display:none; }
  :where(html[data-g-page="home"] .agInviter[hidden]) { display:none; }
  :where(html[data-g-page="home"] .agQr[hidden]) { display:none; }
  :where(html[data-g-page="home"] .agFeuille [hidden]) { display:none; }
  :where(html[data-g-page="home"] .agEtapeN[hidden]) { display:none; }
  :where(html[data-g-page="home"] #sheetPub.agentD .pubEnLigne) { display:none; }
  :where(html[data-g-page="home"] #sheetPub.agentD .pubBande) { display:none; }
  :where(html[data-g-page="home"] #sheetPub.agentD #pubEncoreBloc) { display:none; }
  :where(html[data-g-page="home"] #sheetPub.agentD.agentSansPhoto .pubPhotoBox) { display:none; }
  :where(html[data-g-page="home"] .agChoisi[hidden]) { display:none; }
  :where(html[data-g-page="home"] .agTVisite [hidden]) { display:none; }
  :where(html[data-g-page="home"] .agTVisite .agPhotosLien:not([hidden])) { display:block; }
  :where(html[data-g-page="home"].p1Agent.p1Commercial:not(.p1VoirMangeur):not(.p1Onboarding) #accueilMangeur) { display:none; }
  :where(html[data-g-page="home"] .p1Tournee [hidden]) { display:none; }
  :where(html[data-g-page="home"] .tourneeFeuille [hidden]) { display:none; }
  :where(html[data-g-page="home"].p1Connecte .p1Visiteur) { display:none; }
  :where(html[data-g-page="home"].p1Onboarding #vosCommerces) { display:none; }
  :where(html[data-g-page="home"].p1Onboarding #aujourdhuiVille) { display:none; }
  :where(html[data-g-page="home"].p1Onboarding .p1Visiteur) { display:none; }
  :where(html[data-g-page="home"].p1Connecte #profilVendeur) { display:block; }
  :where(html[data-g-page="home"].vendeurEntreeV1:not(.vendeurEntreePrete) #accueilVendeur .avGeste) { display:none; }
  :where(html[data-g-page="home"].vendeurEntreeV1 #btnDejaCommerce) { display:none; }
  :where(html[data-g-page="home"].vendeurEntreeV1 #btnDejaCommerce + .avAide) { display:none; }
  :where(html[data-g-page="home"] #vendeurEntree[hidden]) { display:none; }
  :where(html[data-g-page="home"] #pvCommerces) { display:none; }
  :where(html[data-g-page="home"].pvListe:not(.p1Onboarding) #pvCommerces) { display:block; }
  :where(html[data-g-page="home"].pvListe:not(.p1Onboarding) #btnProfilVendeur) { display:none; }
  :where(html[data-g-page="home"].p1Connecte .avSansSession) { display:none; }
  :where(html[data-g-page="home"].p1Connecte .avAvecSession) { display:inline; }
  :where(html[data-g-page="home"]:not(.p1Connecte):not(.p1Commercial):not(.p1Onboarding):not(.p1Candidat) #landing:not(.ov-page)) { display:block; }
  :where(html[data-g-page="home"].p1Candidat:not(.p1Connecte):not(.p1Commercial):not(.p1Onboarding) #candidatCarte) { display:block; }
  :where(html[data-g-page="home"] .landing .landingTitre::after) { display:block; }
  :where(html[data-g-page="home"]:not(:is(.p1Connecte, .p1Commercial, .p1Onboarding, .p1Candidat, .p1Agent, .mgCandidat)) #btnMine) { display:none; }
  :where(html[data-g-page="home"]:not(:is(.p1Connecte, .p1Commercial, .p1Onboarding, .p1Candidat, .p1Agent, .mgCandidat)) .landingLogin) { display:inline-flex; }
  :where(html[data-g-page="home"] .landingSticky[hidden]) { display:none; }
  :where(html[data-g-page="home"] body:has(.sheet.open) .landingSticky) { display:none; }
  :where(html[data-g-page="home"]:not(.p1Connecte):not(.p1Commercial):not(.p1Onboarding):not(.p1Candidat) .avPied) { display:none; }
  :where(html[data-g-page="home"]:not(.p1Onboarding) #vosCommerces) { display:none; }
  :where(html[data-g-page="home"]:not(.p1Onboarding) #aujourdhuiVille) { display:none; }
  :where(html[data-g-page="home"]:not(.p1Commercial) #devenirVendeur) { display:none; }
  :where(html[data-g-page="home"] #sheetMine.vendeurCompte .panel > :not(#mineTitle):not(#mineCompteBloc):not(#closeMine)) { display:none; }
  :where(html[data-g-page="home"] #sheetMine.vendeurCompte #mineCompteBloc > .mineRubrique) { display:none; }
  :where(html[data-g-page="home"] #sheetMine.vendeurCompte .mgRetrouver) { display:none; }
  :where(html[data-g-page="home"].p1Connecte #pvVoirManger) { display:none; }
  :where(html[data-g-page="home"].p1Connecte .avPied) { display:none; }
  :where(html[data-g-page="home"].p1Connecte #pvAjouter) { display:none; }
  :where(html[data-g-page="home"].p1Connecte #pvLiens) { display:none; }
  :where(html[data-g-page="home"].p1Connecte:not(.p1Onboarding) .pvAccueilSur) { display:block; }
  :where(html[data-g-page="home"].p1Connecte:not(.p1Onboarding) .pvAccueilLead) { display:block; }
  :where(html[data-g-page="home"] #accueilMangeur) { display:none; }
  :where(html[data-g-page="home"]:not(.p1Connecte):not(.p1Onboarding):not(.mgCandidat) #accueilMangeur) { display:block; }
  :where(html[data-g-page="home"].p1Connecte.p1VoirMangeur:not(.p1Onboarding) #accueilMangeur) { display:block; }
  :where(html[data-g-page="home"].p1VoirMangeur #pvVoirManger) { display:none; }
  :where(html[data-g-page="home"].p1Connecte #mgJeVends) { display:none; }
  :where(html[data-g-page="home"].p1Connecte #mgCommercial) { display:none; }
  :where(html[data-g-page="home"]:not(.mgVoirLanding) #landing:not(.ov-page)) { display:none; }
  :where(html[data-g-page="home"]:not(.p1Connecte):not(.p1Onboarding) #vosCommerces) { display:none; }
  :where(html[data-g-page="home"]:not(.p1Connecte):not(.p1Onboarding) #aujourdhuiVille) { display:none; }
  :where(html[data-g-page="home"]:not(.p1Connecte):not(.p1Onboarding) #devenirVendeur) { display:none; }
  :where(html[data-g-page="home"]:not(.p1Connecte):not(.p1Onboarding) .avPied) { display:none; }
  :where(html[data-g-page="home"].p1Onboarding:not(.p1Connecte) .mgVendreN.mgAvecCarte) { display:block; }
  :where(html[data-g-page="home"].p1PourAgent .mgRetrouverAgent) { display:inline; }
  :where(html[data-g-page="home"].p1PourAgent .mgRetrouverRepas) { display:none; }
  :where(html[data-g-page="home"].p1PourAgent #mgMesRepas) { display:none; }
  :where(html[data-g-page="home"].p1PourAgent #mgMesFavoris) { display:none; }
  :where(html[data-g-page="home"].p1PourAgent #mgVendre) { display:none; }
  :where(html[data-g-page="home"].p1PourAgent #mgPrenom) { display:none; }
  :where(html[data-g-page="home"].p1Agent #mgJeVends) { display:none; }
  :where(html[data-g-page="home"].p1Agent #mgCommercial) { display:none; }
  :where(html[data-g-page="home"] #sheetMine.mgMoi #mineCompteBloc > .mineRubrique) { display:none; }
  :where(html[data-g-page="home"] #sheetPub.mgRepas .pubEnLigne) { display:none; }
  :where(html[data-g-page="home"] #sheetPub.mgRepas .pubBande) { display:none; }
  :where(html[data-g-page="home"] #sheetPub.mgRepas #pubPhotoBox) { display:none; }
  :where(html[data-g-page="home"] #sheetPub.mgRepas #pubEncoreBloc) { display:none; }
  :where(html[data-g-page="public-menu"] .hero .zone:empty) { display:none; }
  :where(html[data-g-page="public-menu"] .hero.sansPhoto .heroOmbre) { display:none; }
  :where(html[data-g-page="public-menu"] #menu.sansCommande .qty) { display:none; }
  :where(html[data-g-page="public-menu"] .send.commande) { display:flex; }
  :where(html[data-g-page="public-menu"] .order[aria-disabled="true"]) { pointer-events:none; }
  :where(html[data-g-page="public-menu"] .outils [hidden]) { display:none; }
  :where(html[data-g-page="public-menu"] .horaires[hidden]) { display:none; }
  :where(html[data-g-page="public-menu"] #menu.listeCachee > .section) { display:none; }
  :where(html[data-g-page="public-menu"] #menu.listeCachee > details.section) { display:none; }
  :where(html[data-g-page="public-menu"] #menu.listeCachee > .voirGrille) { display:none; }
  :where(html[data-g-page="public-menu"]:not(.js) .feuille:target) { display:flex; }
  :where(html[data-g-page="public-menu"] .storyApercu[hidden]) { display:none; }
  :where(html[data-g-page="public-menu"] .viewer[hidden]) { display:none; }
  :where(html[data-g-page="public-menu"] #carrousel .plat .platNote) { display:none; }
  :where(html[data-g-page="public-menu"] .pcEntete.avecPhoto .pcEnteteOmbre) { display:block; pointer-events:none; }
  :where(html[data-g-page="public-menu"] .pcQuartier:empty) { display:none; }
  :where(html[data-g-page="public-menu"] .pcEnteteStable.avecPhoto .pcLogoPlaceholder) { visibility:hidden; }
  :where(html[data-g-page="public-menu"] .pcEntete.pcEnteteStable h1) { display:flex; }
  :where(html[data-g-page="public-menu"] .pcEntete.pcEnteteStable .pcQuartier) { display:block; }
  :where(html[data-g-page="public-menu"] .pcHeaderIcon::-webkit-details-marker) { display:none; }
  :where(html[data-g-page="public-menu"] .pcGrille[hidden]) { display:none; }
  :where(html[data-g-page="public-menu"] .pcPlat[hidden]) { display:none; }
  :where(html[data-g-page="public-menu"] .pcPlat::after) { pointer-events:none; }
  :where(html[data-g-page="public-menu"] .pcFeuillePhoto.pcPhotoRepli .pcPlatNom) { display:none; }
  :where(html[data-g-page="public-menu"] .pcPilules::-webkit-scrollbar) { display:none; }
  :where(html[data-g-page="public-menu"] .pcCompactPilules::-webkit-scrollbar) { display:none; }
  :where(html[data-g-page="public-menu"] .pcAussi[hidden]) { display:none; }
  :where(html[data-g-page="public-menu"] .pcLigne[hidden]) { display:none; }
  :where(html[data-g-page="public-menu"] .pcCompact[hidden]) { display:none; }
  :where(html[data-g-page="public-menu"] .pcRepasGrille.gal) { display:grid; }
  :where(html[data-g-page="public-menu"] .pcRepasGrille .item[hidden]) { display:none; }
  :where(html[data-g-page="public-menu"] body.pcFeuilleOuverte .bar) { display:none; }
  :where(html[data-g-page="sur-place"] [hidden]) { display:none; }
  :where(html[data-g-page="acces-v1"] [hidden]) { display:none; }
  :where(html[data-g-page="accompagnement-v1"] [hidden]) { display:none; }
  :where(html[data-g-page="contacts-v1"] [hidden]) { display:none; }
  :where(html[data-g-page="essai-gps"] .resultat.oui) { display:block; }
  :where(html[data-g-page="essai-gps"] .resultat.non) { display:block; }
  :where(html[data-g-page="preparer-v1"] [hidden]) { display:none; }
  @media (min-width: 720px) {
  :where(html[data-g-page="home"]:not(:is(.p1Connecte, .p1Commercial, .p1Onboarding, .p1Candidat, .p1Agent, .mgCandidat)) .landingHeaderCta) { display:inline-flex; }
  }
  @media print {
  :where(html[data-g-page="qr"] body[data-imprimer] .lot > :not(.aImprimer)) { display:none; }
  }
}

@layer g-accessibility {
  :where(html[data-g-page="public-menu"]):not(.js) .feuille:target { display:flex!important; }
}

@layer g-native {
/* Formation: shared DS compositions. --formation-haut is measured by the guide. */
html.formationActive body { padding-top:var(--formation-haut,72px)!important; }
html.formationActive :is(.panel,.feuilleCorps) { max-height:calc(100vh - var(--formation-haut,72px) - var(--g-space-3))!important; }
#formationCoach { position:fixed; inset:0 0 auto; z-index:2147483000; padding:var(--g-space-2) var(--g-space-3); background:var(--g-text); color:var(--g-on-action); font:var(--g-font-md)/var(--g-line-body) var(--g-font-sans); box-shadow:var(--g-shadow-floating); }
#formationCoach :is(.fcTete,.fcTexte) { max-width:var(--g-content-form); margin:0 auto; color:inherit; }
#formationCoach .fcTete { display:flex; align-items:center; justify-content:space-between; gap:var(--g-space-2); }
#formationCoach .fcEtape { margin:0; color:var(--g-warning-soft); font-size:var(--g-font-sm); font-weight:var(--g-weight-heading); text-transform:uppercase; }
#formationCoach .fcEtape.fcChapitre { text-transform:none; }
#formationCoach .fcTexte { font-weight:var(--g-weight-bold); }
#formationCoach .fcTexte.fcBravo { color:var(--g-success-soft); }
:is(.fcQuitter,.fwRetour,.faAnnuler) { min-width:var(--g-touch); min-height:var(--g-touch); padding:0 var(--g-space-1); border:0; background:transparent; color:var(--g-on-action); font:inherit; cursor:pointer; }
:is(.fcQuitter,.faAnnuler) { text-decoration:underline; }
.fwRetour { font-size:var(--g-font-h1); }
:is(.fcAction,.fwRevenir,.ffGestes a,.ffGestes button) { display:flex; align-items:center; justify-content:center; min-height:var(--g-control); padding:var(--g-space-2) var(--g-space-4); border:1px solid var(--g-action); border-radius:var(--g-radius-button); background:var(--g-action); color:var(--g-on-action); font:inherit; font-weight:var(--g-weight-bold); text-align:center; text-decoration:none; cursor:pointer; }
#formationCoach .fcAction { width:100%; max-width:var(--g-content-form); margin:var(--g-space-2) auto 0; }
:is(#formationWa,#formationAppareil,#formationFin,#formationCarte) { position:fixed; inset:var(--formation-haut,72px) 0 0; font:var(--g-font-md)/var(--g-line-body) var(--g-font-sans); }
#formationWa { z-index:2147482000; display:flex; flex-direction:column; background:var(--g-surface-soft); color:var(--g-text); }
#formationWa p { margin:0; }
.fwTete { display:flex; align-items:center; gap:var(--g-gap); min-height:56px; padding:var(--g-space-2) var(--g-space-3); background:var(--g-action); color:var(--g-on-action); }
.fwNom { display:block; font-weight:var(--g-weight-bold); }
.fwSous { display:block; font-size:var(--g-font-sm); }
.fwTete :is(.fwNom,.fwSous) { color:inherit; }
.fwAvatar { display:inline-flex; align-items:center; justify-content:center; flex:none; width:40px; height:40px; border-radius:var(--g-radius-pill); background:var(--g-action-soft); color:var(--g-action-ink); font-weight:var(--g-weight-heading); }
.fwContacts { background:var(--g-surface); }
.fwContacts button { display:flex; align-items:center; gap:var(--g-gap); width:100%; min-height:64px; padding:var(--g-space-2) var(--g-space-4); border:0; border-bottom:1px solid var(--g-border); background:var(--g-surface); color:var(--g-text); font:inherit; text-align:left; cursor:pointer; }
:is(.fwContacts,.fwNotif) .fwSous { color:var(--g-text-muted); }
.fwApercu { margin:var(--g-space-3)!important; padding:var(--g-space-3); border-radius:var(--g-radius-field); background:var(--g-surface); color:var(--g-text-muted); font-size:var(--g-font-sm); white-space:pre-wrap; overflow-wrap:anywhere; }
.fwFil { flex:1; min-height:0; display:flex; flex-direction:column; gap:var(--g-space-2); overflow-y:auto; padding:var(--g-space-3); }
.fwBandeau { align-self:center; padding:var(--g-space-1) var(--g-space-3); border-radius:var(--g-radius-sm); background:var(--g-warning-soft); color:var(--g-warning); font-size:var(--g-font-sm); }
.fwBulle { max-width:85%; padding:var(--g-space-2) var(--g-space-3); border-radius:var(--g-radius-field); background:var(--g-surface); color:var(--g-text); white-space:pre-wrap; overflow-wrap:anywhere; }
.fwBulle.moi { align-self:flex-end; background:var(--g-success-soft); }
.fwHeure { display:block; margin-top:var(--g-space-1); text-align:right; color:var(--g-text-muted); font-size:var(--g-font-xs); }
.fwReponses { display:flex; flex-direction:column; gap:var(--g-space-2); padding:var(--g-space-2) var(--g-space-3); }
.fwReponses button { min-height:var(--g-control); padding:var(--g-space-2) var(--g-space-4); border:1px solid var(--g-action-line); border-radius:var(--g-radius-button); background:var(--g-surface); color:var(--g-action-ink); font:inherit; font-weight:var(--g-weight-bold); text-align:left; cursor:pointer; }
.fwBas { display:flex; align-items:flex-end; gap:var(--g-space-2); padding:var(--g-space-2); background:var(--g-surface-soft); }
.fwCache { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
.fwSaisie { flex:1; min-width:0; min-height:var(--g-control); max-height:160px; padding:var(--g-space-3) var(--g-space-4); border:1px solid var(--g-border-control); border-radius:var(--g-radius-field); background:var(--g-surface); color:var(--g-text); font:inherit; resize:none; }
.fwEnvoyer { display:inline-flex; align-items:center; justify-content:center; flex:none; width:52px; height:52px; border:0; border-radius:var(--g-radius-pill); background:var(--g-action); color:var(--g-on-action); cursor:pointer; }
.fwRevenir { margin:var(--g-space-2) var(--g-space-3) var(--g-space-3); }
.fwNotif { position:fixed; inset:calc(var(--formation-haut,72px) + var(--g-space-2)) var(--g-space-2) auto; z-index:2147482500; display:flex; align-items:center; gap:var(--g-gap); min-height:64px; padding:var(--g-space-3); border:1px solid var(--g-border); border-radius:var(--g-radius-card); background:var(--g-surface); color:var(--g-text); box-shadow:var(--g-shadow-floating); font:var(--g-font-md)/var(--g-line-body) var(--g-font-sans); text-align:left; cursor:pointer; }
.fwIndice { margin:0 var(--g-space-3)!important; padding:var(--g-space-2) var(--g-space-3); border-radius:var(--g-radius-field); background:var(--g-error-soft); color:var(--g-error); font-size:var(--g-font-sm); font-weight:var(--g-weight-bold); }
#formationAppareil { z-index:2147482000; display:flex; flex-direction:column; align-items:center; justify-content:space-between; gap:var(--g-gap); padding:var(--g-card-padding); background:var(--g-text); color:var(--g-on-action); }
#formationAppareil.faFlash { animation:formationFlash .35s ease-out; }
@keyframes formationFlash { from { background:var(--g-surface); } to { background:var(--g-text); } }
@media (prefers-reduced-motion:reduce) { #formationAppareil.faFlash { animation:none; } }
.faTexte { margin:0; color:inherit; font-weight:var(--g-weight-bold); text-align:center; }
.faVue { width:100%; max-width:480px; border-radius:var(--g-radius-field); overflow:hidden; }
.faVue canvas { display:block; width:100%; height:auto; }
.faGestes { display:flex; align-items:center; justify-content:space-between; width:100%; max-width:480px; }
.faGestes>:not(.faDeclencheur) { flex:1; }
.faAnnuler { text-align:left; }
.faGestes .faDeclencheur { flex:none; width:80px; height:80px; border:6px solid color-mix(in srgb,var(--g-on-action) 45%,transparent); border-radius:var(--g-radius-pill); background:var(--g-surface); background-clip:padding-box; cursor:pointer; }
:is(#formationFin,#formationCarte) { z-index:2147482600; overflow-y:auto; padding:var(--g-space-6) var(--g-gutter) var(--g-space-8); background:var(--g-background); color:var(--g-text); }
:is(#formationFin,#formationCarte) .ffCorps { max-width:var(--g-content-form); margin:0 auto; }
:is(#formationFin,#formationCarte) h2 { margin:0 0 var(--g-space-2); color:inherit; font:var(--g-weight-heading) var(--g-font-h1)/var(--g-line-heading) var(--g-font-sans); }
:is(#formationFin,#formationCarte) ul { margin:0 0 var(--g-space-5); padding-left:var(--g-space-5); }
:is(#formationFin,#formationCarte) li { margin-bottom:var(--g-space-2); color:inherit; }
.ffGestes { display:flex; flex-direction:column; gap:var(--g-gap); }
.ffGestes .ffContour { border-color:var(--g-action-line); background:var(--g-surface); color:var(--g-action-ink); }
#formationCarte .fkListe { padding:0; list-style:none; border-top:1px solid var(--g-border); }
#formationCarte .fkListe li { display:flex; justify-content:space-between; gap:var(--g-gap); margin:0; padding:var(--g-space-3) 0; border-bottom:1px solid var(--g-border); }
#formationCarte :is(.fkNom,.fkPhrase) { font-weight:var(--g-weight-bold); }
#formationCarte .fkEtat { color:var(--g-text-muted); text-align:right; }
#formationCarte .fkEtat-a_aider { color:var(--g-warning); font-weight:var(--g-weight-heading); }
#formationCarte .fkNote { margin:0 0 var(--g-space-3); color:var(--g-text-muted); font-size:var(--g-font-sm); }
#formationCarte .fkPhrase { margin:0; color:inherit; }
.agentPhotoChoiceView { min-width:0; }

}
/* Presentation of native templates; dynamic image URLs and chart heights
   stay in their native handlers, all decorative values belong to the DS. */
@layer g-native {
  .omq-text-caption { font-size:var(--g-font-xs); }
  .omq-no-wrap { white-space:nowrap; }
  .omq-text-note { color:var(--g-text-muted); font-size:var(--g-font-sm); }
  .omq-text-muted { color:var(--g-text-muted); }
  .omq-space-none { margin:0; }
  .omq-space-before { margin-top:var(--g-space-3); }
  .omq-space-after { margin-bottom:var(--g-space-2); }
  .omq-offer-amount { margin:var(--g-space-3) 0 0; color:var(--g-action); font-size:var(--g-font-h2); }
  .omq-stat-heading { margin:0 0 var(--g-space-1); font-weight:var(--g-weight-medium); }
  .omq-stat-chart { display:flex; align-items:flex-end; gap:2px; height:40px; margin-top:var(--g-space-4); }
  .omq-stat-bar { flex:1; border-radius:var(--g-radius-sm) var(--g-radius-sm) 0 0; background:var(--g-text); }
  .omq-stat-axis { display:flex; justify-content:space-between; margin:var(--g-space-1) 0 0; font-size:var(--g-font-xs); color:var(--g-text-muted); }
  .omq-photo-preview--menu { max-height:220px; }
  .omq-photo-preview--batch { max-height:140px; }
  .omq-menu-photo-fields { min-width:0; padding:0; margin:0; border:0; }
  .kBande--neutral { background:var(--g-border-control); }
  .kApercuHaut { background-image:linear-gradient(180deg,color-mix(in srgb,var(--g-text) 15%,transparent),color-mix(in srgb,var(--g-text) 80%,transparent)),var(--omq-preview-photo,none); background-size:cover; background-position:center; }
}
/* Generated not-found, country and retired-link pages share one quiet layout. */
@layer g-native {
  .omq-notice>.top { display:flex; align-items:center; min-height:var(--g-header-height); padding:var(--g-space-3) var(--g-gutter); border-bottom:1px solid var(--g-border); background:var(--g-background); }
  .omq-notice>.top .marque { color:var(--g-text); font-weight:var(--g-weight-heading); text-decoration:none; }
  :is(.omq-notice>.wrap,.omq-notice-body) { width:100%; max-width:var(--g-content-form); margin-inline:auto; padding:var(--g-space-8) var(--g-gutter); }
  .omq-notice .gestes { display:grid; gap:var(--g-gap); }
  .omq-notice .retour { display:flex; align-items:center; justify-content:center; min-height:var(--g-control); padding:var(--g-space-3) var(--g-space-4); border:1px solid var(--g-text); border-radius:var(--g-radius-button); background:var(--g-text); color:var(--g-on-action); font-weight:var(--g-weight-bold); text-decoration:none; }
  .omq-notice :is(.villes,.autour) { margin-block:var(--g-stack); padding:0; list-style:none; }
  .omq-notice :is(.villes,.autour) li { border-bottom:1px solid var(--g-border); }
  .omq-notice :is(.villes,.autour) a { display:flex; align-items:center; min-height:var(--g-row-height); gap:var(--g-gap); padding:var(--g-space-3) 0; }
  .omq-notice :is(.sub,.avant,.pasEncore,.pied) { color:var(--g-text-muted); }
  .omq-demo-unavailable { position:fixed; inset:0 0 auto; z-index:2147483647; margin:0; padding:var(--g-space-3) var(--g-gutter); background:var(--g-text); color:var(--g-on-action); font:var(--g-weight-medium) var(--g-font-md)/var(--g-line-body) var(--g-font-sans); }
}


/* Current native entry is authoritative over older visitor-mode branches. */
@layer g-accessibility {
  :where(html[data-g-page="home"].firstDishLanding) #landing:not(.ov-page) { display:block; }
  :where(html[data-g-page="home"].firstDishLanding) .top { padding-block:var(--g-space-2); }
  :where(html[data-g-page="home"].firstDishLanding) .top .marque { display:flex; align-items:center; gap:var(--g-space-2); }
  :where(html[data-g-page="home"].firstDishLanding) .top .marque img { width:40px; height:40px; }
  :where(html[data-g-page="home"].firstDishLanding) .g-landing { container-type:inline-size; }
  :where(html[data-g-page="home"].firstDishLanding) .g-landing h1 { font-size:min(2.125rem, 12.5cqi); }
  :where(html[data-g-page="home"].firstDishLanding) .landingMarqueNom { display:block; }
  :where(html[data-g-page="home"].firstDishLanding) #landingLogin { display:inline-flex; }
}

/* Native commercial documents compose the shared design system. */
@layer g-compositions {
/* OMQ documents compose canonical primitives; no separate design tokens. */
.sales-toolbar { display:flex;flex-wrap:wrap;gap:var(--g-gap);align-items:center; }
.sales-toolbar > * { flex:1 1 130px; }
.sales-toolbar :where(.g-button, .bouton, .boutonContour, .omq-btn, .oc-btn, .oc-add, button.send, button.commander, button.order, .omq-pm-mini, .agentButton, .fd-primary) { min-inline-size:min-content;max-inline-size:100%;overflow-wrap:normal;word-break:normal; }
.sales-steps { display:flex;gap:var(--g-space-2);padding:0;list-style:none;flex-wrap:wrap; }
.sales-steps li { flex:1 1 auto;min-width:max-content;white-space:nowrap;border-bottom:2px solid var(--g-border);padding-block:var(--g-space-2);font-size:var(--g-font-sm); }
#devis-notice:empty { display:none; }
.sales-steps [aria-current=step] { border-color:var(--g-action);font-weight:var(--g-weight-bold); }
.sales-line { display:flex;flex-wrap:wrap;gap:var(--g-space-2);align-items:center;justify-content:space-between;padding-block:var(--g-space-2);border-bottom:1px solid var(--g-border); }
.sales-line > * { min-width:0; }
.sales-line > :first-child { flex:1 1 8rem; }
.sales-line > :last-child { flex:0 1 auto; }
.sales-line strong { display:block; }
.sales-table { overflow-x:auto; }
.sales-table table { width:100%;border-collapse:collapse;font-size:var(--g-font-sm); }
.sales-table :is(th,td) { padding:var(--g-space-2);text-align:left;border-bottom:1px solid var(--g-border);overflow-wrap:anywhere; }
.sales-table td:nth-child(1) { min-width:90px; }
.sales-total { font-size:var(--g-font-lg);font-weight:var(--g-weight-bold); }
.sales-note { white-space:pre-wrap; }
.sales-preview > header { border-bottom:1px solid var(--g-border); }
.sales-public { padding-block:var(--g-space-4); }
.sales-public :where(.g-card, .omq-dish, .omq-panel, .oc-meal, .oc-panel, .order-panel, .rv-panel, .rv-card, .pcPlat, .carte, .omq-pm-list.is-public>.omq-pm-item, .agentCard, .agentPanel, .agentProposal, .agCarte, .avBloc, .mmBloc, .fd-card, .pendingProposals, .accountSecurity, .bloc, .oc-info) { min-width:0; }
.sales-document-button { width:100%;justify-content:space-between;text-align:left; }
@media screen and (max-width:480px) {
 .sales-table thead { position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden; }
 .sales-table :is(table,tbody) { display:block; }
 .sales-table tr { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);padding-block:var(--g-space-2);border-bottom:1px solid var(--g-border); }
 .sales-table td { display:block;padding:var(--g-space-1);min-width:0!important;border:0; }
 .sales-table td:first-child { grid-column:1/-1;font-weight:var(--g-weight-bold); }
 .sales-table td:nth-child(2)::before { content:'Qté : '; }
 .sales-table td:nth-child(3) { grid-column:1/-1; }
 .sales-table td:nth-child(3)::before { content:'Prix : '; }
 .sales-table td:nth-child(4) { grid-column:1/-1; }
 .sales-table td:nth-child(4)::before { content:'Total : '; }
}
@media print {
 body { background:white; }
 #sales-print, .sales-share-actions, header:not(.sales-preview header), nav, footer { display:none!important; }
 .sales-public { max-width:none;padding:0; }
 .sales-public :where(.g-card, .omq-dish, .omq-panel, .oc-meal, .oc-panel, .order-panel, .rv-panel, .rv-card, .pcPlat, .carte, .omq-pm-list.is-public>.omq-pm-item, .agentCard, .agentPanel, .agentProposal, .agCarte, .avBloc, .mmBloc, .fd-card, .pendingProposals, .accountSecurity, .bloc, .oc-info) { border:0;box-shadow:none; }
 .sales-table { overflow:visible; }
}

}

/* Canonical primitives: native HTML semantics, no application or business logic.
   Selectors are expanded from each app's explicit compatibility map at build. */
@layer g-reset {
  *, *::before, *::after { box-sizing: border-box; }
  html { color-scheme: light; scroll-padding-block: var(--g-space-6); }
  body { min-height:100dvh; margin:0; display:flex; flex-direction:column; background:var(--g-background); color:var(--g-text); font:var(--g-font-md)/var(--g-line-body) var(--g-font-sans); overflow-wrap:anywhere; }
  html, body, body * { scrollbar-width:none; }
  ::-webkit-scrollbar { display:none; }
  button, input, select, textarea { font: inherit; max-width: 100%; }
  a { color: var(--g-action); text-underline-offset: 3px; }
  h1, h2, h3 { font-family: var(--g-font-sans); line-height: var(--g-line-heading); color: var(--g-text); overflow-wrap: anywhere; }
  h1 { font-size: var(--g-font-h1); font-weight: var(--g-weight-heading); margin-block: var(--g-space-3) var(--g-space-4); letter-spacing: -.015em; }
  h2 { font-size: var(--g-font-h2); font-weight: var(--g-weight-heading); margin-block: var(--g-space-5) var(--g-space-3); letter-spacing: -.01em; }
  h3 { font-size: var(--g-font-lg); margin-block: var(--g-space-3) var(--g-space-2); }
  p { margin-block: var(--g-space-2); }
  img { max-width: 100%; }
  button, a, input, select, textarea, summary { touch-action: manipulation; }
}
@layer g-components {
  .g-photo-tiles { display:flex; flex-wrap:wrap; gap:var(--g-space-2); list-style:none; margin:0; padding:0; }
  .g-photo-tiles > li { flex:none; width:88px; height:88px; margin:0; padding:0; }
  .g-photo-add { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:var(--g-space-1); width:88px; height:88px; margin:0; padding:4px; border:2px dashed var(--g-border-control); border-radius:var(--g-radius-field); background:var(--g-surface); color:var(--g-action-ink); font:var(--g-weight-bold) var(--g-font-xs)/1.2 var(--g-font-sans); text-align:center; cursor:pointer; }
  .g-photo-add svg { flex:none; width:20px; height:20px; }
  .g-photo-add:focus-within { outline:2px solid var(--g-focus); outline-offset:2px; }
  .g-photo-add:has(input:disabled) { background:var(--g-disabled); color:var(--g-disabled-text); cursor:not-allowed; }
  .g-photo-tiles :where(.g-composite-control, .omq-pm-kpi-open:not(.ov-stat4), .omq-open) { width:100%; height:100%; padding:0; overflow:hidden; border:1px solid var(--g-border); border-radius:var(--g-radius-field); background:var(--g-surface-soft); }
  .g-photo-tiles img { display:block; width:100%; height:100%; object-fit:cover; }
  .g-photo-options { margin-top:var(--g-space-2); }
  .g-photo-options > summary { display:flex; align-items:center; min-height:var(--g-touch); color:var(--g-action-ink); font-size:var(--g-font-sm); cursor:pointer; }
  /* Review geometry is shared; each native application owns data and edits. */
  .g-review-list { list-style: none; padding: 0; margin: 0; border: 1px solid var(--g-border); border-radius: 14px; overflow: hidden; background: var(--g-surface); }
  .g-review-row { display: grid; grid-template-columns: 44px minmax(0,1fr) auto; gap: 8px; align-items: center; min-height: 64px; padding: 0 8px; border: 0; border-radius: 0; background: transparent; }
  .g-review-row + .g-review-row { border-top: 1px solid var(--g-border); }
  .g-review-select { display: flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; margin: 0; padding: 0; }
  .g-review-select input[type="checkbox"] { width: 24px; height: 24px; margin: 0; }
  .g-review-edit { display: flex; align-items: center; justify-content: space-between; gap: 8px; width: 100%; min-width: 0; min-height: 64px; border: 0; background: transparent; padding: 6px 0; text-align: left; font-size: 16px; font-weight: 400; }
  .g-review-name { min-width: 0; display: grid; gap: 2px; overflow-wrap: anywhere; line-height: 1.25; }
  .g-review-name small { font-size: 14px; color: var(--g-text-muted); }
  .g-review-price { flex-shrink: 0; font-size: 16px; white-space: nowrap; color: var(--g-text); }
  .g-review-row--stacked { grid-template-columns: 36px minmax(0,1fr) auto; gap: 6px; }
  .g-review-row--stacked .g-review-select { min-width: 36px; }
  .g-review-row--stacked .g-review-name { font-size: 16px; gap: 2px; }
  .g-review-row--stacked .g-review-name > strong { font-weight: 700; }
  .g-review-row--stacked .g-review-price { font-weight: 400; white-space: normal; }
  .g-review-modify { min-width: 72px; min-height: 44px; padding: 8px 12px; border: 1px solid var(--g-border-control); border-radius: var(--g-radius-button); background: var(--g-surface); color: var(--g-text); font: 400 15px/1.2 var(--g-font-sans); }
  .g-flow-state { padding: 14px 16px; border: 1px solid var(--g-border); border-radius: 12px; background: var(--g-surface-soft); font-size: 15px; line-height: 1.4; }
  .g-flow-state > strong { display: block; margin-bottom: 4px; font-size: 16px; }
  .g-flow-state[data-tone="error"] { border-color: var(--g-error); }
  .g-flow-state[data-tone="error"] > strong { color: var(--g-error); }
  .g-flow-state[aria-busy="true"]::before { content: ""; float: left; width: 20px; height: 20px; margin: 2px 12px 0 0; border: 3px solid var(--g-border); border-top-color: var(--g-action); border-radius: 50%; animation: g-spin 800ms linear infinite; }
  /* Real buttons and the existing link-buttons use this same primitive. Switch
     rails and image crop handles retain their specialized native composition. */
  :where(button:not([role="switch"]):not(:where(.g-composite-control, .omq-pm-kpi-open:not(.ov-stat4), .omq-open)), :where(.g-button, .bouton, .boutonContour, .omq-btn, .oc-btn, .oc-add, button.send, button.commander, button.order, .omq-pm-mini, .agentButton, .fd-primary)) {
    display: inline-flex; align-items: center; justify-content: center; gap: var(--g-space-2);
    min-height: var(--g-control); min-width: 0; max-width: 100%; padding: var(--g-space-2) var(--g-space-3);
    border: 1px solid var(--g-border-control); border-radius: var(--g-radius-button);
    background: var(--g-surface); color: var(--g-text); font: var(--g-weight-bold) var(--g-font-md)/1.2 var(--g-font-sans);
    text-decoration: none; white-space: normal; overflow-wrap: anywhere; cursor: pointer; box-shadow: var(--g-shadow);
    transition: background-color var(--g-motion-duration) var(--g-motion-easing), border-color var(--g-motion-duration) var(--g-motion-easing);
  }
  /* A statistic tile or custom photo handle is a composition, not an ordinary
     button. It retains its layout; shared colour tokens and focus still apply. */
  /* Readiness changes immediately: a white label must not pass through a pale
     intermediate background when a disabled primary action becomes available. */
  :where(.g-button--primary, .bouton:not(.fantome):not(.danger), .primary, button.send, button.commander, button.order, .oc-add, .omq-pm-mini.is-strong, .agentButton:not(.secondary):not(.danger), .fd-primary) { background: var(--g-action); border-color: var(--g-action); color: var(--g-on-action); transition:none; }
  .g-button--tonal { background: var(--g-action-soft); border-color: transparent; color: var(--g-action-ink); }
  :where(.g-button--quiet, .bouton.fantome, .omq-pm-linkbtn, .omq-pm-back, .omq-pm-mini.is-quiet, .lienBouton) { border-color: transparent; background: transparent; color: var(--g-action); }
  :where(.g-button--destructive, .bouton.danger, .oc-btn.danger, button.danger) { background: var(--g-error-soft); border-color: var(--g-error); color: var(--g-error); }
  :where(.g-button--icon, .repasFermer, .pcFermer, .oc-icon, #pm-share) { width: var(--g-touch); min-width: var(--g-touch); min-height: var(--g-touch); padding: var(--g-space-2); flex: none; }
  @media (hover: hover) {
    :where(button:not([role="switch"]):not(:where(.g-composite-control, .omq-pm-kpi-open:not(.ov-stat4), .omq-open)), :where(.g-button, .bouton, .boutonContour, .omq-btn, .oc-btn, .oc-add, button.send, button.commander, button.order, .omq-pm-mini, .agentButton, .fd-primary)):where(:not(:disabled):not([aria-disabled="true"])):hover { border-color: var(--g-action); }
    :where(.g-button--primary, .bouton:not(.fantome):not(.danger), .primary, button.send, button.commander, button.order, .oc-add, .omq-pm-mini.is-strong, .agentButton:not(.secondary):not(.danger), .fd-primary):not(:disabled):hover { background: var(--g-action-hover); }
    :where(.g-button--quiet, .bouton.fantome, .omq-pm-linkbtn, .omq-pm-back, .omq-pm-mini.is-quiet, .lienBouton):hover { border-color: transparent; background: var(--g-action-soft); }
  }
  :is(button:not([role="switch"]):not(:where(.g-composite-control, .omq-pm-kpi-open:not(.ov-stat4), .omq-open)), :where(.g-button, .bouton, .boutonContour, .omq-btn, .oc-btn, .oc-add, button.send, button.commander, button.order, .omq-pm-mini, .agentButton, .fd-primary)):is(:disabled, [aria-disabled="true"]) { background: var(--g-disabled); color: var(--g-disabled-text); border-color: var(--g-border); cursor: not-allowed; opacity: 1; }
  :is(button:not([role="switch"]):not(:where(.g-composite-control, .omq-pm-kpi-open:not(.ov-stat4), .omq-open)), :where(.g-button, .bouton, .boutonContour, .omq-btn, .oc-btn, .oc-add, button.send, button.commander, button.order, .omq-pm-mini, .agentButton, .fd-primary))[aria-pressed="true"] { background: var(--g-text); color: var(--g-surface); border-color: var(--g-text); }
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="hidden"]):not([type="file"]), select, textarea, .g-field {
    width: 100%; min-width: 0; max-width: 100%; min-height: var(--g-control); padding: var(--g-space-3);
    border: 1px solid var(--g-border-control); border-radius: var(--g-radius-field);
    background: var(--g-surface); color: var(--g-text); font: var(--g-font-md)/var(--g-line-body) var(--g-font-sans);
  }
  textarea { min-height: 112px; resize: vertical; }
  :is(input, select, textarea)[aria-invalid="true"] { border-color: var(--g-error); }
  :is(input, select, textarea):disabled { background: var(--g-disabled); color: var(--g-disabled-text); }
  input:is([type="checkbox"], [type="radio"]) { width: 20px; height: 20px; min-height: 0; flex: none; accent-color: var(--g-action); }
  label:has(> input:is([type="checkbox"], [type="radio"])) { display: flex; align-items: center; gap: var(--g-space-2); min-height: var(--g-touch); }
  input[type="range"], input[type="file"], [role="switch"] { min-height: var(--g-touch); accent-color: var(--g-action); }
  .g-choice-group { display: flex; flex-wrap: wrap; gap: var(--g-space-2); margin: var(--g-space-3) 0; padding: 0; border: 0; min-width: 0; }
  .g-choice-group > legend { padding: 0; margin-bottom: var(--g-space-2); font-weight: var(--g-weight-medium); }
  .g-choice-group > label { display: flex; flex: 1 1 120px; align-items: center; gap: var(--g-space-2); min-height: var(--g-touch); padding: var(--g-space-2); border: 1px solid var(--g-border-control); border-radius: var(--g-radius-field); font-weight: var(--g-weight-normal); }
  .g-choice-group > label:has(input:checked) { border-color: var(--g-action); background: var(--g-action-soft); color: var(--g-text); }
  .g-choice-group > label:focus-within { outline: 3px solid var(--g-focus); outline-offset: 2px; }
  .g-switch { display: inline-flex; align-items: center; justify-content: space-between; gap: var(--g-space-2); min-width: var(--g-touch); min-height: var(--g-touch); padding: var(--g-space-1); border: 0; background: transparent; color: var(--g-text); font: inherit; cursor: pointer; }
  .g-switch::before { display: none; }
  .g-switch--stacked { flex-direction: column; justify-content: center; }
  .g-switch-track { position: relative; display: block; flex: none; width: 40px; height: 24px; border-radius: var(--g-radius-pill); background: var(--g-text-muted); }
  .g-switch-track::after { display: none; }
  .g-switch-thumb { position: absolute; display: block; top: 3px; left: 3px; width: 18px; height: 18px; border-radius: var(--g-radius-pill); background: var(--g-on-action); transition: transform var(--g-motion-duration) var(--g-motion-easing); }
  .g-switch[aria-checked="true"] .g-switch-track { background: var(--g-success); }
  .g-switch[aria-checked="true"] .g-switch-thumb { transform: translateX(16px); left: 3px; }
  .g-switch:disabled { opacity: .6; cursor: not-allowed; }
  :where(.g-card, .omq-dish, .omq-panel, .oc-meal, .oc-panel, .order-panel, .rv-panel, .rv-card, .pcPlat, .carte, .omq-pm-list.is-public>.omq-pm-item, .agentCard, .agentPanel, .agentProposal, .agCarte, .avBloc, .mmBloc, .fd-card, .pendingProposals, .accountSecurity, .bloc, .oc-info) { min-width: 0; background: var(--g-surface); color: var(--g-text); border: 1px solid var(--g-border); border-radius: var(--g-radius-card); box-shadow: var(--g-shadow); padding: var(--g-card-padding); }
  :where(.g-media-card, .oc-meal, .pcPlat, .omq-dish) { padding: 0; }
  :where(.g-card, .omq-dish, .omq-panel, .oc-meal, .oc-panel, .order-panel, .rv-panel, .rv-card, .pcPlat, .carte, .omq-pm-list.is-public>.omq-pm-item, .agentCard, .agentPanel, .agentProposal, .agCarte, .avBloc, .mmBloc, .fd-card, .pendingProposals, .accountSecurity, .bloc, .oc-info) > :where(.g-card, .omq-dish, .omq-panel, .oc-meal, .oc-panel, .order-panel, .rv-panel, .rv-card, .pcPlat, .carte, .omq-pm-list.is-public>.omq-pm-item, .agentCard, .agentPanel, .agentProposal, .agCarte, .avBloc, .mmBloc, .fd-card, .pendingProposals, .accountSecurity, .bloc, .oc-info) { border: 0; border-radius: 0; box-shadow: none; }
  /* Claude reference, 18 October: one flush list; the native destinations,
     disclosure state and account checks remain in the applications. */
  .g-more-panel { min-width:0; padding:0; margin-block:var(--g-stack); background:var(--g-surface); border:1px solid var(--g-border); border-radius:var(--g-radius-card); }
  .g-more-row, .g-more-panel > a, .g-more-settings :is(a,.g-more-row) { display:flex; flex-direction:row; align-items:center; gap:var(--g-gap); width:100%; min-height:var(--g-row-height); margin:0; padding:var(--g-vertical-space) var(--g-card-padding); border:0; border-bottom:1px solid var(--g-border); border-radius:0; background:transparent; color:var(--g-text); text-decoration:none; justify-content:space-between; font-family:var(--g-font-sans); font-weight:var(--g-weight-medium); text-align:left; }
  .g-more-row svg, .g-more-panel > a svg { width:20px; height:20px; flex:none; }
  .g-more-panel > a::after, .g-more-settings a.g-more-row::after, .g-more-settings > a::after { content:""; flex:none; width:8px; height:8px; margin-inline:var(--g-space-1); border-top:2px solid currentColor; border-right:2px solid currentColor; transform:rotate(45deg); }
  .g-more-panel > :is(a,.g-more-row), .g-more-settings :is(a,.g-more-row) { flex-wrap:nowrap; }
  .g-more-panel > button.g-more-row::after { content:""; flex:none; width:8px; height:8px; margin-inline:var(--g-space-1); border-top:2px solid currentColor; border-right:2px solid currentColor; transform:rotate(45deg); }
  .g-more-row > span { display:inline-flex; align-items:center; gap:var(--g-gap); min-width:0; }
  .g-more-panel > a:first-child { border-start-start-radius:var(--g-radius-card); border-start-end-radius:var(--g-radius-card); }
  .g-more-panel > a:last-child { border-end-start-radius:var(--g-radius-card); border-end-end-radius:var(--g-radius-card); }
  .g-more-panel > :is(a,.g-more-row):last-child, .g-more-settings :is(a,.g-more-row):last-child { border-bottom:0; }
  .g-more-panel > details { margin:0; padding:0; border:0; border-bottom:1px solid var(--g-border); border-radius:0; }
  .g-more-panel > details > summary { flex-direction:row; min-height:var(--g-row-height); padding:var(--g-vertical-space) var(--g-card-padding); font-weight:var(--g-weight-bold); }
  .g-more-display > summary { text-align:left; justify-content:space-between; }
  .g-more-display[open] > summary, .g-more-settings[open] > summary { background:var(--g-surface); }
  .g-more-panel :is(.g-more-display,.g-more-settings) p { font-size:var(--g-font-sm); color:var(--g-text-muted); margin:var(--g-space-2) var(--g-card-padding); }
  .g-more-settings > :is(a,.g-more-row) { padding-inline-start:calc(var(--g-card-padding) + var(--g-space-3)); }
  .g-more-settings > a:first-of-type { border-top:1px solid var(--g-border); }
  .g-list { list-style: none; padding: 0; margin: 0; }
  .g-list > li + li, .g-divider { border-top: 1px solid var(--g-border); }
  :where(.g-badge, .omq-badge, .oc-pill, .pcPilule) { display: inline-flex; align-items: center; gap: var(--g-space-1); min-height:26px; padding: var(--g-space-1) 10px; border-radius: var(--g-radius-pill); background: var(--g-surface-soft); color: var(--g-text-muted); font-size: var(--g-font-xs); font-weight:var(--g-weight-bold); line-height: var(--g-line-body); }
  .g-alert { padding: var(--g-space-3); border: 1px solid var(--g-border); border-radius: var(--g-radius-field); background: var(--g-info-soft); color: var(--g-info); }
  .g-alert[data-tone="success"] { background: var(--g-success-soft); color: var(--g-success); }
  .g-alert[data-tone="warning"] { background: var(--g-warning-soft); color: var(--g-warning); }
  .g-alert[data-tone="error"], .g-field-error { color: var(--g-error); }
  .g-alert[data-tone="error"] { background: var(--g-error-soft); }
  :where(.g-muted, .omq-pm-muted, .legende) { color: var(--g-text-muted); }
  .g-empty, .g-status { padding: var(--g-space-4); color: var(--g-text-muted); }
  .g-status[aria-busy="true"]::before { content: ""; display: inline-block; width: 1em; height: 1em; margin-right: var(--g-space-2); border: 2px solid var(--g-border-control); border-top-color: var(--g-action); border-radius: 50%; animation: g-spin 800ms linear infinite; }
  @keyframes g-spin { to { transform: rotate(360deg); } }
  summary { min-height: var(--g-touch); padding-block: var(--g-space-3); cursor: pointer; font-weight: var(--g-weight-medium); }
  :where(.g-accordion, .omqAccordion, .omq-pm details:not(.omq-pm-price):not(.ov-details), #rangerPlats, #organiserMenu) > summary { display: flex; align-items: center; justify-content: space-between; gap: var(--g-space-2); list-style: none; }
  :where(.g-accordion, .omqAccordion, .omq-pm details:not(.omq-pm-price):not(.ov-details), #rangerPlats, #organiserMenu) > summary::-webkit-details-marker { display: none; }
  :where(.g-accordion, .omqAccordion, .omq-pm details:not(.omq-pm-price):not(.ov-details), #rangerPlats, #organiserMenu) > summary::after { content: ""; flex: none; width: 9px; height: 9px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); margin-inline: var(--g-space-2); }
  :where(.g-accordion, .omqAccordion, .omq-pm details:not(.omq-pm-price):not(.ov-details), #rangerPlats, #organiserMenu)[open] > summary::after { transform: rotate(225deg); }
  dialog.g-dialog { width: min(calc(100% - 24px), var(--g-content-form)); max-height: calc(100dvh - 32px); padding: var(--g-space-5); border: 1px solid var(--g-border); border-radius: var(--g-radius-card); background: var(--g-background); color: var(--g-text); box-shadow: var(--g-shadow-floating); overflow-y: auto; z-index: var(--g-z-modal); }
  dialog.g-dialog::backdrop { background: rgb(66 40 28 / 45%); }
  .g-dialog-actions { display: flex; flex-wrap: wrap; gap: var(--g-space-2); justify-content: flex-end; margin-top: var(--g-space-4); }
  .g-toast { position: fixed; inset-inline: var(--g-gutter); bottom: calc(var(--g-nav-height) + env(safe-area-inset-bottom) + var(--g-space-2)); z-index: var(--g-z-toast); max-width: var(--g-content-reading); margin-inline: auto; padding: var(--g-space-3); border: 1px solid var(--g-border); border-radius: var(--g-radius-field); background: var(--g-surface); color: var(--g-text); box-shadow: var(--g-shadow-floating); }
}
@layer g-layout {
  :where(.g-container, body.omqSeller > .wrap, body.omqSeller > main.wrap, #landing:not(.ov-page)) { width: 100%; min-width: 0; max-width: var(--g-content-wide); margin-inline: auto; padding-inline: var(--g-gutter); }
  :where(.g-container, body.omqSeller > .wrap, body.omqSeller > main.wrap, #landing:not(.ov-page)):has(:where(.g-navigation, .vendeurNavigation:not(.ov-tabbar), .omq-nav)) { padding-top: 0; }
  .g-workspace-content { margin-block: 0; }
  .g-form { max-width: var(--g-content-form); margin-inline: auto; }
  .g-stack { display: grid; gap: var(--g-stack); min-width: 0; }
  .g-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: var(--g-gap); }
  .g-row { display: flex; align-items: center; flex-wrap: wrap; gap: var(--g-gap); }
  :where(.g-search, .oc-menu-search, #sellerCatalogueSearch:not(.ov-search)) { display: flex; flex-wrap: nowrap; align-items: center; gap: var(--g-space-2); min-width: 0; width: 100%; margin-block: var(--g-space-3); }
  :where(.g-search, .oc-menu-search, #sellerCatalogueSearch:not(.ov-search)) > label { flex: 1 1 0; min-width: 0; margin: 0; }
  :where(.g-search, .oc-menu-search, #sellerCatalogueSearch:not(.ov-search)) input[type="search"] { flex:1 1 0; width:100%; min-width:0; height:var(--g-control); margin:0; padding-block:0; }
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="hidden"]):not([type="file"]), select { height:var(--g-control); padding-block:0; }
  :where(.g-search, .oc-menu-search, #sellerCatalogueSearch:not(.ov-search)) > :is(button, a) { flex: none; width: auto; min-height: var(--g-control); font-size: var(--g-font-sm); }
  .g-search-clear { width: var(--g-touch); min-width: var(--g-touch); text-align: center; }
  .g-search--inline { gap: 0; min-height: var(--g-control); padding: 0 var(--g-space-1) 0 var(--g-space-3); border: 1px solid var(--g-border-control); border-radius: var(--g-radius-pill); background: var(--g-surface); }
  .g-search--inline:focus-within { outline: 2px solid var(--g-focus); outline-offset: 2px; }
  .g-search--inline > svg { flex: none; width: 20px; height: 20px; margin-right: var(--g-space-2); }
  .g-search--inline input[type="search"] { min-height: var(--g-touch); padding-inline: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
  .g-search--inline > :is(button, a) { display: inline-flex; align-items: center; justify-content: center; width: var(--g-touch); min-height: var(--g-touch); margin: 0; padding: 0; border: 0; background: transparent; color: var(--g-action); }
  .g-search--inline > :is(button, a) > svg { width: 20px; height: 20px; flex: none; }
  .g-search--inline > button[type="submit"] { order:-1; }
  :where(.g-offer-grid, .oc-grid, #blocPlats ul.plats:not(.ov-pgrid)) { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: var(--g-gap); padding: 0; list-style: none; }
  :where(.g-management-list, #blocPlats ul.plats:not(.ov-pgrid)) { grid-template-columns: minmax(0, 1fr); }
  :where(.g-offer-main, .omq-dish-top, .oc-meal-view) { display: flex; flex-direction: column; align-items: stretch; gap: 0; width: 100%; padding: 0; border: 0; border-radius: 0; background: transparent; color: var(--g-text); text-align: left; text-decoration: none; }
  :where(.g-offer-media, .omq-photo-button, .oc-picture) { display: block; position: relative; width: 100%; height: auto; min-width: 0; min-height: var(--g-touch); padding: 0; flex: none; overflow: hidden; border: 0; border-radius: var(--g-radius-sm); background: var(--g-surface-soft); }
  :where(.g-offer-media, .omq-photo-button, .oc-picture):has(img), img:where(.g-offer-media, .omq-photo-button, .oc-picture) { aspect-ratio: 1; }
  :where(.g-offer-media, .omq-photo-button, .oc-picture) img { display: block; width: 100%; height: 100%; object-fit: contain; }
  :where(.g-offer-content, .omq-dish-info, .oc-meal-content) { min-width: 0; padding: var(--g-space-3); }
  :where(.g-offer-title, .omq-dish-info h3, .oc-meal-name, .omq-pm-item-main>strong) { display: block; margin: 0 0 var(--g-space-1); font-family: var(--g-font-sans); font-style: normal; font-size: var(--g-font-md); line-height: 1.3; text-align: left; overflow-wrap: anywhere; }
  :where(.g-offer-price, .omq-dish .platPrix>summary, .oc-meal-price, .omq-pm-price, .omq-price) { display: block; margin-block: var(--g-space-1); font-family: var(--g-font-sans); font-style: normal; font-size: 1.25rem; font-weight: var(--g-weight-bold); line-height: 1.2; font-variant-numeric: tabular-nums; }
  :where(.g-management-card, .omq-dish) > :where(.g-offer-main, .omq-dish-top, .oc-meal-view) { display: grid; grid-template-columns: minmax(var(--g-touch), 80px) minmax(0, 1fr); gap: var(--g-space-3); padding: var(--g-space-3); align-items: start; }
  :where(.g-management-card, .omq-dish):not(:has(:where(.g-offer-media, .omq-photo-button, .oc-picture) img)) > :where(.g-offer-main, .omq-dish-top, .oc-meal-view) { grid-template-columns: var(--g-touch) minmax(0, 1fr); }
  :where(.g-management-card, .omq-dish) :where(.g-offer-content, .omq-dish-info, .oc-meal-content) { padding: 0; }
  :where(.g-management-card, .omq-dish) :where(.g-offer-media, .omq-photo-button, .oc-picture):not(:has(img)) { aspect-ratio: auto; }
  :where(.g-management-card, .omq-dish) :where(.g-offer-media, .omq-photo-button, .oc-picture):not(:has(img)) .photo-empty { width: 100%; height: var(--g-touch); min-height: 0; padding: var(--g-space-1); font-size: 0; }
  :where(.g-management-card, .omq-dish) :where(.g-offer-media, .omq-photo-button, .oc-picture):not(:has(img)) .g-offer-edit-hint { display: none; }
  .g-preview-card { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: var(--g-space-2); padding: var(--g-space-3); margin: 0; }
  .g-preview-card.g-preview-card > :where(.g-offer-main, .omq-dish-top, .oc-meal-view) { grid-column: 1; grid-row: 1 / 3; grid-template-columns: 56px minmax(0, 1fr); padding: 0; gap: var(--g-space-3); }
  .g-preview-card > :where(.g-offer-main, .omq-dish-top, .oc-meal-view) :where(.g-offer-media, .omq-photo-button, .oc-picture) { width: 56px; height: 56px; }
  .g-preview-card > .g-switch { position: static; grid-column: 2; grid-row: 1; align-self: start; width: auto; margin: 0; flex-direction: column; justify-content: center; gap: var(--g-space-1); }
  .g-preview-card > .g-preview-edit { grid-column: 2; grid-row: 2; display: inline-flex; align-items: center; justify-content: center; min-height: var(--g-touch); margin: 0; color: var(--g-action); font-size: var(--g-font-sm); }
  .g-preview-card > p { grid-column: 1 / -1; margin: 0; }
  .g-preview-card > p:empty { display: none; }
  .g-preview-card :where(.g-offer-title, .omq-dish-info h3, .oc-meal-name, .omq-pm-item-main>strong) { padding-right: 0; min-height: 0; }
  :where(.g-offer-title, .omq-dish-info h3, .oc-meal-name, .omq-pm-item-main>strong) a { color: inherit; text-decoration: none; }
  :where(.g-offer-title, .omq-dish-info h3, .oc-meal-name, .omq-pm-item-main>strong) a:is(:hover, :focus-visible) { text-decoration: underline; }
  @media (max-width: 359px) {
    .g-preview-card.g-preview-card > :where(.g-offer-main, .omq-dish-top, .oc-meal-view) { grid-column: 1 / -1; grid-row: 1; }
    .g-preview-card > .g-switch { grid-column: 1; grid-row: 2; justify-self: start; flex-direction: row; }
  }
  @media (max-width: 359px) { :where(.g-offer-grid, .oc-grid, #blocPlats ul.plats:not(.ov-pgrid)) { grid-template-columns: minmax(0, 1fr); } }
  @media (min-width: 768px) { :where(.g-offer-grid, .oc-grid, #blocPlats ul.plats:not(.ov-pgrid)), :where(.g-management-list, #blocPlats ul.plats:not(.ov-pgrid)) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
  @media (min-width: 1024px) { :where(.g-offer-grid, .oc-grid, #blocPlats ul.plats:not(.ov-pgrid)), :where(.g-management-list, #blocPlats ul.plats:not(.ov-pgrid)) { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
  :where(.g-share-line, .omq-pm-share-row:not(.ov-status-actions)) { display: flex; flex-wrap: nowrap; align-items: stretch; gap: var(--g-space-1); min-width: 0; width: 100%; }
  :where(.g-share-line, .omq-pm-share-row:not(.ov-status-actions)) > :where(a, button) { display: flex; flex-direction: column; align-items: center; justify-content: center; flex: 1 1 0; min-width: 0; min-height: 56px; height: 56px; margin: 0; padding: var(--g-space-1); font-size: var(--g-font-xs); line-height: var(--g-line-heading); }
  :where(.g-share-line, .omq-pm-share-row:not(.ov-status-actions)) > :where(.g-button--icon, .repasFermer, .pcFermer, .oc-icon, #pm-share) { flex: 0 0 var(--g-touch); }
  .g-share-line--compact { flex-wrap:wrap; }
  .g-share-line--compact > :where(a, button) { flex: 0 0 auto; min-width:max-content; white-space:nowrap; flex-direction: row; gap: var(--g-space-1); min-height: var(--g-touch); height: var(--g-touch); padding-inline: var(--g-space-2); border-color: transparent; background: transparent; font-size: var(--g-font-sm); }
  .g-share-line--compact > :where(a, button):not(:where(.g-button--icon, .repasFermer, .pcFermer, .oc-icon, #pm-share)) > svg { display: none; }
  .g-share-line--compact > :where(.g-button--icon, .repasFermer, .pcFermer, .oc-icon, #pm-share) { margin-left: auto; }
  /* Public sharing keeps the normal button border and icon, with a horizontal label. */
  .g-share-line--framed > :where(a, button) { flex-direction: row; gap: var(--g-space-1); min-height: var(--g-touch); height: auto; padding: var(--g-space-2); font-size: var(--g-font-sm); }
  .g-heading { display: flex; align-items: center; flex-wrap: wrap; justify-content: space-between; gap: var(--g-space-2) var(--g-space-3); }
  .g-heading > * { min-width: 0; }
  :where(.g-add-actions, .omq-pm-actions:not(.ov-actions)) { display: grid; grid-template-columns: minmax(0, 1fr); }
  :where(.g-add-action, #pm-add:not(.ov-btn)) { width: 100%; grid-column: 1 / -1; min-height: var(--g-control); margin-block: 0 var(--g-space-3); font-size: var(--g-font-md); }
  .g-activity { margin-block: var(--g-space-4); }
  .g-activity > summary { display: flex; align-items: center; justify-content: space-between; gap: var(--g-space-3); min-height: var(--g-control); padding-block: var(--g-space-2); cursor: pointer; font-weight: var(--g-weight-medium); list-style: none; }
  .g-activity > summary::-webkit-details-marker { display: none; }
  .g-activity > summary::after { content: '›'; flex: none; width: auto; height: auto; margin: 0; border: 0; font-size: 1.5rem; transform: rotate(0); }
  .g-activity[open] > summary::after { transform: rotate(90deg); }
  .g-activity[open] > summary { margin-bottom: var(--g-space-3); }
  .g-publication-state { display: flex; flex-wrap: wrap; align-items: center; gap: var(--g-space-2) var(--g-space-3); width: 100%; margin: 0 0 var(--g-space-3); color: var(--g-text-muted); font-size: var(--g-font-sm); }
  .g-publication-state a { color: var(--g-action); text-underline-offset: .2em; }
  .g-catalogue-preview { display: grid; gap: var(--g-space-3); min-width: 0; }
  .g-preview-footer { justify-self: start; min-height: var(--g-touch); display: inline-flex; align-items: center; color: var(--g-action); font-weight: var(--g-weight-medium); }
  .g-metric-context { margin: 0; color: var(--g-text-muted); font-size: var(--g-font-xs); line-height: var(--g-line-body); }
  :where(.g-page-title, .omq-pm h1, #aujourdhui>h1, .omq-pm-head>h2, .sellerTitle) { font: var(--g-weight-heading) var(--g-font-h1)/var(--g-line-heading) var(--g-font-sans); letter-spacing: -.015em; margin: var(--g-space-3) 0 var(--g-space-4); }
  :where(.g-header, .omq-top) { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: var(--g-space-2) var(--g-space-3); min-width: 0; min-height:var(--g-header-height); padding-block: var(--g-space-2); border-bottom: 1px solid var(--g-border); background: var(--g-background); }
  .g-header--single-row { flex-wrap: nowrap; }
  .g-header--single-row > :where(.g-header-identity, .omq-store) { flex: 1 1 0; min-width: 0; }
  .g-header--single-row > .g-header-tools { display: flex; align-items: center; flex: 0 0 auto; min-width: 0; }
  :where(.g-header-identity, .omq-store) { display: flex; align-items: center; gap: var(--g-space-3); min-width: 0; max-width: 100%; color: var(--g-text); text-decoration: none; }
  :where(.g-header-title, .omq-store-name) { margin: 0; font: var(--g-weight-bold) var(--g-font-md)/1.2 var(--g-font-sans); overflow-wrap: anywhere; }
  :where(.g-header-logo, .omq-mark img) { width: 40px; height: 40px; flex: none; object-fit: contain; }
  .g-more-trigger { display:inline-flex; align-items:center; justify-content:center; flex:none; gap:6px; min-height:var(--g-touch); padding:0 var(--g-space-3); border:1px solid var(--g-border); border-radius:var(--g-radius-pill); background:var(--g-surface); color:var(--g-action-ink); font:var(--g-weight-bold) var(--g-font-sm)/1.2 var(--g-font-sans); white-space:nowrap; text-decoration:none; }
  .g-more-trigger[aria-current="page"] { background:var(--g-action-soft); border-color:var(--g-action-line); }
  :where(.g-stats, .omq-pm-kpis:not(.ov-stats4-grid)) { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--g-space-1); padding: 0; margin: 0; list-style: none; }
  :where(.g-stat, .omq-pm-kpi) { display: block; position: relative; min-width: 0; min-height: 5rem; margin: 0; padding: 0; border: 1px solid var(--g-border); border-radius: var(--g-radius-field); background: var(--g-surface-soft); text-align: center; box-shadow: none; }
  :where(.g-stat-trigger, .omq-pm-kpi-open:not(.ov-stat4)) { display: block; position: static; width: 100%; min-height: 5rem; padding: 0; border: 0; border-radius: inherit; background: transparent; color: var(--g-text); font: inherit; text-decoration: none; }
  :where(.g-stat-value, .omq-pm-kpi-open>strong) { display: block; position: absolute; top: var(--g-space-2); left: var(--g-space-1); right: var(--g-space-1); margin: 0; padding: 0; color: var(--g-text); font-size: 1.5rem; line-height: 1.1; font-weight: var(--g-weight-bold); white-space: nowrap; font-variant-numeric: tabular-nums; }
  :where(.g-stat-label, .omq-pm-kpi-label) { display: block; position: absolute; bottom: var(--g-space-2); left: var(--g-space-1); right: var(--g-space-1); margin: 0; font-size: var(--g-font-xs); font-weight: var(--g-weight-medium); line-height: var(--g-line-heading); color: var(--g-text-muted); overflow-wrap: normal; }
  :where(.g-stat-note, .omq-pm-kpi-note) { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  :where(.g-stat-decoration, .omq-pm-kpi-arrow) { display: none; }
  :where(.g-stats, .omq-pm-kpis:not(.ov-stats4-grid)):has(.g-stat-substat:not(.g-sr-only)) :where(.g-stat, .omq-pm-kpi) { min-height: 6rem; }
  :where(.g-stats, .omq-pm-kpis:not(.ov-stats4-grid)):has(.g-stat-substat:not(.g-sr-only)) :where(.g-stat-trigger, .omq-pm-kpi-open:not(.ov-stat4)) { min-height: 6rem; }
  :where(.g-stats, .omq-pm-kpis:not(.ov-stats4-grid)):has(.g-stat-substat:not(.g-sr-only)) :where(.g-stat-label, .omq-pm-kpi-label) { bottom: 1.75rem; }
  .g-stat-substat { position: absolute; inset: auto var(--g-space-1) var(--g-space-1); display: block; width: auto; height: auto; margin: 0; padding: 0; overflow: visible; clip-path: none; white-space: normal; color: var(--g-text-muted); font-size: var(--g-font-xs); line-height: var(--g-line-heading); }
  :where(.g-hero-title, .landing #landingTitre) { font: var(--g-weight-bold) var(--g-font-hero)/1.08 var(--g-font-sans); letter-spacing: -.025em; }
  :where(.g-navigation, .vendeurNavigation:not(.ov-tabbar), .omq-nav) { position: fixed; inset: auto 0 0; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); width: 100%; max-width: none; transform: none; gap: var(--g-space-1); padding: var(--g-space-1) var(--g-space-2) calc(var(--g-space-1) + env(safe-area-inset-bottom)); background: var(--g-background); border: 0; border-top: 1px solid var(--g-border); z-index: var(--g-z-nav); box-shadow: var(--g-shadow); }
  :where(.g-navigation, .vendeurNavigation:not(.ov-tabbar), .omq-nav) > :is(a, button) { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--g-space-1); min-width: 0; min-height: 60px; padding: var(--g-space-1); margin: 0; border: 0; border-radius: var(--g-radius-field); background: transparent; color: var(--g-text-muted); font: var(--g-weight-medium) var(--g-font-xs)/1.2 var(--g-font-sans); text-decoration: none; overflow-wrap: anywhere; }
  :where(.g-navigation, .vendeurNavigation:not(.ov-tabbar), .omq-nav) > [aria-current="page"] { background: var(--g-action-soft); color: var(--g-action-hover); }
  :where(.g-navigation, .vendeurNavigation:not(.ov-tabbar), .omq-nav) svg { width: 22px; height: 22px; flex: none; }
  :where(.g-navigation, .vendeurNavigation:not(.ov-tabbar), .omq-nav) > :is(a,button) > span { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  :where(.g-navigation, .vendeurNavigation:not(.ov-tabbar), .omq-nav) > :is(a, button) { justify-content: flex-start; padding-top: var(--g-space-2); overflow-wrap: normal; word-break: normal; }
  @media (max-width: 359px) { :where(.g-navigation, .vendeurNavigation:not(.ov-tabbar), .omq-nav) > :is(a, button) { font-size: .75rem; padding-inline: 0; } }
  body:has(:where(.g-navigation, .vendeurNavigation:not(.ov-tabbar), .omq-nav)) { padding-bottom: calc(var(--g-nav-height) + env(safe-area-inset-bottom) + var(--g-space-4)); }
  :where(.g-footer, .omqLegalFooter) { display: flex; flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: center; gap: var(--g-space-1) var(--g-space-3); width: 100%; max-width: var(--g-content-wide); margin: var(--g-space-4) auto 0; padding-top: var(--g-space-2); padding-inline: var(--g-gutter); border-top: 1px solid var(--g-border); color: var(--g-text-muted); font: var(--g-font-xs)/var(--g-line-body) var(--g-font-sans); }
  :where(.g-footer, .omqLegalFooter) > p { margin: 0; }
  :where(.g-footer, .omqLegalFooter) nav { display: flex; flex: 0 1 auto; width: auto; flex-wrap: wrap; align-items: center; justify-content: center; gap: var(--g-space-1) var(--g-space-2); margin: 0; }
  :where(.g-footer, .omqLegalFooter) :is(a,p) { font-family: var(--g-font-sans); font-size: var(--g-font-xs); }
  :where(.g-footer, .omqLegalFooter) a { display: inline-flex; align-items: center; min-height: var(--g-touch); }
  :where(.g-footer, .omqLegalFooter).g-footer-links { display:block; }
  .g-footer-links > nav.g-footer-links-content { display:flex; flex-direction:column; align-items:center; width:100%; margin:0; padding:0; gap:0; }
  .g-footer-links .g-footer-row { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; width:100%; margin:0; padding:0; gap:0; }
  .g-footer-links .g-footer-row > a { justify-content:center; min-width:0; max-width:100%; min-height:var(--g-touch); padding:0 var(--g-space-1); font:var(--g-font-xs)/var(--g-line-body) var(--g-font-sans); text-align:center; overflow-wrap:normal; }
  .g-footer-links .g-footer-row > span { flex:none; padding-inline:var(--g-space-1); }
  .g-footer-disclosure { width: 100%; margin-top: var(--g-space-4); color: var(--g-text-muted); font-size: var(--g-font-xs); }
  .g-footer-disclosure > summary { display: flex; align-items: center; min-height: var(--g-touch); cursor: pointer; }
  .g-footer-disclosure[open] { padding-bottom: var(--g-space-4); }
  @media (min-width: 768px) {
    :where(.g-navigation, .vendeurNavigation:not(.ov-tabbar), .omq-nav) { position: sticky; inset: 0 auto auto; width: 100%; max-width: var(--g-content-wide); margin-inline: auto; border-top: 0; border-bottom: 1px solid var(--g-border); padding: var(--g-space-1); }
    :where(.g-navigation, .vendeurNavigation:not(.ov-tabbar), .omq-nav) > :is(a, button) { flex-direction: row; min-height: var(--g-control); font-size: var(--g-font-sm); }
    body:has(:where(.g-navigation, .vendeurNavigation:not(.ov-tabbar), .omq-nav)) { padding-bottom: var(--g-space-6); }
  }
}
@layer g-accessibility {
  [hidden] { display: none !important; }
  :focus-visible { outline: 3px solid var(--g-focus); outline-offset: 3px; }
  .g-sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
  @media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; } }
  @media (forced-colors: active) { :is(button, :where(.g-button, .bouton, .boutonContour, .omq-btn, .oc-btn, .oc-add, button.send, button.commander, button.order, .omq-pm-mini, .agentButton, .fd-primary), input, select, textarea) { border: 1px solid ButtonText; } }
  @media print { :where(.g-navigation, .vendeurNavigation:not(.ov-tabbar), .omq-nav), :where(.g-search, .oc-menu-search, #sellerCatalogueSearch:not(.ov-search)) { display: none; } body:has(:where(.g-navigation, .vendeurNavigation:not(.ov-tabbar), .omq-nav)) { padding-bottom: 0; } }
}

@layer g-density {
  html[data-g-theme] .g-more-panel.g-more-panel { padding:0; }
  .g-more-panel .g-more-display > p { margin:var(--g-space-2) var(--g-card-padding); }
  .g-more-density, .g-more-panel .g-more-density { padding:0; margin:var(--g-space-2) var(--g-card-padding) var(--g-space-3); border:0; min-width:0; }
  .g-more-density .g-more-density-options { display:flex; flex-wrap:wrap; gap:var(--g-space-2); }
  .g-more-density .g-more-density-options :is(label,button) { position:relative; display:flex; flex:1 1 max-content; align-items:center; justify-content:center; min-width:max-content; min-height:var(--g-control); margin:0; padding:var(--g-vertical-space) 2px; font-weight:700; border:1px solid var(--g-border-control); border-radius:var(--g-radius-button); background:var(--g-surface); color:var(--g-text); white-space:nowrap; overflow-wrap:normal; word-break:normal; }
  .g-more-density label:has(:checked), .g-more-density button[aria-pressed="true"] { border:2px solid var(--g-action); background:var(--g-action-soft); color:var(--g-action-ink); box-shadow:none; }
  .g-more-density label:focus-within { outline:3px solid var(--g-focus); outline-offset:3px; }
  .g-more-density input[type="radio"] { position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:pointer; }
}

/* Shared page geometry. Native selectors below are mappings, not independent
   sizing policies. Business compositions own vertical rhythm and positioning. */
@layer g-native {
 :where(html[data-g-theme="ovq"]) .shell { width:100%; max-width:var(--g-content-form); margin-inline:auto; padding:var(--g-stack) var(--g-gutter); }
 :where(html[data-g-theme="ovq"]) .shell:has(.ovq-space,.ovq-simple,.ovq-guest,.ovq-login-page,.ovq-import-page,.g-seller-page,.g-public-page,.g-seller-header) { padding:0; max-width:none; }
 :where(html[data-g-theme="ovq"]) .narrow,:where(html[data-g-theme="ovq"]) .ovq-simple,:where(html[data-g-theme="ovq"]) .ovq-guest,:where(html[data-g-theme="ovq"]) .ovq-login-page,:where(html[data-g-theme="ovq"]) .ovq-import-page,:where(html[data-g-theme="ovq"]) .ovq-client-request { width:100%; max-width:var(--g-content-form); margin-inline:auto; }
 :where(html[data-g-theme="ovq"]) .ovmq-start { max-width:var(--g-content-form); margin:auto; padding:var(--g-stack) var(--g-gutter); }
:where(html[data-g-theme="omq"]) :where(.wrap,.photo-main,.photo-header,.order-page>main,.agentScreen main,.agentScreen>header,.legalPage main,.legalPage header){width:100%;max-width:var(--g-content-form);margin-inline:auto;padding:var(--g-stack) var(--g-gutter);}
:where(html[data-g-page="m"] .wrap){padding-inline:calc(var(--g-gutter)/2);}
  :where(html[data-g-theme="ovq"]) .shell:has(.g-seller-header) :is(main.g-more-page,main.ovq-composer-page,main.narrow):not(.g-seller-page) { width:100%; max-width:var(--g-content-form); margin-inline:auto; padding-inline:var(--g-gutter); padding-top:var(--g-stack); }
}
@layer g-compositions {
  :is(:where(.g-flow, .photo-main), :where(.g-flow-header, .photo-header), :where(.g-flow-dock, .photo-publish-dock), .g-editor-dock, .g-seller-page, .g-seller-header, .g-seller-footer, .g-public-page, .g-public-dock) {
    width:100%; max-width:var(--g-content-form); margin-inline:auto;
  }
}

/* Shared geometry from the DG reference of 18 October. Native applications
   own content, actions and state; adapters only identify existing elements. */
@layer g-compositions {
  .g-language-selector { display:flex; align-items:center; flex-wrap:wrap; gap:var(--g-space-2); min-width:0; padding:var(--g-space-2) 0; }
  .g-language-selector > label { flex:1 1 9rem; margin:0; }
  .g-language-selector > select { flex:0 1 10rem; min-width:7rem; max-width:100%; margin:0; }
  .g-language-selector > :is(p,[role="status"]) { flex-basis:100%; margin:0; }
  .g-language-selector > [role="status"]:empty { display:none; }
  .g-language-selector[data-compact="true"] { flex:0 1 auto; }
  .g-language-selector[data-compact="true"] > label { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
  .g-language-segment { display:inline-flex; flex:none; gap:0; border:1px solid var(--g-border-control); border-radius:var(--g-radius-pill); overflow:hidden; background:var(--g-surface); }
  .g-language-segment > button { display:inline-flex; align-items:center; justify-content:center; width:auto; min-width:var(--g-touch); min-height:var(--g-touch); margin:0; padding:var(--g-space-1) var(--g-space-2); border:0; border-radius:0; background:var(--g-surface); color:var(--g-text); font-size:var(--g-font-sm); }
  .g-language-segment > button[aria-pressed="true"] { background:var(--g-text); color:var(--g-surface); }
  .g-language-segment > button:focus-visible { outline-offset:-3px; }
  .g-essential-reference { overflow-wrap:anywhere; }
  .g-essential-price { font-size:var(--g-font-h1); }
  .g-essential-plan--annual { border-color:var(--g-action); background:var(--g-action-soft); }
  .g-editor-dock { position:fixed; inset:auto 0 0; z-index:var(--g-z-nav); display:flex; justify-content:center; max-height:50dvh; padding:var(--g-space-3) var(--g-gutter) calc(var(--g-space-3) + env(safe-area-inset-bottom)); border-top:1px solid var(--g-border); background:var(--g-surface); overflow:auto; }
  .g-editor-dock > :is(button,:where(.g-button, .bouton, .boutonContour, .omq-btn, .oc-btn, .oc-add, button.send, button.commander, button.order, .omq-pm-mini, .agentButton, .fd-primary)) { width:100%; margin:0; }
  .g-field-with-suffix { display:flex; align-items:center; min-width:0; width:100%; min-height:var(--g-control); border:1px solid var(--g-border-control); border-radius:var(--g-radius-field); background:var(--g-surface); }
  .g-field-with-suffix > input { flex:1 1 0; min-width:0; border:0; background:transparent; }
  .g-field-suffix { flex:none; padding-inline:var(--g-space-3); color:var(--g-text-muted); font-size:var(--g-font-sm); }
  :where(.g-flow-header, .photo-header) { position:sticky; top:0; z-index:20; display:flex; align-items:center; justify-content:space-between; gap:var(--g-space-3); min-height:var(--g-header-height); height:auto; margin:0 auto; padding:var(--g-space-2) var(--g-gutter); border:0; border-bottom:1px solid var(--g-border); background:var(--g-background); }
  :where(.g-flow-header, .photo-header) img { width:40px; height:40px; flex:none; }
  :where(.g-flow-header, .photo-header) > a:first-child { display:flex; flex:1 1 0; align-items:center; gap:var(--g-space-2); min-width:0; min-height:var(--g-touch); text-decoration:none; }
  :where(.g-flow-header, .photo-header) .g-more-trigger { min-height:var(--g-touch); padding:0 var(--g-space-3); font-size:var(--g-font-sm); }
  .g-flow-context { min-width:0; overflow-wrap:anywhere; font-size:var(--g-font-xs); font-weight:var(--g-weight-normal); color:var(--g-text-muted); }
  :where(.g-flow, .photo-main) { min-width:0; margin:0 auto; padding:var(--g-space-4) var(--g-gutter) var(--g-space-8); }
  :where(.g-flow, .photo-main) > :is(section,form), :where(.g-flow-section, .photo-main .omq-pm-hero, .photo-main .omq-pm-shared) { min-width:0; }
  :where(.g-flow-section, .photo-main .omq-pm-hero, .photo-main .omq-pm-shared) { display:flex; flex-direction:column; gap:var(--g-space-6); padding:0; border:0; background:none; }
  :where(.g-flow-stack, .photo-main .omq-pm-view) { display:flex; flex-direction:column; gap:var(--g-space-6); }
  :where(.g-flow-title, .photo-main .omq-pm-hero>h2, .photo-main .omq-pm-shared>h2), :where(.g-flow-section, .photo-main .omq-pm-hero, .photo-main .omq-pm-shared) > h1, :where(.g-flow, .photo-main) h1 { font:var(--g-weight-heading) var(--g-font-h1)/var(--g-line-heading) var(--g-font-sans); letter-spacing:-.015em; margin:0; text-wrap:balance; }
  :where(.g-flow-section, .photo-main .omq-pm-hero, .photo-main .omq-pm-shared) > p { margin:0; line-height:var(--g-line-body); }
  :where(.g-flow-section, .photo-main .omq-pm-hero, .photo-main .omq-pm-shared) > h1 + p { margin-top:calc(-1 * var(--g-space-4)); }
  :where(.g-flow-section, .photo-main .omq-pm-hero, .photo-main .omq-pm-shared) > :where(.g-flow-title, .photo-main .omq-pm-hero>h2, .photo-main .omq-pm-shared>h2) + p { margin-top:calc(-1 * var(--g-space-4)); }
  :where(.g-flow-review, .photo-main.photo-review) :where(.g-flow-title, .photo-main .omq-pm-hero>h2, .photo-main .omq-pm-shared>h2) + p, :where(.g-flow-review, .photo-main.photo-review) h1 + p { font-size:var(--g-font-sm); }
  :where(.g-flow-country, .photo-country-line) { display:flex; align-items:center; justify-content:space-between; gap:var(--g-space-2); min-height:44px; margin:0; font-size:var(--g-font-sm); color:var(--g-text-muted); }
  :where(.g-flow-country, .photo-country-line) > button { min-height:44px; padding:0; border:0; background:none; font-size:var(--g-font-sm); color:var(--g-action-ink); }
  :where(.g-flow-steps, .photo-steps) { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); list-style:none; margin:0 0 var(--g-space-6); padding:0; gap:6px; }
  :where(.g-flow-steps, .photo-steps) > li { min-width:0; border:0; border-top:4px solid var(--g-surface-raised); padding:6px 0 0; color:var(--g-text-subtle); font:var(--g-weight-medium) var(--g-font-xs)/var(--g-line-body) var(--g-font-sans); white-space:normal; overflow-wrap:anywhere; }
  :where(.g-flow-steps, .photo-steps) > [data-done="true"] { border-color:var(--g-action-line); color:var(--g-text-muted); }
  :where(.g-flow-steps, .photo-steps) > [aria-current="step"] { border-color:var(--g-action); color:var(--g-text); font-weight:var(--g-weight-heading); }
  :where(.g-flow-stack, .photo-main .omq-pm-view) > :where(.g-flow-steps, .photo-steps) { margin:0; }
  :where(.g-flow, .photo-main) :where(:where(.g-button, .bouton, .boutonContour, .omq-btn, .oc-btn, .oc-add, button.send, button.commander, button.order, .omq-pm-mini, .agentButton, .fd-primary),button) { min-height:var(--g-control); font-size:var(--g-font-md); border-radius:var(--g-radius-button); }
  :where(.g-flow, .photo-main) :where(.g-flow-actions, .photo-main #editor .actions) { display:grid; gap:var(--g-space-2); }
  :where(.g-flow-actions, .photo-main #editor .actions) > :where(.g-button--primary, .bouton:not(.fantome):not(.danger), .primary, button.send, button.commander, button.order, .oc-add, .omq-pm-mini.is-strong, .agentButton:not(.secondary):not(.danger), .fd-primary) { min-height:56px; font-size:var(--g-font-lg); }
  :where(.g-flow-section, .photo-main .omq-pm-hero, .photo-main .omq-pm-shared) > :where(.g-button, .bouton, .boutonContour, .omq-btn, .oc-btn, .oc-add, button.send, button.commander, button.order, .omq-pm-mini, .agentButton, .fd-primary) + :where(.g-button, .bouton, .boutonContour, .omq-btn, .oc-btn, .oc-add, button.send, button.commander, button.order, .omq-pm-mini, .agentButton, .fd-primary) { margin-top:calc(-1 * var(--g-space-4)); }
  :where(.g-flow, .photo-main) .g-flow-state { border:0; border-radius:var(--g-radius-card); background:var(--g-surface-soft); padding:var(--g-space-4); font-size:var(--g-font-sm); }
  :where(.g-flow, .photo-main) .g-flow-state[data-tone="error"] { background:var(--g-error-soft); }
  :where(.g-flow, .photo-main) :where(.g-flow-attribution, #draft-prepared-by) { background:var(--g-info-soft); color:var(--g-info); }
  :where(.g-flow, .photo-main) :where(.g-flow-attribution, #draft-prepared-by) > strong { color:var(--g-info); }
  :where(.g-flow, .photo-main) .g-review-list { border-radius:var(--g-radius-card); }
  :where(.g-flow, .photo-main) .g-review-row--stacked { grid-template-columns:28px minmax(0,1fr) 44px; min-height:64px; gap:var(--g-space-2); padding:var(--g-space-2) var(--g-space-4); }
  :where(.g-flow, .photo-main) .g-review-select { display:flex; align-items:center; justify-content:center; width:var(--g-touch); min-width:var(--g-touch); min-height:var(--g-touch); margin-inline-start:-8px; }
  :where(.g-flow, .photo-main) .g-review-select input[type="checkbox"] { appearance:none; width:24px; height:24px; margin:0; border:2px solid var(--g-border-control); border-radius:7px; background:var(--g-surface) center/16px no-repeat; }
  :where(.g-flow, .photo-main) .g-review-select input[type="checkbox"]:checked { border-color:var(--g-action); background-color:var(--g-action); background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E"); }
  :where(.g-flow, .photo-main) .g-review-select input:disabled { opacity:.55; }
  :where(.g-flow, .photo-main) .g-review-name { font-size:var(--g-font-md); line-height:1.3; gap:2px; }
  :where(.g-flow, .photo-main) .g-review-name .g-review-price { color:var(--g-text-subtle); font-size:var(--g-font-sm); }
  :where(.g-flow, .photo-main) .g-review-modify { width:44px; min-width:44px; min-height:44px; padding:0; font-size:0; color:var(--g-text); }
  :where(.g-flow, .photo-main) .g-review-modify::before { content:""; width:20px; height:20px; background:currentColor; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m15 5 4 4M4 20l1-5L16 4a2.1 2.1 0 0 1 3 3L8 18z'/%3E%3C/svg%3E") center/contain no-repeat; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m15 5 4 4M4 20l1-5L16 4a2.1 2.1 0 0 1 3 3L8 18z'/%3E%3C/svg%3E") center/contain no-repeat; }
  :where(.g-flow-dock, .photo-publish-dock) { position:fixed; inset:auto 0 0; transform:none; z-index:90; display:flex; flex-direction:column; gap:var(--g-space-2); max-height:80dvh; margin:0 auto; padding:var(--g-space-3) var(--g-gutter) calc(var(--g-space-3) + env(safe-area-inset-bottom)); border:0; border-top:1px solid var(--g-border); border-radius:0; background:var(--g-surface); box-shadow:0 -10px 36px -14px rgb(46 29 18 / 38%); overflow:auto; }
  :where(.g-flow-dock, .photo-publish-dock) > :where(.g-button, .bouton, .boutonContour, .omq-btn, .oc-btn, .oc-add, button.send, button.commander, button.order, .omq-pm-mini, .agentButton, .fd-primary) { width:100%; margin:0; }
  :where(.g-flow-dock, .photo-publish-dock) > :where(.g-button--primary, .bouton:not(.fantome):not(.danger), .primary, button.send, button.commander, button.order, .oc-add, .omq-pm-mini.is-strong, .agentButton:not(.secondary):not(.danger), .fd-primary) { min-height:56px; font-size:var(--g-font-lg); }
  :where(.g-flow-dock, .photo-publish-dock) > :where(.g-button, .bouton, .boutonContour, .omq-btn, .oc-btn, .oc-add, button.send, button.commander, button.order, .omq-pm-mini, .agentButton, .fd-primary):not(:where(.g-button--primary, .bouton:not(.fantome):not(.danger), .primary, button.send, button.commander, button.order, .oc-add, .omq-pm-mini.is-strong, .agentButton:not(.secondary):not(.danger), .fd-primary)) { min-height:44px; }
  :where(.g-flow-dock, .photo-publish-dock) .g-flow-dock-meta { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; min-height:var(--g-touch); gap:4px var(--g-space-2); margin:0; font-size:var(--g-font-xs); }
  :where(.g-flow-dock, .photo-publish-dock) .g-flow-dock-meta > button { flex:none; width:auto; min-height:var(--g-touch); padding:0; border:0; background:transparent; font-size:var(--g-font-xs); color:var(--g-action-ink); }
  :where(.g-flow-dock, .photo-publish-dock) .g-flow-dock-meta :is(p,aside) { margin:0; padding:0; border:0; background:none; font-size:var(--g-font-xs); }
  .g-flow-trial-summary { display:flex; flex-wrap:wrap; gap:4px; font-size:var(--g-font-xs); line-height:1.4; }
  .g-flow-trial-summary > strong { display:inline; font-size:inherit; }
  .g-flow-trial-summary > span::before { content:'· '; }
  :where(.g-handoff-recipient, .photo-handoff-recipient) { display:grid; gap:2px; padding:var(--g-space-3) var(--g-space-4); border:0; border-radius:var(--g-radius-card); background:var(--g-surface-soft); font-size:var(--g-font-xs); color:var(--g-text-subtle); }
  :where(.g-handoff-recipient, .photo-handoff-recipient) > strong { display:block; color:var(--g-text); font-size:1.25rem; font-weight:var(--g-weight-heading); }
  :where(.g-handoff-preview, .photo-handoff-preview) { min-width:0; overflow:hidden; border:1px solid var(--g-border); border-radius:var(--g-radius-card); background:var(--g-surface); padding:0; }
  :where(.g-handoff-preview, .photo-handoff-preview) > strong { display:block; padding:var(--g-space-3) var(--g-space-4); background:var(--g-surface-soft); }
  :where(.g-handoff-preview, .photo-handoff-preview) > ul { list-style:none; margin:0; padding:0; border:0; border-radius:0; }
  :where(.g-handoff-preview, .photo-handoff-preview) > ul > li { display:flex; align-items:center; justify-content:space-between; gap:var(--g-space-3); min-height:48px; margin:0; padding:var(--g-space-3) var(--g-space-4); border:0; border-top:1px solid var(--g-border); font-size:var(--g-font-md); }
  :where(.g-handoff-preview, .photo-handoff-preview) > ul > li > :last-child { flex:none; white-space:nowrap; }
  :where(.g-handoff-preview, .photo-handoff-preview) > button { width:auto; min-height:var(--g-touch); margin:0; padding:var(--g-space-2) var(--g-space-4); border:0; background:none; color:var(--g-action-ink); font-size:var(--g-font-sm); }
  [data-g-dock-host] { padding-bottom:calc(var(--g-dock-clearance,180px) + var(--g-space-4)); }
  [data-g-dock-host]:not(:has([data-g-dock])):not([style*="--g-dock-clearance"]) { padding-bottom:var(--g-space-8); }
  @media(forced-colors:active) { :where(.g-flow, .photo-main) .g-review-select input[type="checkbox"] { appearance:auto; } :where(.g-flow, .photo-main) .g-review-modify { font-size:var(--g-font-xs); } :where(.g-flow, .photo-main) .g-review-modify::before { display:none; } }
}

/* Seller workspace compositions. Content, metrics and actions stay native. */
@layer g-compositions {
  .g-seller-detail-title {
    display:flex;
    align-items:center;
    min-height:var(--g-touch);
    color:inherit;
    text-decoration:none;
    font:inherit;
  }
  :where(.g-seller-shell, body.omqSeller:has(.g-seller-page)) { width:100%; max-width:none; margin:0 auto; padding:0; }
  :where(.g-seller-frame, #vendeurContexte:has(.g-seller-header)) { width:100%; max-width:none; margin:0; padding:0; }
  :where(.g-seller-header-host, #vendeurContexte:has(.g-seller-header)) { display:contents; }
  .g-seller-header { position:sticky; top:0; z-index:20; display:flex; flex-wrap:nowrap; align-items:center; justify-content:space-between; gap:var(--g-gap); min-height:var(--g-header-height); margin:0 auto; padding:var(--g-space-2) var(--g-gutter); border:0; border-bottom:1px solid var(--g-border); background:var(--g-background); }
  .g-seller-header :where(.g-header-identity, .omq-store) { display:flex; flex:1 1 0; align-items:center; min-width:0; min-height:var(--g-touch); gap:var(--g-space-2); padding:0; border:0; background:none; color:var(--g-text); }
  .g-seller-header :where(.g-header-logo, .omq-mark img) { display:block; width:40px; height:40px; flex:none; }
  .g-seller-header :where(.g-header-identity, .omq-store) > :where(div,.omq-store-copy) { display:block; min-width:0; flex:1 1 0; }
  .g-seller-header :where(.g-header-title, .omq-store-name) { display:block; min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; margin:0; font-size:var(--g-font-md); font-weight:var(--g-weight-bold); line-height:1.2; }
  .g-seller-identity-context { display:block; min-width:0; max-width:100%; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; font-size:var(--g-font-xs); line-height:1.2; color:var(--g-text-subtle); font-weight:var(--g-weight-normal); }
  .g-seller-header .g-more-trigger { min-height:var(--g-touch); font-size:var(--g-font-sm); }
  .g-seller-page { min-width:0; margin:0 auto; padding:var(--g-stack) var(--g-gutter) calc(var(--g-nav-height) + var(--g-space-6) + env(safe-area-inset-bottom)); }
  .g-seller-page[data-g-dock-host] { padding-bottom:calc(var(--g-dock-clearance,var(--g-nav-height)) + var(--g-space-6)); }
  .g-seller-page:has(.g-seller-header) { padding-top:0; }
  .g-seller-page .g-seller-header { width:calc(100% + 2 * var(--g-gutter)); max-width:none; margin:0 calc(-1 * var(--g-gutter)) var(--g-stack); }
  .g-seller-page > h1, .g-seller-page :where(.g-page-title, .omq-pm h1, #aujourdhui>h1, .omq-pm-head>h2, .sellerTitle) { margin:0 0 var(--g-stack); font:var(--g-weight-heading) var(--g-font-h1)/var(--g-line-heading) var(--g-font-sans); letter-spacing:-.015em; }
  :where(.g-seller-heading, .g-seller-page .omq-pm-head) { display:flex; flex-direction:column; gap:var(--g-gap); margin:0 0 var(--g-stack); padding:0; border:0; background:none; }
  :where(.g-seller-heading, .g-seller-page .omq-pm-head) > h1 { margin:0; font:var(--g-weight-heading) var(--g-font-h1)/var(--g-line-heading) var(--g-font-sans); letter-spacing:-.015em; }
  .g-seller-publication { display:flex; flex-direction:column; gap:var(--g-gap); margin:0 0 var(--g-stack); padding:var(--g-card-padding); border:0; border-radius:var(--g-radius-card); background:var(--g-action-soft); }
  .g-seller-publication .g-publication-state { justify-content:space-between; margin:0; font-size:var(--g-font-sm); }
  .g-seller-publication .g-publication-state > span:first-child { font-size:var(--g-font-xs); font-weight:var(--g-weight-bold); }
  .g-seller-public-link { display:inline-flex; align-items:center; min-height:var(--g-touch); }
  .g-seller-publication[data-public="true"] .g-seller-public-badge { padding:4px 8px; border-radius:var(--g-radius-pill); background:var(--g-surface); color:var(--g-success); }
  .g-seller-publication :where(.g-share-line, .omq-pm-share-row:not(.ov-status-actions)) { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)) var(--g-touch); width:100%; margin:0; gap:min(8px,var(--g-gap)); }
  :where(.g-seller-heading, .g-seller-page .omq-pm-head) > .g-seller-publication { margin:0; }
  .g-seller-publication :where(.g-share-line, .omq-pm-share-row:not(.ov-status-actions)) > :where(a,button) { min-width:var(--g-touch); min-height:var(--g-touch); height:auto; border:1px solid var(--g-border-control); border-radius:var(--g-radius-button); background:var(--g-surface); padding:var(--g-space-2) 8px; gap:4px; color:var(--g-text); font-size:var(--g-font-sm); }
  .g-seller-publication :where(.g-share-line, .omq-pm-share-row:not(.ov-status-actions)) :where(.g-button--icon, .repasFermer, .pcFermer, .oc-icon, #pm-share) { min-width:var(--g-touch); width:var(--g-touch); }
  .g-seller-publication :where(.g-share-line, .omq-pm-share-row:not(.ov-status-actions)) > :where(a,button) > svg { display:block; width:16px; height:16px; flex:none; }
  .g-seller-primary { display:flex; align-items:center; justify-content:center; gap:var(--g-space-2); width:100%; min-height:var(--g-control); margin:0; font-size:var(--g-font-md); font-weight:var(--g-weight-bold); }
  .g-seller-primary > svg { width:20px; height:20px; flex:none; }
  .ovq-live-choice { display:grid; grid-template-columns:24px 64px minmax(0,1fr); align-items:center; gap:var(--g-gap); min-height:var(--g-touch); margin:0; padding-block:var(--g-stack); border-bottom:1px solid var(--g-border); }
  .ovq-live-choice > input { margin:0; }
  .ovq-live-choice-image, .ovq-live-choice-placeholder { display:flex; align-items:center; justify-content:center; width:64px; height:64px; min-width:64px; object-fit:cover; border-radius:var(--g-radius-field); background:var(--g-surface-soft); color:var(--g-text-muted); font-size:var(--g-font-xs); }
  .ovq-live-choice > span:last-child { display:grid; min-width:0; gap:var(--g-space-1); }
  .ovq-choice-detail { display:block; }
  .g-seller-page :where(.g-search, .oc-menu-search, #sellerCatalogueSearch:not(.ov-search)) input[type="search"] { border-radius:var(--g-radius-pill); }
  .g-seller-page .omq-pm-view { gap:var(--g-stack); }
  .g-seller-page .omq-pm-view > :where(section,div,p,h2), .g-seller-page .g-catalogue-preview > :where(.g-search, .oc-menu-search, #sellerCatalogueSearch:not(.ov-search)), .g-seller-page .omq-pm-group-title { margin-block:0; }
  .g-seller-page .g-catalogue-preview { gap:var(--g-stack); }
  .g-seller-page .omq-pm-group-title { font-size:var(--g-font-md); line-height:var(--g-line-heading); }
  .g-seller-manual { display:inline-flex; align-items:center; justify-content:flex-start; min-height:var(--g-touch); width:auto; padding:0; margin:0; font-size:var(--g-font-sm); font-weight:var(--g-weight-bold); }
  .g-seller-activity { margin-block:var(--g-stack); gap:var(--g-gap); }
  .g-seller-activity > .g-seller-section-title { margin-bottom:0; }
  .g-seller-open { display:none; align-items:center; justify-content:space-between; gap:var(--g-space-3); width:auto; max-width:var(--g-content-form); margin:var(--g-space-3) var(--g-gutter); }
  .g-seller-publication .g-seller-open { display:flex; margin:0; }
  .g-seller-page :where(.g-stats, .omq-pm-kpis:not(.ov-stats4-grid)) { grid-template-columns:repeat(4,minmax(3.5rem,1fr)); gap:var(--g-gap); max-width:100%; min-width:0; overflow-x:auto; margin:0; padding-block:2px; }
  .g-seller-page :where(.g-stat, .omq-pm-kpi) { display:flex; flex-direction:column; align-items:stretch; gap:2px; min-height:var(--g-seller-stat-height,76px); padding:var(--g-seller-stat-padding,var(--g-space-2) var(--g-space-1)); background:var(--g-surface); border-radius:var(--g-radius-card); text-align:left; }
  .g-seller-page :where(.g-stat, .omq-pm-kpi) > dt { min-height:1.3em; margin:0; order:0; font-size:var(--g-font-sm); }
  .g-seller-page :where(.g-stat-trigger, .omq-pm-kpi-open:not(.ov-stat4)) { position:static; display:flex; flex-direction:column; align-items:flex-start; gap:2px; width:100%; min-height:0; padding:0; margin:0; text-align:left; }
  .g-seller-page :where(.g-stat-value, .omq-pm-kpi-open>strong) { position:static; inset:auto; order:1; margin:0; font-size:var(--g-seller-stat-font,1.25rem); line-height:1.1; font-weight:var(--g-weight-heading); white-space:nowrap; overflow-wrap:normal; }
  .g-seller-page :where(.g-stat-label, .omq-pm-kpi-label) { position:static; inset:auto; order:0; margin:0; color:var(--g-text-muted); font-size:var(--g-font-xs); line-height:1.3; font-weight:var(--g-weight-medium); }
  .g-seller-page .g-stat-substat { position:static; inset:auto; order:2; margin:0; font-size:var(--g-font-xs); line-height:1.3; }
  .g-seller-page .g-stat-retry { position:relative; z-index:2; order:3; align-self:flex-start; width:max-content; max-width:none; min-height:var(--g-touch); margin-inline:calc(-1 * var(--g-space-1)); padding:0; border:0; background:transparent; color:var(--g-action); font-size:var(--g-font-xs); font-weight:var(--g-weight-normal); white-space:nowrap; text-decoration:underline; }
  .g-seller-page :where(.g-stat, .omq-pm-kpi) dt :where(.g-stat-trigger, .omq-pm-kpi-open:not(.ov-stat4)) { position:absolute; inset:0; z-index:1; display:block; width:100%; min-height:var(--g-touch); padding:var(--g-space-3); }
  .g-seller-page :where(.g-stat, .omq-pm-kpi) dt :where(.g-stat-trigger, .omq-pm-kpi-open:not(.ov-stat4))::after { content:none; }
  .g-seller-section-title { margin:0 0 var(--g-gap); font-size:var(--g-font-lg); line-height:1.25; font-weight:var(--g-weight-bold); }
  .g-seller-count { display:block; margin:var(--g-gap) 0; padding:0; border:0; }
  .g-seller-count > p { margin:0; }
  .g-seller-page :where(.g-management-list, #blocPlats ul.plats:not(.ov-pgrid)) { display:grid; grid-template-columns:minmax(0,1fr); gap:var(--g-gap); margin:0; padding:0; }
  .g-seller-categories { display:grid; gap:var(--g-stack); }
  .g-seller-category { min-width:0; }
  .g-seller-category-title { display:flex; align-items:baseline; flex-wrap:wrap; gap:var(--g-gap); margin:0 0 var(--g-gap); font-size:var(--g-font-md); }
  .g-seller-category-count { display:inline-flex; align-items:center; justify-content:center; flex:none; min-height:24px; padding-inline:var(--g-space-2); border-radius:var(--g-radius-pill); background:var(--g-surface-soft); color:var(--g-text); font-size:var(--g-font-xs); font-weight:var(--g-weight-bold); }
  .g-seller-products { display:grid; grid-template-columns:repeat(auto-fill,minmax(min(100%,max(8rem,calc((100% - var(--g-gap)) / 2))),1fr)); align-items:stretch; gap:var(--g-gap); min-width:0; margin:0; padding:0; list-style:none; }
  .g-seller-products > .g-preview-card { display:flex; flex-direction:column; align-items:stretch; min-width:0; gap:0; padding:0; overflow:visible; }
  .g-seller-products > .g-preview-card > :where(.g-offer-main, .omq-dish-top, .oc-meal-view) { display:flex; flex-direction:column; align-items:stretch; min-width:0; width:100%; padding:0; gap:0; }
  .g-seller-products > .g-preview-card :where(.g-offer-media, .omq-photo-button, .oc-picture) { display:flex; align-items:center; justify-content:center; position:relative; width:100%; height:auto; min-height:0; aspect-ratio:4/3; overflow:hidden; border-radius:var(--g-radius-card) var(--g-radius-card) 0 0; }
  .g-seller-products > .g-preview-card :where(.g-offer-media, .omq-photo-button, .oc-picture) img { width:100%; height:100%; object-fit:cover; }
  .g-seller-products > .g-preview-card :where(.g-offer-media, .omq-photo-button, .oc-picture) > svg { width:24px; height:24px; flex:none; }
  .g-seller-products > .g-preview-card :is(:where(.g-offer-content, .omq-dish-info, .oc-meal-content),:where(.g-offer-title, .omq-dish-info h3, .oc-meal-name, .omq-pm-item-main>strong)) { min-width:0; width:100%; margin:0; }
  .g-seller-products > .g-preview-card :is(:where(.g-offer-content, .omq-dish-info, .oc-meal-content),.ovq-offer-summary) { display:flex; flex-direction:column; gap:var(--g-space-1); padding:var(--g-tile-padding); }
  .g-seller-products > .g-preview-card :is(:where(.g-offer-content, .omq-dish-info, .oc-meal-content),.ovq-offer-summary) > :is(h3,strong,p) { margin:0; }
  .g-seller-card-name { display:flex; align-items:flex-start; gap:var(--g-space-1); min-width:0; }
  .g-seller-card-name > svg { flex:none; width:16px; height:16px; margin-top:2px; }
  .g-seller-live-products :where(.g-offer-media, .omq-photo-button, .oc-picture) .photo-empty { width:100%; height:100%; min-height:0; padding:var(--g-space-2); }
  .g-seller-live-products :where(.g-offer-media, .omq-photo-button, .oc-picture) .ovq-placeholder-name { display:none; }
  .g-seller-live-products > .g-preview-card > :where(.g-accordion, .omqAccordion, .omq-pm details:not(.omq-pm-price):not(.ov-details), #rangerPlats, #organiserMenu) { width:100%; min-width:0; margin-top:auto; }
  .g-seller-live-products > .g-preview-card > :where(.g-accordion, .omqAccordion, .omq-pm details:not(.omq-pm-price):not(.ov-details), #rangerPlats, #organiserMenu) > summary { min-height:var(--g-touch); padding:var(--g-space-2) 0; overflow-wrap:normal; }
  .g-seller-products > .g-preview-card :where(.g-offer-title, .omq-dish-info h3, .oc-meal-name, .omq-pm-item-main>strong) { font-size:var(--g-font-md); line-height:1.3; overflow-wrap:anywhere; }
  .g-seller-products > .g-preview-card :where(.g-offer-price, .omq-dish .platPrix>summary, .oc-meal-price, .omq-pm-price, .omq-price) { font-size:var(--g-font-md); line-height:1.3; overflow-wrap:anywhere; }
  .g-seller-products > .g-preview-card > .g-switch { align-self:flex-start; flex-direction:row; justify-content:flex-start; width:calc(100% - 2 * var(--g-tile-padding)); min-height:var(--g-touch); margin: auto var(--g-tile-padding) var(--g-tile-padding); gap:var(--g-space-1); font-size:var(--g-font-xs); }
  .g-seller-products > .g-preview-card > .g-preview-edit { align-self:stretch; justify-content:center; min-height:var(--g-touch); margin:0; }
  .g-seller-card { position:relative; display:flex; flex-direction:column; min-width:0; margin:0; padding:var(--g-card-padding); gap:var(--g-gap); border:1px solid var(--g-border); border-radius:var(--g-radius-card); background:var(--g-surface); overflow:visible; }
  .g-seller-card > :where(.g-offer-main, .omq-dish-top, .oc-meal-view), .g-seller-card-body { display:grid; grid-template-columns:64px minmax(0,1fr); align-items:start; gap:var(--g-gap); padding:0; }
  .g-seller-card :where(.g-offer-media, .omq-photo-button, .oc-picture) { width:64px; height:64px; min-height:64px; aspect-ratio:1; border-radius:var(--g-radius-button); }
  .g-seller-card :where(.g-offer-content, .omq-dish-info, .oc-meal-content) { min-width:0; padding:0; }
  #sellerDishDetail .omq-dish-info { display:contents; }
  #sellerDishDetail .omq-dish-info > h3 { grid-column:2; margin:0; }
  #sellerDishDetail .sellerInlinePrice { grid-column:1 / -1; min-width:0; width:100%; }
  #sellerDishDetail .prixForm { display:grid; grid-template-columns:minmax(0,1fr); }
  #sellerDishDetail .sellerInlinePriceFields { min-width:0; width:100%; }
  .g-seller-card :where(.g-offer-title, .omq-dish-info h3, .oc-meal-name, .omq-pm-item-main>strong) { font-size:var(--g-font-md); line-height:1.25; font-weight:var(--g-weight-bold); margin:0; }
  .g-seller-card :where(.g-offer-price, .omq-dish .platPrix>summary, .oc-meal-price, .omq-pm-price, .omq-price) { display:flex; align-items:center; flex-wrap:wrap; gap:var(--g-space-2); margin:0; font-size:var(--g-font-md); line-height:1.3; font-weight:var(--g-weight-heading); }
  .g-seller-card-actions { position:relative; z-index:2; display:flex; align-items:center; flex-wrap:wrap; gap:var(--g-gap); padding-top:var(--g-gap); border-top:1px solid var(--g-border); }
  .g-seller-card-actions > .g-switch { position:static; flex:1 1 auto; width:auto; min-height:var(--g-touch); margin:0; justify-content:flex-start; flex-direction:row; gap:var(--g-space-2); font-size:var(--g-font-xs); font-weight:var(--g-weight-bold); }
  .g-seller-card-actions > :where(a,button,details) { margin:0; min-height:var(--g-touch); }
  .g-seller-card-actions > :where(a,button):not(.g-switch) { display:inline-flex; align-items:center; justify-content:center; flex:none; width:auto; padding:0 var(--g-space-3); border:1px solid var(--g-border-control); border-radius:var(--g-radius-button); background:var(--g-surface); color:var(--g-text); font-size:var(--g-font-sm); font-weight:var(--g-weight-medium); }
  .g-seller-card-actions > details { flex:0 1 auto; }
  .g-seller-card-actions > details[open] { flex:1 1 100%; }
  .g-seller-card-actions > details > summary { display:flex; align-items:center; min-height:var(--g-touch); margin:0; padding:0 var(--g-space-2); font-size:var(--g-font-sm); }
  .g-seller-card-actions > details > summary:has(svg) { justify-content:center; min-width:var(--g-touch); padding:0; border:1px solid var(--g-border-control); border-radius:var(--g-radius-button); }
  .g-seller-card-actions > details > summary:has(svg)::after { display:none; }
  .g-seller-sales-actions { display:flex; flex-wrap:wrap; align-items:flex-start; gap:var(--g-gap); }
  .g-seller-sales-actions > .share { flex:1 1 100%; min-width:0; margin:0; padding:0; border:0; background:transparent; }
  .g-seller-sales-actions :where(.g-share-line, .omq-pm-share-row:not(.ov-status-actions)) { flex-wrap:wrap; }
  .g-seller-sales-actions :where(.g-share-line, .omq-pm-share-row:not(.ov-status-actions)) > :where(a,button) { min-width:var(--g-touch); }
  .g-seller-filters { display:flex; flex-wrap:wrap; gap:var(--g-gap); margin:var(--g-stack) 0; }
  .g-seller-filters > :where(a,button) { display:inline-flex; align-items:center; justify-content:center; min-height:var(--g-touch); width:auto; margin:0; padding:var(--g-space-2) var(--g-space-3); border:1px solid var(--g-border-control); border-radius:var(--g-radius-pill); background:var(--g-surface); color:var(--g-text); font-size:var(--g-font-sm); font-weight:var(--g-weight-medium); text-decoration:none; }
  .g-seller-filters > :is([aria-current="page"],[aria-pressed="true"]) { background:var(--g-text); border-color:var(--g-text); color:var(--g-surface); }
  @media(max-width:767px) {
    :where(.g-navigation, .vendeurNavigation:not(.ov-tabbar), .omq-nav) { display:grid; grid-auto-flow:column; grid-auto-columns:minmax(0,1fr); min-height:var(--g-nav-height); height:auto; max-width:var(--g-content-form); margin:0 auto; padding:6px 6px calc(6px + env(safe-area-inset-bottom)); background:var(--g-surface); }
    :where(.g-navigation, .vendeurNavigation:not(.ov-tabbar), .omq-nav) > :is(a,button) { min-width:0; justify-content:center; gap:3px; min-height:52px; padding:4px 2px; font-size:var(--g-font-xs); line-height:1.15; color:var(--g-action-ink); }
    :where(.g-navigation, .vendeurNavigation:not(.ov-tabbar), .omq-nav) > [aria-current="page"] { background:var(--g-action-soft); color:var(--g-action-ink); font-weight:var(--g-weight-heading); }
    :where(.g-navigation, .vendeurNavigation:not(.ov-tabbar), .omq-nav) > :is(a,button) { overflow-wrap:normal; word-break:normal; text-align:center; }
    :where(.g-navigation, .vendeurNavigation:not(.ov-tabbar), .omq-nav) > :is(a,button) > span { display:block; flex:none; min-width:0; min-height:0; width:100%; max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    :where(.g-navigation, .vendeurNavigation:not(.ov-tabbar), .omq-nav) svg { width:20px; height:20px; }
  }
  @media(min-width:768px) { .g-seller-page { padding-bottom:var(--g-space-8); } }
  @media(max-width:240px) {
    .g-seller-header { gap:var(--g-space-1); padding-inline:min(8px,var(--g-gutter)); }
    .g-seller-header :where(.g-header-logo, .omq-mark img), .g-seller-header .g-seller-identity-context { display:none; }
    .g-seller-header :where(.g-header-title, .omq-store-name) { overflow-wrap:normal; }
    .g-seller-publication :where(.g-share-line, .omq-pm-share-row:not(.ov-status-actions)) { grid-template-columns:minmax(0,1fr) var(--g-touch); }
    .g-seller-publication :where(.g-share-line, .omq-pm-share-row:not(.ov-status-actions)) > :first-child { grid-column:1/-1; }
  }
  .g-seller-footer { min-width:0; margin:var(--g-space-4) auto 0; padding:0 var(--g-gutter) calc(var(--g-dock-clearance,0px) + var(--g-space-6)); border:0; background:transparent; color:var(--g-text-muted); font-family:var(--g-font-sans); }
  .g-seller-footer > .g-footer-disclosure, .g-seller-footer.g-footer-disclosure { margin-top:0; }
  .g-seller-footer > .g-footer-disclosure > summary, .g-seller-footer.g-footer-disclosure > summary { min-height:var(--g-touch); font-size:var(--g-font-sm); }
  .g-seller-footer :where(.g-footer, .omqLegalFooter) { margin:var(--g-space-3) 0 0; padding:0; border:0; background:transparent; }
  .g-seller-footer :is(.omqFooterBrand,.ovq-footer-brand) { display:block; margin:var(--g-space-3) 0 0; }
  .g-seller-footer nav { display:flex; flex-wrap:wrap; gap:var(--g-space-2); margin:0; }
  .g-seller-footer a { min-height:var(--g-touch); font-family:var(--g-font-sans); font-size:var(--g-font-xs); }
  .g-seller-page > .g-seller-footer { padding-bottom:0; }
  body:has(.g-seller-footer) { padding-bottom:0; }
  body > .shell { min-height:100dvh; display:flex; flex-direction:column; }
  body > .shell > :where(main,.ovq-space,.ovq-simple), body > main { flex:1 0 auto; }
  body:has(.g-seller-footer) .g-seller-page[data-g-dock-host]:not(:has(.g-seller-footer)) { padding-bottom:var(--g-space-6); }
  .g-seller-footer { margin-top:auto; }
  @media(max-width:260px) {
    .g-footer-links .g-footer-row > span { display:none; }
    .g-footer-links .g-footer-row { column-gap:var(--g-space-2); }
  }

}

/* Personal density uses one inset and one list gap in both native renderers.
   Keep text, media dimensions, touch targets and measured dock reserves intact. */
@layer g-density {
  .g-seller-page .g-search--inline > label { min-height:0; margin:0; padding:0; }
  .g-seller-page .g-search--inline input[type="search"] { height:var(--g-control); min-height:var(--g-control); padding-block:0; }
  html:is([data-density="compact"],[data-omq-density="compact"],[data-density="spaced"],[data-omq-density="airy"]) .g-seller-page :where(.g-seller-heading, .g-seller-page .omq-pm-head) > h1 { margin:0; }
  html:is([data-density="compact"],[data-omq-density="compact"],[data-density="spaced"],[data-omq-density="airy"]) .g-seller-page :where(.g-management-list, #blocPlats ul.plats:not(.ov-pgrid)) { margin:0; gap:var(--g-gap); }
  html:is([data-density="compact"],[data-omq-density="compact"],[data-density="spaced"],[data-omq-density="airy"]) .g-seller-card { margin:0; padding:var(--g-card-padding); gap:var(--g-gap); }
  html:is([data-density="compact"],[data-omq-density="compact"],[data-density="spaced"],[data-omq-density="airy"]) .g-seller-card > :where(.g-offer-main, .omq-dish-top, .oc-meal-view),
  html:is([data-density="compact"],[data-omq-density="compact"],[data-density="spaced"],[data-omq-density="airy"]) .g-seller-card > .g-seller-card-body { padding:0; gap:var(--g-gap); }
  .g-seller-products > .g-preview-card, .g-seller-products > .g-preview-card > :where(.g-offer-main, .omq-dish-top, .oc-meal-view) { padding:0; gap:0; }
  html:is([data-density="compact"],[data-omq-density="compact"],[data-density="spaced"],[data-omq-density="airy"]) .g-seller-count { margin:var(--g-gap) 0; }
  html:is([data-density="compact"],[data-omq-density="compact"],[data-density="spaced"],[data-omq-density="airy"]) .g-seller-count > p { margin:0; }
}

/* Public commerce compositions. Native controllers retain facts, selection and prices. */
@layer g-compositions {
  .ovq-live-page .photo-empty { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:var(--g-space-1); min-height:88px; padding:var(--g-space-2); background:var(--g-surface-soft); color:var(--g-text-muted); }
  .ovq-live-page .photo-empty > svg { width:24px; height:24px; flex:none; }
  .ovq-live-page .photo-empty .ovq-placeholder-name { display:none; }
  .ovq-live-page .photo-empty::after { content:'Photo'; font-size:var(--g-font-xs); }
  .g-public-shell { width:100%; max-width:none; padding:0; }
  .g-public-page { --g-public-gutter:calc(var(--g-gutter)/2); min-width:0; padding-inline:var(--g-public-gutter); font-family:var(--g-font-sans); color:var(--g-text); background:var(--g-background); }
  .g-public-page :is(button,input,select,textarea) { font-family:var(--g-font-sans); }
  .g-public-title { margin:0; font:var(--g-weight-heading) var(--g-font-h1)/var(--g-line-heading) var(--g-font-sans); letter-spacing:-.015em; overflow-wrap:anywhere; }
  .g-public-hero { position:relative; display:grid; gap:var(--g-space-3); min-height:0; margin:0 0 var(--g-space-4); padding:var(--g-space-4); overflow:hidden; border:0; border-radius:var(--g-radius-card); background:var(--g-action-soft); color:var(--g-text); }
  .g-public-hero > header { margin:0; padding:0; min-height:0; background:transparent; border:0; }
  .g-public-hero > header .g-public-title { font-size:var(--g-font-h1); }
  .g-public-hero-content { position:relative; z-index:1; display:grid; gap:var(--g-space-3); min-width:0; }
  .g-public-hero-media { display:block; width:100%; max-height:360px; aspect-ratio:16/9; object-fit:cover; border-radius:var(--g-radius-field); }
  .g-public-hero-media > img { display:block; width:100%; height:100%; object-fit:cover; }
  .g-public-hero[data-photo="true"] { min-height:240px; align-items:end; background:var(--g-text); color:var(--g-on-action); }
  .g-public-hero[data-photo="true"] > .g-public-hero-media { position:absolute; inset:0; height:100%; max-height:none; border-radius:0; }
  .g-public-hero[data-photo="true"]::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,var(--g-text),transparent); pointer-events:none; }
  .g-public-hero[data-photo="true"] :is(.g-public-title,.g-public-meta) { color:var(--g-on-action); }
  .g-public-meta { display:block; min-width:0; margin:0; font-size:var(--g-font-sm); line-height:var(--g-line-body); overflow-wrap:anywhere; }
  .g-public-facts { display:flex; flex-wrap:wrap; align-items:flex-start; gap:var(--g-space-2); margin-block:var(--g-space-3); }
  .g-public-facts:empty { display:none; }
  .g-public-hero > .g-public-facts, .g-public-hero > .g-public-actions { margin:0; }
  .g-public-actions > .g-public-contact { min-height:var(--g-control); font-size:var(--g-font-md); font-weight:var(--g-weight-bold); }
  .g-public-facts > :is(span,p) { max-width:100%; margin:0; padding:var(--g-space-2) var(--g-space-3); border-radius:var(--g-radius-pill); background:var(--g-surface-soft); color:var(--g-text-muted); font-size:var(--g-font-sm); overflow-wrap:anywhere; }
  .g-public-actions { display:flex; flex-wrap:wrap; gap:var(--g-space-2); width:100%; min-width:0; margin-block:var(--g-space-3); }
  .g-public-actions > :is(a,button) { display:inline-flex; align-items:center; justify-content:center; gap:var(--g-space-2); flex:1 1 auto; min-height:var(--g-touch); margin:0; font-size:var(--g-font-sm); }
  .g-public-actions > :is(a,button):first-child { flex-basis:100%; min-height:var(--g-control); }
  .g-public-actions--menu { display:grid; grid-template-columns:minmax(0,1fr); }
  .g-public-quick-actions { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,4.5rem),1fr)); gap:var(--g-space-2); min-width:0; }
  .g-public-quick-actions > :is(a,button) { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:var(--g-space-1); width:100%; min-width:0; min-height:var(--g-touch); margin:0; padding:var(--g-space-1); border:1px solid var(--g-border-control); border-radius:var(--g-radius-button); background:var(--g-surface); color:var(--g-text); font-size:var(--g-font-sm); line-height:1.3; text-decoration:none; overflow-wrap:normal; word-break:normal; }
  .g-public-quick-actions > :is(a,button) > svg { flex:none; width:16px; height:16px; }
  .g-public-collection { min-width:0; margin-block:var(--g-space-6); }
  .g-public-collection[data-g-dock-host], .g-public-detail[data-g-dock-host], .g-public-cart[data-g-dock-host] { padding-bottom:calc(var(--g-dock-clearance,0px) + var(--g-space-6)); }
  :where(.g-public-grid, .g-public-collection .oc-grid) { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,9rem),1fr)); gap:var(--g-space-2); }
  .g-public-card { display:flex; flex-direction:column; min-width:0; margin:0; padding:0; border:1px solid var(--g-border); border-radius:var(--g-radius-card); background:var(--g-surface); overflow:hidden; }
  :where(.g-public-card-link, .g-public-card>.oc-meal-view) { display:flex; flex-direction:column; width:100%; min-width:0; margin:0; padding:0; background:transparent; border:0; color:var(--g-text); text-decoration:none; text-align:left; }
  .g-public-card .g-public-card-media { display:block; width:100%; height:auto; min-height:0; aspect-ratio:1; margin:0; border-radius:0; object-fit:cover; background:var(--g-surface-soft); }
  .g-public-card .g-public-card-media:not(:has(img)) { display:none; }
  .g-public-card-media > img { display:block; width:100%; height:100%; object-fit:cover; }
  .g-public-card-body { display:flex; flex-direction:column; gap:var(--g-space-2); min-width:0; padding:var(--g-space-3); }
  .g-public-card-body > :where(.g-offer-content, .omq-dish-info, .oc-meal-content) { padding:0; }
  .g-public-card-name { display:block; min-height:0; margin:0; font-size:var(--g-font-md); line-height:1.3; font-weight:var(--g-weight-bold); overflow-wrap:anywhere; }
  .g-public-card-price { display:block; margin:0; font-size:var(--g-font-md); line-height:1.3; font-weight:var(--g-weight-heading); overflow-wrap:anywhere; }
  .g-public-card-actions { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:var(--g-space-2); margin-top:auto; padding:var(--g-space-2); }
  .g-public-card-actions > :is(a,button,label) { display:inline-flex; align-items:center; justify-content:center; gap:var(--g-space-1); min-height:var(--g-touch); max-width:100%; margin:0; font-size:var(--g-font-sm); }
  :where(.g-public-filters, .g-public-collection .oc-filters) { display:flex; flex-wrap:wrap; gap:var(--g-space-2); margin-block:var(--g-space-3); }
  :where(.g-public-filters, .g-public-collection .oc-filters) > :is(a,button) { display:inline-flex; align-items:center; min-height:var(--g-touch); padding:var(--g-space-2) var(--g-space-3); border:1px solid var(--g-border-control); border-radius:var(--g-radius-pill); color:var(--g-text); background:var(--g-surface); font-size:var(--g-font-sm); }
  :where(.g-public-filters, .g-public-collection .oc-filters) > :is([aria-current="page"],[aria-pressed="true"]) { background:var(--g-text); border-color:var(--g-text); color:var(--g-surface); }
  .g-public-detail { min-width:0; }
  .g-public-detail-top { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:var(--g-space-2); margin-block:var(--g-space-3); }
  .g-public-detail-media { display:block; width:100%; max-height:420px; height:auto; margin-block:var(--g-space-3); border-radius:var(--g-radius-card); background:var(--g-surface-soft); overflow:hidden; }
  .g-public-detail-media img { display:block; width:100%; max-height:420px; object-fit:contain; }
  .g-public-detail-media[data-photo="false"], .g-public-detail-media:not(:has(img)) { display:none; }
  .g-public-detail-body { min-width:0; margin-block:var(--g-space-4); }
  :where(.g-public-detail-price, .g-public-detail-body .oc-price) { margin-block:var(--g-space-3); font-size:var(--g-font-h2); font-weight:var(--g-weight-heading); }
  .g-public-cart { min-width:0; margin-block:var(--g-space-4); border:0; border-radius:0; background:transparent; box-shadow:none; }
  .g-public-cart:not(.g-public-page) { padding:0; }
  .g-public-cart > fieldset { margin:0; padding:0; border:0; }
  .g-public-cart-row fieldset { margin:var(--g-space-3) 0; padding:0; border:0; }
  .g-public-cart fieldset { min-width:0; }
  .g-public-cart-row { display:flex; flex-direction:column; gap:var(--g-space-3); margin-block:var(--g-space-3); padding:var(--g-space-3); border:1px solid var(--g-border); border-radius:var(--g-radius-card); background:var(--g-surface); }
  .g-public-cart-item { display:flex; align-items:flex-start; gap:var(--g-space-3); min-width:0; }
  .g-public-cart-media { flex:none; width:64px; height:64px; border-radius:var(--g-radius-field); object-fit:cover; }
  .g-public-dock { position:fixed; inset:auto 0 0; z-index:40; display:flex; flex-direction:column; gap:var(--g-space-2); max-height:75dvh; margin:0 auto; padding:var(--g-space-3) var(--g-space-2) calc(var(--g-space-3) + env(safe-area-inset-bottom)); transform:none; overflow:auto; border:0; border-top:1px solid var(--g-border); border-radius:0; background:var(--g-surface); box-shadow:var(--g-shadow-floating); }
  .g-public-screen > .g-public-dock { position:sticky; inset:auto 0 0; flex-shrink:0; max-width:none; max-height:none; margin-top:auto; overflow:visible; }
  .g-public-dock > :is(h2,h3,p,form) { margin:0; }
  .g-public-dock > h3 { font-size:var(--g-font-sm); line-height:1.3; }
  .g-public-dock form > button { width:100%; min-height:var(--g-control); margin:0; }
  .g-public-dock-actions { display:flex; flex-direction:column; gap:var(--g-space-2); width:100%; }
  .g-public-dock-actions > :is(a,button) { width:100%; min-height:var(--g-control); margin:0; }
  .g-public-dock :where(.g-share-line, .omq-pm-share-row:not(.ov-status-actions)) { margin:0; }
  .g-public-dock > .g-public-share, .g-public-actions > .g-public-share, .g-public-detail-top > .g-public-share { width:100%; margin:0; padding:0; }
  .g-public-page .g-public-share > p:empty { display:none; }
  .g-public-selection-details { min-width:0; scroll-margin-block:var(--g-header-height); }
  .g-public-dock .g-public-share > p { margin:var(--g-space-1) 0 0; font-size:var(--g-font-xs); }
  .g-public-dock .g-public-share > details:not([open]) { margin:0; padding:0; border:0; }
  .g-public-selection-dock { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:6px; padding:6px 8px calc(6px + env(safe-area-inset-bottom)); }
  .g-public-selection-count { min-width:0; margin:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:var(--g-font-sm); }
  .g-public-selection-dock > a { min-height:var(--g-touch); margin:0; }
  .g-public-selection-dock > form { grid-column:1 / -1; }
  @media(min-width:768px) { :where(.g-public-grid, .g-public-collection .oc-grid) { grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr)); gap:var(--g-space-4); } }
}

@font-face{font-family:"Figtree"; src:url("/fonts/figtree-latin.woff2") format("woff2"); font-weight:300 900; font-style:normal; font-display:swap; 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:"Figtree"; src:url("/fonts/figtree-latin-ext.woff2") format("woff2"); font-weight:300 900; font-style:normal; font-display:swap; 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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
/* Shared marketing composition. Native HTML; app copy and routing stay in apps. */
@layer g-layout {
  html[data-g-theme="omq"]:is([data-g-page="home"].firstDishLanding, [data-g-page="seller-menu"]) { --g-font-sans: "Figtree", system-ui, -apple-system, "Segoe UI", sans-serif; }
  .g-landing { width: 100%; max-width: var(--g-content-wide); margin-inline: auto; color: var(--g-text); font: var(--g-font-md)/var(--g-line-body) var(--g-font-sans); }
  .g-landing h1 { margin: 0; font-size: clamp(2rem, 5vw, 3.75rem); line-height: 1.08; letter-spacing: -.035em; text-wrap: balance; }
  .g-landing h2 { margin: 0; font-size: clamp(1.5rem, 3vw, 2.25rem); line-height: var(--g-line-heading); letter-spacing: -.025em; }
  .g-landing h3 { margin: 0; font-size: var(--g-font-lg); }
  .g-landing p { margin: 0; }
  .g-landing-hero, .g-landing-feature { display: grid; grid-template-columns: minmax(0, 1fr); align-items: center; gap: var(--g-space-8); padding-block: var(--g-space-8); }
  .g-landing-copy { display: grid; gap: var(--g-space-5); min-width: 0; }
  .g-landing-kicker { color: var(--g-action); font-size: var(--g-font-sm); font-weight: var(--g-weight-bold); }
  .g-landing-lead { color: var(--g-text-muted); font-size: var(--g-font-lg); max-width: 36em; }
  .g-landing-entry { display: grid; gap: var(--g-space-3); justify-items: start; }
  .g-landing-entry :where(.g-button, .bouton, .boutonContour, .omq-btn, .oc-btn, .oc-add, button.send, button.commander, button.order, .omq-pm-mini, .agentButton, .fd-primary) { width: 100%; }
  .g-landing-entry form { width: 100%; margin: 0; }
  .g-landing-note { color: var(--g-text-muted); font-size: var(--g-font-sm); }
  .g-landing-example { margin: 0 auto; width: min(100%, 340px); display: grid; gap: var(--g-space-3); }
  .g-landing-example figcaption { text-align: center; color: var(--g-text-muted); font-size: var(--g-font-sm); }
  .g-landing-preview { padding: var(--g-space-5); border: 1px solid var(--g-border); border-radius: var(--g-radius-card); background: var(--g-surface); box-shadow: var(--g-shadow-floating); display: grid; gap: var(--g-space-4); }
  .g-landing-preview-heading { display: flex; gap: var(--g-space-3); align-items: center; flex-wrap: wrap; }
  .g-landing-preview-heading img { width: 36px; height: 36px; object-fit: contain; }
  .g-landing-preview-title { font-size: var(--g-font-lg); font-weight: var(--g-weight-bold); }
  .g-landing-preview-illustration { display: block; width: 100%; height: auto; max-height: 180px; object-fit: cover; border-radius: var(--g-radius-field); }
  .g-landing-preview-list { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--g-space-3); }
  .g-landing-preview-item { border: 1px solid var(--g-border); border-radius: var(--g-radius-field); padding: var(--g-space-3); display: grid; gap: var(--g-space-1); min-width: 0; }
  .g-landing-preview-item strong { font-weight: var(--g-weight-medium); }
  .g-landing-preview-price { font-weight: var(--g-weight-bold); }
  .g-landing-preview-state { color: var(--g-success); font-size: var(--g-font-sm); }
  .g-landing-preview-state[data-tone="muted"] { color: var(--g-text-muted); }
  .g-landing-demo-action { padding: var(--g-space-3); text-align: center; border-radius: var(--g-radius-button); background: var(--g-action-soft); color: var(--g-action); font-weight: var(--g-weight-medium); }
  .g-landing-section { padding-block: var(--g-space-8); border-top: 1px solid var(--g-border); }
  .g-landing-steps { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--g-space-4); list-style: none; margin: var(--g-space-6) 0 0; padding: 0; counter-reset: landing-step; }
  .g-landing-steps li { counter-increment: landing-step; background: var(--g-surface-soft); border-radius: var(--g-radius-card); padding: var(--g-space-5); display: grid; align-content: start; gap: var(--g-space-3); }
  .g-landing-steps li::before { content: counter(landing-step); display: grid; place-items: center; width: 36px; height: 36px; border-radius: var(--g-radius-pill); background: var(--g-action); color: var(--g-on-action); font-weight: var(--g-weight-bold); }
  .g-landing-steps p, .g-landing-feature p { color: var(--g-text-muted); }
  .g-landing-benefits { padding-left: var(--g-space-5); margin: 0; display: grid; gap: var(--g-space-3); }
  .g-landing-faq { max-width: var(--g-content-reading); margin-inline: auto; }
  .g-landing-faq > h2 { margin-bottom: var(--g-space-5); }
  .g-landing-faq details { border-bottom: 1px solid var(--g-border); }
  .g-landing-faq summary { cursor: pointer; min-height: var(--g-control); padding-block: var(--g-space-4); font-weight: var(--g-weight-medium); }
  .g-landing-faq details p { padding-bottom: var(--g-space-4); color: var(--g-text-muted); }
  .g-landing-final { margin-block: var(--g-space-8); padding: var(--g-space-6); border-radius: var(--g-radius-card); background: var(--g-action-soft); display: grid; gap: var(--g-space-4); }
  .g-landing-final :where(.g-button, .bouton, .boutonContour, .omq-btn, .oc-btn, .oc-add, button.send, button.commander, button.order, .omq-pm-mini, .agentButton, .fd-primary) { justify-self: start; }
  .g-landing a:focus-visible, .g-landing summary:focus-visible { outline: 3px solid var(--g-focus); outline-offset: 4px; }
  @media (min-width: 768px) {
    .g-landing-hero, .g-landing-feature { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: calc(2 * var(--g-space-8)); padding-block: calc(2 * var(--g-space-8)); }
    .g-landing-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .g-landing-entry :where(.g-button, .bouton, .boutonContour, .omq-btn, .oc-btn, .oc-add, button.send, button.commander, button.order, .omq-pm-mini, .agentButton, .fd-primary) { width: auto; min-width: 240px; }
    .g-landing-entry form { width: auto; }
    .g-landing-final { grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
  }
}

@layer g-components {
/* OVMQ 1.1 — source visuelle unique OMQ / OVQ (18/10/2026). Charger ce seul fichier ; polices dans fonts/.
 OVMQ — socle visuel commun OMQ / OVQ. Thème clair uniquement.
   Usage : <html data-theme="omq|ovq" data-density="compact|normal|aere"> + <body class="ov-app">.
   Aucune police distante, aucune dépendance. Préfixe : ov-. */

:root{
  --ov-font:"Figtree",system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  /* Neutres communs */
  --ov-bg:#FFFCF5; --ov-surface:#FFFFFF; --ov-surface-2:#F6F0E6; --ov-surface-3:#EBE2D3;
  --ov-ink:#2E1D12; --ov-ink-2:#5B4A3C; --ov-ink-3:#74635A;
  --ov-line:#E7DDCD; --ov-line-strong:#8F7E6E; /* 3,9:1 sur blanc : seul repère d’un champ */
  --ov-inverse:#2E1D12; --ov-on-inverse:#FFFCF5; --ov-on-inverse-2:#D9CCBC;
  /* États */
  --ov-success:#1E6E43; --ov-success-bg:#E2F1E7;
  --ov-warning:#7A5200; --ov-warning-bg:#FFF0CF;
  --ov-danger:#B3261E;  --ov-danger-bg:#FBE6E3; --ov-danger-line:#E6B4AE;
  --ov-info:#245A8C;    --ov-info-bg:#E4EEF8;
  --ov-off:#675E56;     --ov-off-bg:#EEE9E3;
  /* Marque par défaut = OMQ */
  --ov-brand:#17633F; --ov-brand-hover:#0F4F31; --ov-brand-ink:#0F4A2C; --ov-brand-soft:#E3F0E7; --ov-brand-line:#B5D6C1; --ov-on-brand:#FFFFFF;
  /* Typographie */
  --ov-fs-xs:12px; --ov-fs-sm:14px; --ov-fs-md:16px; --ov-fs-lg:18px; --ov-fs-xl:22px; --ov-fs-2xl:28px; --ov-fs-3xl:34px;
  --ov-lh-tight:1.15; --ov-lh:1.45;
  /* Rayons, ombres */
  --ov-r-sm:8px; --ov-r-md:12px; --ov-r-lg:16px; --ov-r-xl:24px; --ov-r-pill:999px;
  --ov-shadow-sm:0 1px 2px rgba(46,29,18,.06);
  --ov-shadow-md:0 8px 24px -10px rgba(46,29,18,.28);
  --ov-shadow-lg:0 -10px 36px -14px rgba(46,29,18,.38);
  --ov-focus:0 0 0 2px var(--ov-bg),0 0 0 4px var(--ov-brand);
  /* Contrôles (indépendants de la densité) */
  --ov-control:48px; --ov-control-lg:52px; --ov-touch:44px; --ov-icon:20px; --ov-icon-sm:16px;
  --ov-topbar-h:64px; --ov-tabbar-h:64px;
  --ov-maxw:560px; --ov-maxw-wide:1200px;
  /* Superpositions, mouvement */
  --ov-z-sticky:10; --ov-z-nav:20; --ov-z-sheet:40; --ov-z-dialog:50; --ov-z-toast:60;
  --ov-dur-fast:120ms; --ov-dur:200ms; --ov-ease:cubic-bezier(.2,.7,.2,1);
  /* Densité Normale */
  --ov-gutter:16px; --ov-s1:4px; --ov-s2:8px; --ov-s3:12px; --ov-s4:16px; --ov-s5:24px; --ov-s6:32px;
}
html[data-omq-density="compact"]{--ov-gutter:12px; --ov-s2:6px; --ov-s3:8px; --ov-s4:12px; --ov-s5:16px; --ov-s6:24px}
html[data-omq-density="airy"]{--ov-gutter:20px; --ov-s2:10px; --ov-s3:16px; --ov-s4:20px; --ov-s5:32px; --ov-s6:40px}

html[data-g-theme="omq"]{--ov-brand:#17633F; --ov-brand-hover:#0F4F31; --ov-brand-ink:#0F4A2C; --ov-brand-soft:#E3F0E7; --ov-brand-line:#B5D6C1; --ov-on-brand:#FFFFFF}

@media (prefers-reduced-motion:reduce){:root{--ov-dur-fast:0ms; --ov-dur:0ms}}

/* Base */
.ov-app{font-family:var(--ov-font); font-size:var(--ov-fs-md); line-height:var(--ov-lh); color:var(--ov-ink); background:var(--ov-bg); -webkit-font-smoothing:antialiased; -webkit-text-size-adjust:100%}
.ov-app *,.ov-app *::before,.ov-app *::after{box-sizing:border-box}
/* Colonne d’écran : .ov-page (flex:1) pousse la navigation / le pied sticky en bas, même sur une page courte. */
body.ov-app,.ov-screen{min-height:100vh; min-height:100dvh; display:flex; flex-direction:column; margin:0}
.ov-app :where(h1,h2,h3,h4,p,ul,ol,figure,dl,dd){margin:0}
.ov-app :where(button,input,select,textarea){font:inherit; color:inherit}
.ov-app a{color:var(--ov-brand-ink)}
.ov-app a:hover{color:var(--ov-brand-hover)}
.ov-app :focus-visible{outline:none; box-shadow:var(--ov-focus)}
.ov-sr{position:absolute!important; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap}
.ov-ico{width:var(--ov-icon); height:var(--ov-icon); flex:none; fill:none; stroke:currentColor; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round}
.ov-ico--sm{width:var(--ov-icon-sm); height:var(--ov-icon-sm)}

/* Typographie */
.ov-h1{font-size:var(--ov-fs-2xl); font-weight:800; line-height:var(--ov-lh-tight); letter-spacing:-.015em; text-wrap:balance; overflow-wrap:break-word}
.ov-h2{font-size:var(--ov-fs-xl); font-weight:800; line-height:1.2; letter-spacing:-.01em; overflow-wrap:break-word}
.ov-h3{font-size:var(--ov-fs-lg); font-weight:700; line-height:1.25; overflow-wrap:break-word}
.ov-eyebrow{font-size:var(--ov-fs-xs); font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--ov-ink-3)}
.ov-lead{font-size:var(--ov-fs-md); color:var(--ov-ink-2); text-wrap:pretty}
.ov-small{font-size:var(--ov-fs-sm); color:var(--ov-ink-2); text-wrap:pretty}
.ov-xs{font-size:var(--ov-fs-xs); color:var(--ov-ink-3)}
.ov-strong{font-weight:700; color:var(--ov-ink)}
.ov-price{font-weight:800; font-variant-numeric:tabular-nums; overflow-wrap:break-word}
.ov-num{font-variant-numeric:tabular-nums}
.ov-between > .ov-price,.ov-manage-head > .ov-price,.ov-total > .ov-price,.ov-item-end .ov-price{flex:none; white-space:nowrap}

/* Mise en page */
.ov-page{width:100%; max-width:var(--ov-maxw); margin:0 auto; padding:var(--ov-s4) var(--ov-gutter) var(--ov-s6); display:flex; flex-direction:column; gap:var(--ov-s5); flex:1}
.ov-stack{display:flex; flex-direction:column; gap:var(--ov-s3)}
.ov-stack-sm{display:flex; flex-direction:column; gap:var(--ov-s2)}
.ov-between{display:flex; align-items:center; justify-content:space-between; gap:var(--ov-s3); min-width:0}
.ov-cluster{display:flex; flex-wrap:wrap; align-items:center; gap:var(--ov-s2)}
.ov-grid-2{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--ov-s3)}
.ov-section{display:flex; flex-direction:column; gap:var(--ov-s3)}
.ov-section-head{display:flex; align-items:baseline; justify-content:space-between; gap:var(--ov-s3)}
.ov-divider{height:1px; border:0; margin:0; background:var(--ov-line)}
.ov-bleed{margin-left:calc(var(--ov-gutter) * -1); margin-right:calc(var(--ov-gutter) * -1)}

/* En-tête connecté / public */
.ov-topbar{position:sticky; top:0; z-index:var(--ov-z-sticky); display:flex; align-items:center; gap:var(--ov-s3); min-height:var(--ov-topbar-h); padding:var(--ov-s2) var(--ov-gutter); background:var(--ov-bg); border-bottom:1px solid var(--ov-line)}
.ov-id{display:flex; align-items:center; gap:var(--ov-s2); min-width:0; flex:1; color:inherit; text-decoration:none}
.ov-logo{flex:none; width:40px; height:40px; border-radius:50%; background:var(--ov-brand); color:var(--ov-on-brand); display:grid; place-items:center; font-weight:800; font-size:12px; letter-spacing:.02em}
.ov-logo--shop{border-radius:var(--ov-r-md); font-size:16px}
.ov-id-text{display:flex; flex-direction:column; min-width:0; line-height:1.2}
.ov-id-name{font-weight:700; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.ov-id-sub{font-size:var(--ov-fs-xs); color:var(--ov-ink-3); overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.ov-plus{flex:none; display:inline-flex; align-items:center; gap:6px; min-height:var(--ov-touch); padding:0 var(--ov-s3); border-radius:var(--ov-r-pill); border:1px solid var(--ov-line); background:var(--ov-surface); color:var(--ov-brand-ink); font-weight:700; font-size:var(--ov-fs-sm); white-space:nowrap; cursor:pointer; text-decoration:none}
.ov-plus[aria-expanded="true"],.ov-plus.is-active{background:var(--ov-brand-soft); border-color:var(--ov-brand-line)}
.ov-back{display:inline-flex; align-items:center; gap:6px; min-height:var(--ov-touch); font-weight:700; color:var(--ov-brand-ink); text-decoration:none; background:none; border:0; padding:0; cursor:pointer}

/* Navigation inférieure (mobile) → rail latéral (ordinateur, via .ov-shell) */
.ov-tabbar{position:sticky; left:0; right:0; bottom:0; z-index:var(--ov-z-nav); display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:4px; min-height:var(--ov-tabbar-h); padding:6px 6px calc(6px + env(safe-area-inset-bottom)); background:var(--ov-surface); border-top:1px solid var(--ov-line)}
.ov-tab{display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; min-height:52px; padding:4px 2px; border-radius:var(--ov-r-md); color:var(--ov-ink-2); font-size:12px; font-weight:600; line-height:1.15; text-align:center; text-decoration:none}
.ov-tab[aria-current="page"],.ov-tab.is-active{background:var(--ov-brand-soft); color:var(--ov-brand-ink); font-weight:800}
.ov-has-tabbar{padding-bottom:var(--ov-s6)}
.ov-shell{container-type:inline-size}
@container (min-width:900px){
  .ov-shell-grid{display:grid; grid-template-columns:232px minmax(0,1fr); align-items:start}
  .ov-shell .ov-tabbar{position:sticky; top:var(--ov-topbar-h); grid-template-columns:none; grid-auto-rows:min-content; border-top:0; border-right:1px solid var(--ov-line); height:calc(100vh - var(--ov-topbar-h)); padding:var(--ov-s4); background:var(--ov-bg)}
  .ov-shell .ov-tab{flex-direction:row; justify-content:flex-start; gap:10px; min-height:var(--ov-touch); padding:0 12px; font-size:var(--ov-fs-sm)}
  .ov-shell .ov-has-tabbar{padding-bottom:var(--ov-s6)}
  .ov-shell .ov-page{max-width:760px}
}

/* Pieds d'action (panier, publication) et navigation : sticky, dernier enfant du flux.
   Ils occupent leur hauteur réelle, quel que soit le libellé : aucune réserve à deviner.
   Variante --fixed seulement si le pied doit sortir du flux : mesurer avec ResizeObserver → --ov-dock-h. */
.ov-dock{position:sticky; left:0; right:0; bottom:0; z-index:var(--ov-z-nav); display:flex; flex-direction:column; gap:var(--ov-s2); padding:var(--ov-s3) var(--ov-gutter) calc(var(--ov-s3) + env(safe-area-inset-bottom)); background:var(--ov-surface); border-top:1px solid var(--ov-line); box-shadow:var(--ov-shadow-lg)}
.ov-dock > *{width:100%; max-width:var(--ov-maxw); margin-left:auto; margin-right:auto}
.ov-has-dock{padding-bottom:var(--ov-s6)}
.ov-dock--fixed{position:fixed}
.ov-has-dock-fixed{padding-bottom:calc(var(--ov-dock-h) + var(--ov-s4))}

/* Boutons */
.ov-btn{--_bg:var(--ov-surface); --_fg:var(--ov-ink); --_bd:var(--ov-line-strong); display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:var(--ov-control); padding:0 var(--ov-s4); border-radius:var(--ov-r-md); border:1px solid var(--_bd); background:var(--_bg); color:var(--_fg); font-weight:700; font-size:var(--ov-fs-md); line-height:1.2; text-align:center; text-decoration:none; cursor:pointer; transition:background-color var(--ov-dur-fast) var(--ov-ease),transform var(--ov-dur-fast); -webkit-tap-highlight-color:transparent}
.ov-app a.ov-btn{color:var(--_fg)}
.ov-btn:active{transform:translateY(1px)}
.ov-btn--primary{--_bg:var(--ov-brand); --_fg:var(--ov-on-brand); --_bd:var(--ov-brand)}
.ov-btn--primary:hover{--_bg:var(--ov-brand-hover); --_bd:var(--ov-brand-hover)}
.ov-btn--secondary:hover{--_bg:var(--ov-surface-2)}
.ov-btn--tonal{--_bg:var(--ov-brand-soft); --_fg:var(--ov-brand-ink); --_bd:transparent}
.ov-btn--tonal:hover{--_bd:var(--ov-brand-line)}
.ov-btn--ghost{--_bg:transparent; --_fg:var(--ov-brand-ink); --_bd:transparent; padding:0 var(--ov-s2)}
.ov-btn--ghost:hover{--_bg:var(--ov-brand-soft)}
.ov-btn--danger{--_fg:var(--ov-danger); --_bd:var(--ov-danger-line)}
.ov-btn--danger:hover{--_bg:var(--ov-danger-bg)}
.ov-btn--selected{--_bg:var(--ov-brand-soft); --_fg:var(--ov-brand-ink); --_bd:var(--ov-brand)}
.ov-btn--inverse{--_bg:var(--ov-inverse); --_fg:var(--ov-on-inverse); --_bd:var(--ov-inverse)}
.ov-btn--sm{min-height:var(--ov-touch); padding:0 var(--ov-s3); font-size:var(--ov-fs-sm)}
.ov-btn--lg{min-height:var(--ov-control-lg); font-size:var(--ov-fs-lg); border-radius:var(--ov-r-lg)}
.ov-btn--block{display:flex; width:100%}
.ov-btn--icon{width:var(--ov-touch); min-height:var(--ov-touch); padding:0; flex:none}
.ov-btn.is-focus{box-shadow:var(--ov-focus)}
.ov-btn:disabled,.ov-btn[aria-disabled="true"]{--_bg:var(--ov-off-bg); --_fg:var(--ov-off); --_bd:transparent; cursor:not-allowed; transform:none}
.ov-btn[aria-busy="true"]{cursor:progress}
.ov-btn[aria-busy="true"]::before{content:""; width:16px; height:16px; border-radius:50%; border:2px solid currentColor; border-right-color:transparent; animation:ov-spin .8s linear infinite}
@keyframes ov-spin{to{transform:rotate(360deg)}}
.ov-actions{display:flex; flex-direction:column; gap:var(--ov-s2)}
.ov-actions-row{display:grid; grid-auto-flow:column; grid-auto-columns:minmax(0,1fr); gap:var(--ov-s2)}
.ov-link{display:inline-flex; align-items:center; gap:6px; min-height:var(--ov-touch); padding:0; border:0; background:none; color:var(--ov-brand-ink); font-weight:700; font-size:inherit; text-decoration:underline; text-underline-offset:3px; text-decoration-thickness:1.5px; cursor:pointer}
.ov-link--quiet{text-decoration:none; color:var(--ov-ink-2); font-weight:600}

/* Champs */
.ov-field{display:flex; flex-direction:column; gap:6px; min-width:0}
.ov-label{font-size:var(--ov-fs-sm); font-weight:700}
.ov-hint{font-size:var(--ov-fs-xs); color:var(--ov-ink-3)}
.ov-error-text{font-size:var(--ov-fs-sm); font-weight:600; color:var(--ov-danger)}
.ov-input,.ov-select{width:100%; min-width:0; min-height:var(--ov-control); padding:0 var(--ov-s3); border-radius:var(--ov-r-md); border:1px solid var(--ov-line-strong); background:var(--ov-surface); color:var(--ov-ink); font-size:var(--ov-fs-md)}
.ov-select{appearance:auto}
.ov-input::placeholder{color:var(--ov-ink-3)}
.ov-input:focus,.ov-select:focus,.ov-input.is-focus{outline:none; border-color:var(--ov-brand); box-shadow:0 0 0 3px var(--ov-brand-soft)}
.ov-input[aria-invalid="true"]{border-color:var(--ov-danger); box-shadow:0 0 0 3px var(--ov-danger-bg)}
.ov-input:disabled{background:var(--ov-off-bg); color:var(--ov-off); border-color:transparent}
.ov-group{display:flex; align-items:stretch; min-width:0; border:1px solid var(--ov-line-strong); border-radius:var(--ov-r-md); background:var(--ov-surface); overflow:hidden}
.ov-group:focus-within{border-color:var(--ov-brand); box-shadow:0 0 0 3px var(--ov-brand-soft)}
.ov-group .ov-input{border:0; border-radius:0; box-shadow:none; flex:1}
.ov-addon{flex:none; display:flex; align-items:center; padding:0 var(--ov-s3); background:var(--ov-surface-2); border:0; font-weight:700; font-size:var(--ov-fs-sm); color:var(--ov-ink-2); white-space:nowrap}
.ov-app,.ov-app *{scrollbar-width:none}
.ov-app ::-webkit-scrollbar{display:none}
.ov-search{position:relative; min-width:0}
.ov-search .ov-input{padding-left:44px; border-radius:var(--ov-r-pill)}
.ov-search > .ov-ico{position:absolute; left:15px; top:50%; transform:translateY(-50%); color:var(--ov-ink-3); pointer-events:none}

/* Choix */
.ov-chips{display:flex; flex-wrap:wrap; gap:var(--ov-s2)}
.ov-chip{flex:none; display:inline-flex; align-items:center; gap:6px; min-height:var(--ov-touch); padding:0 16px; border-radius:var(--ov-r-pill); border:1px solid var(--ov-line-strong); background:var(--ov-surface); font-weight:600; font-size:var(--ov-fs-sm); white-space:nowrap; cursor:pointer; color:var(--ov-ink)}
.ov-chip[aria-pressed="true"],.ov-chip.is-selected{background:var(--ov-ink); border-color:var(--ov-ink); color:var(--ov-on-inverse)}
.ov-chip-count{font-variant-numeric:tabular-nums; opacity:.8}
.ov-check,.ov-radio{display:flex; align-items:center; gap:var(--ov-s3); min-height:var(--ov-touch); cursor:pointer; min-width:0}
.ov-check input,.ov-radio input{appearance:none; flex:none; width:24px; height:24px; margin:0; border:2px solid var(--ov-line-strong); background:var(--ov-surface) center/16px no-repeat; cursor:pointer}
.ov-check input{border-radius:7px}
.ov-radio input{border-radius:50%}
.ov-check input:checked{background-color:var(--ov-brand); border-color:var(--ov-brand); background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E")}
.ov-radio input:checked{border-color:var(--ov-brand); background-color:var(--ov-brand); box-shadow:inset 0 0 0 4px var(--ov-surface)}
.ov-check input:disabled,.ov-radio input:disabled{background-color:var(--ov-off-bg); border-color:#CFC6BC; cursor:not-allowed}
.ov-check input:disabled:checked{background-color:#B4AAA0}
.ov-switch{display:inline-flex; align-items:center; gap:var(--ov-s2); min-height:var(--ov-touch); cursor:pointer; font-size:var(--ov-fs-sm); font-weight:700; white-space:nowrap}
.ov-switch input{appearance:none; flex:none; position:relative; width:48px; height:28px; margin:0; border-radius:var(--ov-r-pill); background:#AFA398; cursor:pointer; transition:background-color var(--ov-dur)}
.ov-switch input::after{content:""; position:absolute; top:3px; left:3px; width:22px; height:22px; border-radius:50%; background:#fff; box-shadow:0 1px 2px rgba(0,0,0,.25); transition:transform var(--ov-dur) var(--ov-ease)}
.ov-switch input:checked{background:var(--ov-brand)}
.ov-switch input:checked::after{transform:translateX(20px)}
.ov-switch input:disabled{background:var(--ov-off-bg); cursor:not-allowed}
.ov-seg{display:grid; grid-auto-flow:column; grid-auto-columns:minmax(0,1fr); gap:var(--ov-s2)}
.ov-seg > button{min-height:var(--ov-control); padding:0 var(--ov-s2); border-radius:var(--ov-r-md); border:1px solid var(--ov-line-strong); background:var(--ov-surface); font-weight:700; cursor:pointer; color:var(--ov-ink)}
.ov-seg > button[aria-pressed="true"]{border:2px solid var(--ov-brand); background:var(--ov-brand-soft); color:var(--ov-brand-ink)}

/* Étapes WhatsApp → Photo → Vérifier */
.ov-steps{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; list-style:none; margin:0; padding:0}
.ov-steps li{border-top:4px solid var(--ov-surface-3); padding-top:6px; font-size:var(--ov-fs-xs); font-weight:600; color:var(--ov-ink-3); white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.ov-steps li.is-done{border-color:var(--ov-brand-line); color:var(--ov-ink-2)}
.ov-steps li[aria-current="step"]{border-color:var(--ov-brand); color:var(--ov-ink); font-weight:800}

/* Alertes, badges, toasts */
.ov-alert{display:flex; align-items:flex-start; gap:var(--ov-s3); padding:var(--ov-s3) var(--ov-s4); border-radius:var(--ov-r-lg); background:var(--ov-surface-2); color:var(--ov-ink); font-size:var(--ov-fs-sm); line-height:1.4}
.ov-alert > div{min-width:0; flex:1; display:block; text-wrap:pretty}
.ov-alert strong{display:block; margin-bottom:2px; font-size:var(--ov-fs-md)}
.ov-alert .ov-ico{margin-top:1px}
.ov-alert--info{background:var(--ov-info-bg)} .ov-alert--info strong,.ov-alert--info .ov-ico{color:var(--ov-info)}
.ov-alert--success{background:var(--ov-success-bg)} .ov-alert--success strong,.ov-alert--success .ov-ico{color:var(--ov-success)}
.ov-alert--warning{background:var(--ov-warning-bg)} .ov-alert--warning strong,.ov-alert--warning .ov-ico{color:var(--ov-warning)}
.ov-alert--danger{background:var(--ov-danger-bg)} .ov-alert--danger strong,.ov-alert--danger .ov-ico{color:var(--ov-danger)}
.ov-alert--brand{background:var(--ov-brand-soft)} .ov-alert--brand strong{color:var(--ov-brand-ink)}
.ov-spinner{flex:none; width:20px; height:20px; border-radius:50%; border:2.5px solid var(--ov-brand-line); border-top-color:var(--ov-brand); animation:ov-spin .8s linear infinite}
.ov-badge{display:inline-flex; align-items:center; gap:6px; min-height:26px; padding:0 10px; border-radius:var(--ov-r-pill); background:var(--ov-surface-2); color:var(--ov-ink-2); font-size:var(--ov-fs-xs); font-weight:700; white-space:nowrap}
.ov-badge--dot::before{content:""; width:7px; height:7px; border-radius:50%; background:currentColor}
.ov-badge--brand{background:var(--ov-brand-soft); color:var(--ov-brand-ink)}
.ov-badge--success{background:var(--ov-success-bg); color:var(--ov-success)}
.ov-badge--warning{background:var(--ov-warning-bg); color:var(--ov-warning)}
.ov-badge--danger{background:var(--ov-danger-bg); color:var(--ov-danger)}
.ov-badge--info{background:var(--ov-info-bg); color:var(--ov-info)}
.ov-badge--off{background:var(--ov-off-bg); color:var(--ov-off)}
.ov-toast{display:flex; align-items:center; gap:var(--ov-s2); padding:var(--ov-s3) var(--ov-s4); border-radius:var(--ov-r-md); background:var(--ov-inverse); color:var(--ov-on-inverse); font-size:var(--ov-fs-sm); font-weight:600; box-shadow:var(--ov-shadow-md)}
.ov-toast-zone{position:fixed; left:var(--ov-gutter); right:var(--ov-gutter); bottom:calc(var(--ov-tabbar-h) + 12px); z-index:var(--ov-z-toast); display:flex; flex-direction:column; gap:8px; pointer-events:none}

/* Cartes, listes, accordéons */
.ov-card{display:flex; flex-direction:column; gap:var(--ov-s3); padding:var(--ov-s4); border-radius:var(--ov-r-lg); border:1px solid var(--ov-line); background:var(--ov-surface); min-width:0}
.ov-card--flush{padding:0; gap:0; overflow:hidden}
.ov-card--soft{background:var(--ov-surface-2); border-color:transparent}
.ov-card--brand{background:var(--ov-brand-soft); border-color:transparent}
.ov-card--inverse{background:var(--ov-inverse); border-color:transparent; color:var(--ov-on-inverse)}
.ov-list{list-style:none; margin:0; padding:0; border:1px solid var(--ov-line); border-radius:var(--ov-r-lg); background:var(--ov-surface); overflow:hidden}
.ov-list > li + li{border-top:1px solid var(--ov-line)}
.ov-list--plain{border:0; border-radius:0; background:transparent}
.ov-row{display:flex; align-items:center; gap:var(--ov-s3); width:100%; min-height:52px; padding:var(--ov-s2) var(--ov-s4); border:0; background:none; color:inherit; text-align:left; text-decoration:none; font-size:var(--ov-fs-md); cursor:pointer}
.ov-app a.ov-row{color:inherit}
.ov-row:hover{background:var(--ov-surface-2)}
.ov-row-ico{flex:none; width:36px; height:36px; border-radius:10px; display:grid; place-items:center; background:var(--ov-brand-soft); color:var(--ov-brand-ink)}
.ov-row-main{flex:1; min-width:0; display:flex; flex-direction:column; gap:2px}
.ov-row-title{font-weight:600; line-height:1.3; overflow-wrap:break-word}
.ov-row-sub{font-size:var(--ov-fs-sm); color:var(--ov-ink-3); overflow-wrap:break-word}
.ov-row-end{flex:none; display:flex; align-items:center; gap:var(--ov-s2); color:var(--ov-ink-3)}
.ov-details > summary{list-style:none; display:flex; align-items:center; justify-content:space-between; gap:var(--ov-s3); min-height:52px; padding:var(--ov-s2) var(--ov-s4); font-weight:700; cursor:pointer}
.ov-details > summary::-webkit-details-marker{display:none}
.ov-details > summary::after{content:""; flex:none; width:9px; height:9px; margin-right:4px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:translateY(-3px) rotate(45deg); transition:transform var(--ov-dur)}
.ov-details[open] > summary::after{transform:translateY(2px) rotate(-135deg)}
.ov-details-body{display:flex; flex-direction:column; gap:var(--ov-s3); padding:0 var(--ov-s4) var(--ov-s4)}
.ov-details--bare > summary,.ov-details--bare > .ov-details-body{padding-left:0; padding-right:0}
.ov-details--bare{border-top:1px solid var(--ov-line); border-bottom:1px solid var(--ov-line)}
.ov-details--bare + .ov-details--bare{border-top:0}

/* Médias */
.ov-media{position:relative; flex:none; overflow:hidden; border-radius:var(--ov-r-md); background:var(--ov-surface-2)}
.ov-media > img{display:block; width:100%; height:100%; object-fit:cover}
.ov-media--thumb{width:56px; height:56px}
.ov-media--empty{display:grid; place-items:center; background:var(--ov-brand-soft); color:var(--ov-brand-ink); font-weight:800; font-size:var(--ov-fs-lg)}
.ov-strip{display:flex; gap:var(--ov-s2); overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; margin:0 calc(var(--ov-gutter) * -1); padding:0 var(--ov-gutter)}
.ov-strip::-webkit-scrollbar{display:none}
.ov-strip > *{flex:none; width:68%; aspect-ratio:4/5; scroll-snap-align:start; border-radius:var(--ov-r-lg)}
.ov-strip > *:first-child{width:78%}
.ov-drop{display:flex; flex-direction:column; align-items:center; justify-content:center; gap:var(--ov-s2); min-height:168px; padding:var(--ov-s4); border:2px dashed var(--ov-line-strong); border-radius:var(--ov-r-lg); background:var(--ov-surface); color:var(--ov-ink-2); text-align:center}
.ov-doc{position:relative; overflow:hidden; border-radius:var(--ov-r-lg); background:var(--ov-surface-3); aspect-ratio:3/4; max-height:360px; width:100%}

/* Vitrine publique */
.ov-hero{position:relative; display:flex; flex-direction:column; justify-content:flex-end; min-height:400px; overflow:hidden; background:var(--ov-inverse); color:#fff}
.ov-hero-media{position:absolute; inset:0}
.ov-hero-media > img{width:100%; height:100%; object-fit:cover}
.ov-hero::after{content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(180deg,rgba(20,12,6,.55) 0%,rgba(20,12,6,0) 22%,rgba(20,12,6,0) 34%,rgba(20,12,6,.88) 70%,rgba(20,12,6,.94) 100%)}
.ov-hero-top{position:absolute; top:0; left:0; right:0; z-index:2; display:flex; align-items:center; justify-content:space-between; gap:var(--ov-s2); padding:var(--ov-s3) var(--ov-gutter)}
.ov-hero-body{position:relative; z-index:2; display:flex; flex-direction:column; gap:var(--ov-s2); padding:var(--ov-s5) var(--ov-gutter); pointer-events:none}
.ov-hero-body :where(a,button){pointer-events:auto}
.ov-hero-name{font-size:var(--ov-fs-3xl); font-weight:800; line-height:1.04; letter-spacing:-.02em; text-wrap:balance; overflow-wrap:break-word}
.ov-hero-meta{display:flex; flex-wrap:wrap; gap:4px 12px; font-size:var(--ov-fs-sm); color:#F3EADF}
.ov-hero--nophoto{min-height:0; background:var(--ov-brand-soft); color:var(--ov-ink)}
.ov-hero--nophoto::after{display:none}
.ov-hero--nophoto .ov-hero-top{position:static}
.ov-hero--nophoto .ov-hero-meta{color:var(--ov-ink-2)}
.ov-glass{display:inline-flex; align-items:center; gap:8px; min-height:var(--ov-touch); padding:0 14px; border-radius:var(--ov-r-pill); border:0; background:rgba(255,252,245,.95); color:var(--ov-ink); font-size:var(--ov-fs-sm); font-weight:700; white-space:nowrap; text-decoration:none; cursor:pointer}
.ov-app a.ov-glass{color:var(--ov-ink)}
.ov-glass .ov-logo{width:30px; height:30px; font-size:10px; margin-left:-8px}
.ov-facts{display:flex; flex-wrap:wrap; gap:var(--ov-s2)}
.ov-fact{display:inline-flex; align-items:center; gap:6px; min-height:32px; padding:4px 12px; border-radius:var(--ov-r-pill); background:var(--ov-surface-2); font-size:var(--ov-fs-sm); font-weight:600; color:var(--ov-ink-2)}
.ov-product{position:relative; display:flex; flex-direction:column; min-width:0; overflow:hidden; border-radius:var(--ov-r-lg); border:1px solid var(--ov-line); background:var(--ov-surface)}
.ov-product > .ov-media{width:100%; aspect-ratio:4/5; border-radius:0}
.ov-product-body{flex:1; display:flex; flex-direction:column; gap:4px; padding:var(--ov-s3)}
.ov-product-name{font-weight:700; line-height:1.25; overflow-wrap:break-word}
.ov-product--nophoto .ov-product-body > :nth-child(-n+2){padding-right:44px}
.ov-product--nophoto .ov-product-body{min-height:0; padding-top:calc(var(--ov-s3) + 2px)}
.ov-product .ov-price{margin-top:auto; padding-top:var(--ov-s2); font-size:var(--ov-fs-lg)}
.ov-product-share{position:absolute; top:8px; right:8px; z-index:2; width:var(--ov-touch); height:var(--ov-touch); border-radius:50%; border:0; background:rgba(255,252,245,.95); color:var(--ov-ink); display:grid; place-items:center; cursor:pointer; box-shadow:var(--ov-shadow-sm)}
.ov-product--nophoto .ov-product-share{background:var(--ov-surface-2)}
.ov-qty{display:flex; align-items:center; justify-content:space-between; gap:2px; min-height:var(--ov-control); padding:2px; border-radius:var(--ov-r-md); background:var(--ov-brand-soft)}
.ov-qty > button{width:var(--ov-touch); height:var(--ov-touch); border:0; border-radius:10px; background:var(--ov-surface); color:var(--ov-brand-ink); font-size:20px; font-weight:700; cursor:pointer; display:grid; place-items:center}
.ov-qty > button:last-child{background:var(--ov-brand); color:var(--ov-on-brand)}
.ov-qty > output{min-width:24px; text-align:center; font-weight:800; color:var(--ov-brand-ink); font-variant-numeric:tabular-nums}
.ov-footer{display:flex; flex-direction:column; gap:var(--ov-s4); padding:var(--ov-s5) var(--ov-gutter); background:var(--ov-inverse); color:var(--ov-on-inverse)}
.ov-app .ov-footer a{color:var(--ov-on-inverse-2)}
.ov-footer-links{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 var(--ov-s4); font-size:var(--ov-fs-sm)}
.ov-footer-links a{min-height:var(--ov-touch); display:flex; align-items:center}
.ov-footer-legal{display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px; padding-top:var(--ov-s3); border-top:1px solid #4A3829; font-size:var(--ov-fs-xs); color:var(--ov-on-inverse-2)}

/* Espace vendeur */
.ov-item{display:flex; align-items:center; gap:var(--ov-s3); min-height:76px; padding:var(--ov-s3) var(--ov-s4)}
.ov-item-main{flex:1; min-width:0; display:flex; flex-direction:column; gap:2px}
.ov-item-name{font-weight:700; line-height:1.25; overflow-wrap:break-word}
.ov-item-end{flex:none; display:flex; flex-direction:column; align-items:flex-end; gap:4px}
.ov-manage-head{display:flex; align-items:flex-start; gap:var(--ov-s3)}
.ov-manage-foot{display:flex; align-items:center; gap:var(--ov-s2); padding-top:var(--ov-s3); border-top:1px solid var(--ov-line)}
.ov-manage-foot > .ov-switch{margin-right:auto}
.ov-verify{display:flex; align-items:center; gap:var(--ov-s3); min-height:64px; padding:var(--ov-s2) var(--ov-s2) var(--ov-s2) var(--ov-s4)}
.ov-verify > .ov-check{flex:1}
.ov-stats{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--ov-s2)}
.ov-stats--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.ov-stat{display:flex; flex-direction:column; gap:2px; min-width:0; padding:var(--ov-s3); border-radius:var(--ov-r-lg); border:1px solid var(--ov-line); background:var(--ov-surface)}
.ov-stat-label{font-size:var(--ov-fs-sm); font-weight:600; color:var(--ov-ink-2)}
.ov-stat-value{font-size:var(--ov-fs-2xl); font-weight:800; line-height:1.1; font-variant-numeric:tabular-nums; overflow-wrap:break-word}
.ov-stat-note{font-size:var(--ov-fs-xs); color:var(--ov-ink-3)}
.ov-stat--error .ov-stat-value,.ov-stat--empty .ov-stat-value{color:var(--ov-ink-3)}
.ov-stat .ov-link{min-height:32px; font-size:var(--ov-fs-sm); align-self:flex-start}
.ov-up{color:var(--ov-success); font-weight:700}
.ov-down{color:var(--ov-danger); font-weight:700}
.ov-bars{display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:6px; align-items:end; height:96px}
.ov-bars > span{min-height:4px; border-radius:6px 6px 2px 2px; background:var(--ov-brand-line)}
.ov-bars > span.is-today{background:var(--ov-brand)}
.ov-bars-x{display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:6px; text-align:center; font-size:var(--ov-fs-xs); color:var(--ov-ink-3)}
.ov-tools{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--ov-s2)}
.ov-tool{display:flex; flex-direction:column; align-items:center; justify-content:flex-start; gap:6px; min-height:92px; padding:var(--ov-s3) 4px; border-radius:var(--ov-r-lg); border:1px solid var(--ov-line); background:var(--ov-surface); color:var(--ov-ink); font-size:13px; font-weight:600; line-height:1.2; text-align:center; text-decoration:none; cursor:pointer; overflow-wrap:break-word}
.ov-app a.ov-tool{color:var(--ov-ink)}
.ov-tool:hover{border-color:var(--ov-brand-line)}
.ov-tool-ico{width:40px; height:40px; border-radius:12px; display:grid; place-items:center; background:var(--ov-brand-soft); color:var(--ov-brand-ink)}
.ov-rank{flex:none; width:28px; height:28px; border-radius:50%; display:grid; place-items:center; background:var(--ov-surface-2); font-size:var(--ov-fs-sm); font-weight:800; color:var(--ov-ink-2)}
.ov-meter{height:6px; border-radius:3px; background:var(--ov-surface-2); overflow:hidden}
.ov-meter > span{display:block; height:100%; background:var(--ov-brand); border-radius:3px}
.ov-empty{display:flex; flex-direction:column; align-items:flex-start; gap:var(--ov-s2); padding:var(--ov-s4); border-radius:var(--ov-r-lg); border:1px dashed var(--ov-line-strong)}

/* Ventes — Live (OVQ) et proforma (OMQ) */
.ov-seq{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:var(--ov-s2)}
.ov-seq > li{display:flex; flex-direction:column; gap:var(--ov-s2); padding:var(--ov-s2) var(--ov-s3); border:1px solid var(--ov-line); border-radius:var(--ov-r-lg); background:var(--ov-surface)}
.ov-seq > li.is-current{border:2px solid var(--ov-brand); background:var(--ov-brand-soft)}
.ov-seq-n{flex:none; width:28px; height:28px; border-radius:50%; background:var(--ov-brand); color:var(--ov-on-brand); display:grid; place-items:center; font-weight:800; font-size:13px; font-variant-numeric:tabular-nums}
.ov-seq-foot{display:flex; align-items:center; gap:var(--ov-s2)}
.ov-player{position:relative; overflow:hidden; aspect-ratio:4/5; max-height:380px; width:100%; border-radius:var(--ov-r-xl); background:var(--ov-inverse); color:#fff}
.ov-player::after{content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(180deg,rgba(20,12,6,0) 45%,rgba(20,12,6,.9) 100%)}
.ov-player-info{position:absolute; left:0; right:0; bottom:0; z-index:2; display:flex; flex-direction:column; gap:4px; padding:var(--ov-s4); pointer-events:none}
.ov-live-card{position:relative; display:flex; flex-direction:column; justify-content:flex-end; overflow:hidden; background:var(--ov-inverse); color:#fff; text-decoration:none}
.ov-app a.ov-live-card{color:#fff}
.ov-live-card::after{content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(180deg,rgba(20,12,6,0) 40%,rgba(20,12,6,.9) 100%)}
.ov-live-info{position:relative; z-index:2; display:flex; flex-direction:column; gap:4px; padding:var(--ov-s3); pointer-events:none}
.ov-paper{display:flex; flex-direction:column; gap:var(--ov-s3); padding:var(--ov-s4); border:1px solid var(--ov-line); border-radius:var(--ov-r-md); background:#fff; box-shadow:var(--ov-shadow-md); font-size:var(--ov-fs-sm)}

.ov-seq-live{display:flex; flex-wrap:wrap; align-items:flex-end; gap:var(--ov-s2) var(--ov-s3)}
.ov-seg--sm{grid-auto-columns:auto}
.ov-seg--sm > button{min-height:var(--ov-touch); padding:0 10px; font-size:var(--ov-fs-xs)}
.ov-viewer{position:relative; flex:1; display:flex; flex-direction:column; justify-content:flex-end; min-height:100%; overflow:hidden; color:#fff; touch-action:pan-y; user-select:none}
.ov-viewer-media{position:absolute; inset:0}
.ov-viewer::after{content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(180deg,rgba(20,12,6,.6) 0%,rgba(20,12,6,0) 20%,rgba(20,12,6,0) 40%,rgba(20,12,6,.94) 72%)}
.ov-viewer-top{position:absolute; top:0; left:0; right:0; z-index:3; display:flex; flex-direction:column; gap:10px; padding:var(--ov-s3) var(--ov-gutter)}
.ov-progress{display:grid; grid-auto-flow:column; grid-auto-columns:minmax(0,1fr); gap:4px}
.ov-progress > span{height:3px; border-radius:2px; background:rgba(255,252,245,.35)}
.ov-progress > span.is-done{background:rgba(255,252,245,.85)}
.ov-progress > span.is-current{background:var(--ov-brand)}
.ov-viewer-nav{position:absolute; top:40%; z-index:3; width:var(--ov-touch); height:var(--ov-touch); border-radius:50%; border:0; background:rgba(255,252,245,.9); color:var(--ov-ink); display:grid; place-items:center; cursor:pointer}
.ov-viewer-nav--prev{left:8px} .ov-viewer-nav--next{right:8px}
.ov-viewer-body{position:relative; z-index:3; display:flex; flex-direction:column; gap:8px; padding:var(--ov-s4) var(--ov-gutter) var(--ov-s5)}

.ov-vid-badge{position:absolute; right:3px; bottom:3px; width:18px; height:18px; border-radius:50%; background:rgba(20,12,6,.75); color:#fff; font-size:8px; display:grid; place-items:center}
.ov-vid{position:absolute; inset:0; z-index:1; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; pointer-events:none}
.ov-vid-play{width:56px; height:56px; border-radius:50%; background:rgba(20,12,6,.55); color:#fff; display:grid; place-items:center}
.ov-vid-play .ov-ico{fill:currentColor; stroke:none; width:24px; height:24px; margin-left:3px}
.ov-vid-bar{position:absolute; left:16px; right:16px; top:12px; height:3px; border-radius:2px; background:rgba(255,252,245,.35)}
.ov-vid-bar > span{display:block; height:100%; border-radius:2px; background:#fff}
.ov-vid-time{position:absolute; right:16px; top:22px; font-size:12px; font-weight:700; color:#fff; text-shadow:0 1px 2px rgba(0,0,0,.5)}
.ov-vid--viewer .ov-vid-bar{top:auto; bottom:52%; }
.ov-vid--viewer .ov-vid-time{top:auto; bottom:calc(52% + 8px)}
.ov-gate{position:absolute; inset:0; z-index:5; display:flex; flex-direction:column; justify-content:center; gap:14px; padding:var(--ov-s5) var(--ov-gutter); background:rgba(20,12,6,.82); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); color:#fff}
.ov-lock{flex:1; display:flex; flex-direction:column; gap:10px; padding:56px 12px 24px; background:linear-gradient(180deg,#3B302A,#1C1613)}
.ov-lock-time{display:flex; flex-direction:column; align-items:center; gap:6px; color:#fff; margin-bottom:28px}
.ov-notif{display:flex; align-items:flex-start; gap:10px; width:100%; padding:12px; border:0; border-radius:20px; background:rgba(255,252,245,.94); color:var(--ov-ink); text-align:left; cursor:pointer; font:inherit}

.ov-convert{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-top:4px}
.ov-convert > button{display:flex; align-items:center; gap:8px; min-height:56px; padding:8px 10px; border-radius:var(--ov-r-md); border:1px solid rgba(255,252,245,.28); background:rgba(255,252,245,.1); color:#fff; text-align:left; cursor:pointer; font:inherit}
.ov-convert > button > span{display:flex; flex-direction:column; min-width:0; line-height:1.2}
.ov-convert b{font-size:13px}
.ov-convert > button > span > span{font-size:11px; color:#D9CCBC}

.ov-wave{flex:none; display:inline-flex; align-items:center; gap:3px; height:20px}
.ov-wave > i{width:3px; height:100%; border-radius:2px; background:var(--ov-danger); animation:ov-wave 900ms ease-in-out infinite}
.ov-wave > i:nth-child(2){animation-delay:-150ms} .ov-wave > i:nth-child(3){animation-delay:-300ms} .ov-wave > i:nth-child(4){animation-delay:-450ms} .ov-wave > i:nth-child(5){animation-delay:-600ms}
.ov-wave--light > i{background:#fff}
@keyframes ov-wave{0%,100%{transform:scaleY(.3)}50%{transform:scaleY(1)}}
@media (prefers-reduced-motion:reduce){.ov-wave > i{animation:none; transform:scaleY(.6)}}
.ov-voice{display:flex; align-items:center; gap:8px; min-height:40px; padding:0 12px; border-radius:var(--ov-r-pill); border:0; background:rgba(255,252,245,.14); color:#fff; font:inherit; font-size:13px; font-weight:600; cursor:pointer; text-align:left}

.ov-golive{position:absolute; top:96px; left:var(--ov-gutter); right:var(--ov-gutter); z-index:4; display:flex; align-items:center; gap:10px; min-height:60px; padding:8px 8px 8px 8px; border:0; border-radius:var(--ov-r-lg); background:rgba(255,252,245,.97); color:var(--ov-ink); text-align:left; font:inherit; cursor:pointer; box-shadow:var(--ov-shadow-md)}
.ov-golive-thumb{position:relative; flex:none; width:44px; height:44px; border-radius:10px; overflow:hidden; background:var(--ov-surface-2); outline:2px solid var(--ov-danger); outline-offset:1px}
.ov-golive-cta{flex:none; min-height:44px; padding:0 14px; border-radius:var(--ov-r-md); background:var(--ov-brand); color:var(--ov-on-brand); font-weight:800; font-size:14px; display:grid; place-items:center}

/* Demandes */
.ov-lines{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:6px; font-size:var(--ov-fs-sm)}
.ov-lines > li{display:flex; justify-content:space-between; gap:var(--ov-s3)}
.ov-lines > li > span:last-child{flex:none; font-variant-numeric:tabular-nums; font-weight:600}
.ov-total{display:flex; align-items:baseline; justify-content:space-between; gap:var(--ov-s3); padding-top:var(--ov-s2); border-top:1px solid var(--ov-line); font-weight:800}
.ov-timeline{list-style:none; margin:0; padding:0 0 0 18px; border-left:2px solid var(--ov-line); display:flex; flex-direction:column; gap:var(--ov-s3); font-size:var(--ov-fs-sm)}
.ov-timeline > li{position:relative}
.ov-timeline > li::before{content:""; position:absolute; left:-25px; top:4px; width:12px; height:12px; border-radius:50%; background:var(--ov-surface); border:2px solid var(--ov-line-strong)}
.ov-timeline > li.is-done::before{background:var(--ov-brand); border-color:var(--ov-brand)}

/* Abonnement */
.ov-plans{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--ov-s2)}
.ov-plan{position:relative; display:flex; flex-direction:column; gap:4px; min-width:0; padding:var(--ov-s3); border-radius:var(--ov-r-lg); border:1px solid var(--ov-line-strong); background:var(--ov-surface); cursor:pointer}
.ov-plan > input{position:absolute; inset:0; opacity:0; margin:0; cursor:pointer}
.ov-plan:has(input:checked){border:2px solid var(--ov-brand); background:var(--ov-brand-soft)}
.ov-plan:focus-within{box-shadow:var(--ov-focus)}

/* Paiement */
.ov-pay-grid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--ov-s2)}
.ov-pay{display:flex; align-items:center; gap:10px; min-width:0; min-height:64px; padding:var(--ov-s2) var(--ov-s3); border-radius:var(--ov-r-lg); border:1px solid var(--ov-line-strong); background:var(--ov-surface); color:var(--ov-ink); text-align:left; cursor:pointer}
.ov-pay[aria-pressed="true"]{border:2px solid var(--ov-brand); background:var(--ov-brand-soft)}
.ov-pay-mark{flex:none; width:40px; height:28px; border-radius:6px; display:grid; place-items:center; font-size:11px; font-weight:900; letter-spacing:.02em}
.ov-pay-txt{display:flex; flex-direction:column; min-width:0; line-height:1.2; overflow-wrap:break-word}

/* Superpositions */
.ov-scrim{position:fixed; inset:0; z-index:var(--ov-z-sheet); display:flex; align-items:flex-end; justify-content:center; background:rgba(46,29,18,.48)}
.ov-scrim--center{align-items:center; padding:var(--ov-gutter); z-index:var(--ov-z-dialog)}
.ov-sheet{width:100%; max-width:var(--ov-maxw); max-height:90%; overflow:auto; display:flex; flex-direction:column; gap:var(--ov-s3); padding:var(--ov-s2) var(--ov-gutter) calc(var(--ov-s5) + env(safe-area-inset-bottom)); border-radius:var(--ov-r-xl) var(--ov-r-xl) 0 0; background:var(--ov-bg); box-shadow:var(--ov-shadow-lg)}
.ov-sheet::before{content:""; align-self:center; width:40px; height:4px; margin-bottom:var(--ov-s2); border-radius:2px; background:var(--ov-surface-3)}
.ov-dialog{width:100%; max-width:400px; max-height:100%; overflow:auto; display:flex; flex-direction:column; gap:var(--ov-s3); padding:var(--ov-s5); border-radius:var(--ov-r-xl); background:var(--ov-bg); box-shadow:var(--ov-shadow-md)}

/* admin-ovmq — composition ordinateur, mêmes fondations */
.ov-admin{display:grid; grid-template-columns:208px minmax(0,1fr) 320px; min-height:760px; background:var(--ov-bg)}
.ov-admin-nav{display:flex; flex-direction:column; gap:4px; padding:var(--ov-s4); background:var(--ov-inverse); color:var(--ov-on-inverse)}
.ov-admin-nav a{display:flex; align-items:center; gap:10px; min-height:var(--ov-touch); padding:0 12px; border-radius:10px; color:var(--ov-on-inverse-2); font-size:var(--ov-fs-sm); font-weight:600; text-decoration:none}
.ov-app .ov-admin-nav a{color:var(--ov-on-inverse-2)}
.ov-app .ov-admin-nav a[aria-current="page"]{background:rgba(255,252,245,.12); color:#fff}
.ov-admin-main{display:flex; flex-direction:column; gap:var(--ov-s4); min-width:0; padding:var(--ov-s5)}
.ov-admin-detail{display:flex; flex-direction:column; gap:var(--ov-s3); padding:var(--ov-s5); border-left:1px solid var(--ov-line); background:var(--ov-surface)}
.ov-filters{display:flex; flex-wrap:wrap; align-items:center; gap:var(--ov-s2)}
.ov-table{width:100%; border-collapse:separate; border-spacing:0; overflow:hidden; border:1px solid var(--ov-line); border-radius:var(--ov-r-lg); background:var(--ov-surface); font-size:var(--ov-fs-sm)}
.ov-table th{padding:10px 14px; text-align:left; font-size:var(--ov-fs-xs); font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--ov-ink-3); background:var(--ov-surface-2); border-bottom:1px solid var(--ov-line)}
.ov-table td{padding:12px 14px; border-bottom:1px solid var(--ov-line); vertical-align:middle}
.ov-table tr:last-child td{border-bottom:0}
.ov-table tbody tr{cursor:pointer}
.ov-table tbody tr:hover td,.ov-table tr[aria-selected="true"] td{background:var(--ov-surface-2)}
.ov-table td.ov-num{text-align:right}

.ov-gt{display:grid; overflow:hidden; border:1px solid var(--ov-line); border-radius:var(--ov-r-lg); background:var(--ov-surface); font-size:var(--ov-fs-sm)}
.ov-gt-h{display:flex; align-items:center; white-space:nowrap; padding:10px 10px; font-size:var(--ov-fs-xs); font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--ov-ink-3); background:var(--ov-surface-2); border-bottom:1px solid var(--ov-line)}
.ov-gt-r{display:contents; cursor:pointer}
.ov-gt-c{display:flex; align-items:center; gap:6px; min-width:0; padding:12px 10px; border-bottom:1px solid var(--ov-line); overflow-wrap:break-word}
.ov-gt-c--name{flex-direction:column; align-items:flex-start; justify-content:center; gap:3px}
.ov-gt-sub{display:flex; flex-wrap:wrap; align-items:center; gap:4px 6px}
.ov-gt .ov-badge{min-height:22px; padding:2px 8px; font-size:11px; line-height:1.2; white-space:normal}
.ov-gt-r:hover > .ov-gt-c,.ov-gt-r[aria-selected="true"] > .ov-gt-c{background:var(--ov-surface-2)}
.ov-gt-r[aria-selected="true"] > .ov-gt-c:first-child{box-shadow:inset 3px 0 0 var(--ov-brand)}
.ov-gt-r:last-child > .ov-gt-c{border-bottom:0}

/* Corrections issues des captures réelles (audit 18/10) */
.ov-tab{min-width:0; overflow-wrap:break-word}
.ov-legal{margin-top:auto; display:flex; flex-wrap:wrap; justify-content:center; gap:0 var(--ov-s4); padding-top:var(--ov-s4); font-size:var(--ov-fs-sm)}
.ov-legal a{min-height:var(--ov-touch); display:inline-flex; align-items:center}
.ov-app .ov-legal a{color:var(--ov-ink-2)}
.ov-photos{display:flex; flex-wrap:wrap; gap:var(--ov-s2)}
.ov-photos > .ov-media{width:88px; height:88px}
.ov-photo-add{width:88px; height:88px; flex:none; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; padding:4px; border-radius:var(--ov-r-md); border:2px dashed var(--ov-line-strong); background:var(--ov-surface); color:var(--ov-brand-ink); font-size:12px; font-weight:700; line-height:1.2; text-align:center; cursor:pointer}
.ov-thumb-add{width:64px; height:64px; flex:none; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; border-radius:var(--ov-r-md); border:1.5px dashed var(--ov-brand-line); background:var(--ov-brand-soft); color:var(--ov-brand-ink); font-size:11px; font-weight:700; cursor:pointer}
@media (max-width:260px){ :root{--ov-gutter:8px} .ov-id-sub,.ov-plus-txt{display:none} .ov-tab{font-size:11px; padding:4px 0} .ov-logo{width:32px; height:32px} }
.ov-device.is-narrow{--ov-gutter:8px}
.ov-device.is-narrow .ov-id-sub,.ov-device.is-narrow .ov-plus-txt{display:none}
.ov-device.is-narrow .ov-tab{font-size:11px; padding:4px 0}
.ov-device.is-narrow .ov-logo{width:32px; height:32px}

/* Cadre de démonstration (galerie uniquement) */
.ov-device{position:relative; display:flex; flex-direction:column; width:360px; height:800px; overflow:auto; border-radius:28px; border:1px solid var(--ov-line); background:var(--ov-bg); box-shadow:0 30px 60px -30px rgba(46,29,18,.45); scrollbar-width:none}
.ov-device::-webkit-scrollbar{display:none}
.ov-device > .ov-page{flex:1 0 auto}
.ov-device .ov-tabbar,.ov-device .ov-dock{position:sticky}
.ov-device .ov-has-tabbar,.ov-device .ov-has-dock{padding-bottom:var(--ov-s6)}
.ov-device .ov-scrim{position:absolute}


/* ===== OVMQ 1.1 — ajustements issus de l’audit des captures du 18/10/2026 =====
   À charger APRÈS ovmq.css (ou à fusionner à la fin). Mêmes couleurs de marque, mêmes composants :
   on corrige tailles, densité, barres fixes, cartes, compteurs, pied, texte agrandi et anglais. */

/* Tokens — texte relatif à --ov-base (= 1rem en production ; le banc de test le fixe à 20,8 / 32 px) */
:root,.ov-app{
  --ov-base:1rem;
  --ov-fs-xs:calc(var(--ov-base) * .75); --ov-fs-sm:calc(var(--ov-base) * .875); --ov-fs-md:var(--ov-base); --ov-fs-lg:calc(var(--ov-base) * 1.125);
  --ov-fs-xl:calc(var(--ov-base) * 1.125 + 4px); --ov-fs-2xl:calc(var(--ov-base) * 1.125 + 10px); --ov-fs-3xl:calc(var(--ov-base) * 1.125 + 16px);
  --ov-fs-tab:min(calc(var(--ov-base) * .75), 14px);
}
:root{
  --ov-control-lg:52px; --ov-tabbar-h:64px; --ov-dock-max:120px;
  --ov-switch-off:#8F7E6E; --ov-switch-on:var(--ov-success); --ov-zoom-bg:rgba(20,12,6,.94);
  --ov-s5:24px; --ov-card-pad:14px; --ov-tile-pad:10px; --ov-grid-gap:10px;
}
html[data-omq-density="compact"]{--ov-s5:16px; --ov-card-pad:12px; --ov-tile-pad:8px; --ov-grid-gap:8px}
html[data-omq-density="airy"]{--ov-s5:32px; --ov-card-pad:16px; --ov-tile-pad:12px; --ov-grid-gap:12px}
.ov-app[data-text="130"]{--ov-base:20.8px}
.ov-app[data-text="150"]{--ov-base:24px}
.ov-app[data-text="200"]{--ov-base:32px}

/* Mots jamais coupés au milieu (sauf mot plus long que la ligne) */
.ov-h1,.ov-h2,.ov-h3,.ov-price,.ov-row-title,.ov-row-sub,.ov-item-name,.ov-product-name,.ov-hero-name{overflow-wrap:break-word}
.ov-btn{line-height:1.15; overflow-wrap:break-word; hyphens:manual}
.ov-btn--lg{min-height:var(--ov-control-lg); font-size:var(--ov-fs-md)}
.ov-amount{white-space:nowrap; font-variant-numeric:tabular-nums}

/* Barre d’onglets : une ligne, jamais de mot coupé */
.ov-tabbar{min-height:var(--ov-tabbar-h); padding-top:4px; padding-bottom:calc(4px + env(safe-area-inset-bottom))}
.ov-tab{min-width:0; min-height:52px; gap:2px; font-size:var(--ov-fs-tab); line-height:1.15}
.ov-tab > .ov-ico{width:22px; height:22px}
.ov-tab-label{display:block; max-width:100%; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}

/* En-tête compressible */
.ov-topbar{container:topbar / inline-size; min-height:var(--ov-topbar-h)}
.ov-plus{gap:4px}
@container topbar (max-width:18em){
  .ov-plus{width:44px; padding:0; justify-content:center}
  .ov-plus-txt{display:none}
  .ov-logo{width:32px; height:32px; font-size:10px}
}
.ov-back{font-size:var(--ov-fs-sm); text-decoration:none; color:var(--ov-brand-ink)}

/* Compteurs */
.ov-cat-head{display:flex; align-items:center; gap:8px; margin:0; font-size:var(--ov-fs-md); font-weight:800; line-height:1.2}
.ov-count{display:inline-flex; align-items:center; justify-content:center; min-width:24px; height:24px; padding:0 8px; border-radius:var(--ov-r-pill); background:var(--ov-surface-2); color:var(--ov-ink-2); font-size:var(--ov-fs-xs); font-weight:700; font-variant-numeric:tabular-nums}
.ov-chip .ov-count{height:22px; min-width:22px; padding:0 6px; background:rgba(46,29,18,.08)}
.ov-chip[aria-pressed="true"] .ov-count{background:rgba(255,252,245,.22); color:inherit}

/* Carte d’état du tableau de bord */
.ov-status{display:flex; flex-direction:column; gap:var(--ov-s3); padding:var(--ov-card-pad); border-radius:var(--ov-r-lg); background:var(--ov-brand-soft)}
.ov-status-actions{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) 44px; gap:var(--ov-s2)}

/* Catalogue : 2 colonnes tant que chaque carte garde ≥ 7em */
.ov-catalog{container:catalog / inline-size; display:flex; flex-direction:column; gap:var(--ov-s3); min-width:0}
.ov-pgrid{display:grid; gap:var(--ov-grid-gap); grid-template-columns:repeat(2,minmax(0,1fr)); align-items:stretch}
@container catalog (max-width:14.6em){ .ov-pgrid{grid-template-columns:minmax(0,1fr)} }
@container catalog (min-width:40em){ .ov-pgrid{grid-template-columns:repeat(auto-fill,minmax(13.75em,1fr))} }

/* Carte produit vendeur : la carte ouvre la fiche, la photo ouvre le zoom */
.ov-pcard{position:relative; display:flex; flex-direction:column; min-width:0; overflow:hidden; border-radius:var(--ov-r-lg); border:1px solid var(--ov-line); background:var(--ov-surface)}
.ov-pcard:focus-within{box-shadow:var(--ov-focus)}
.ov-pcard-photo{position:relative; z-index:2; display:block; width:100%; aspect-ratio:4/3; padding:0; border:0; background:var(--ov-surface-2); cursor:zoom-in; overflow:hidden}
.ov-pcard-photo > img{display:block; width:100%; height:100%; object-fit:cover}
.ov-pcard-nophoto{display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; width:100%; aspect-ratio:4/3; background:var(--ov-surface-2); color:var(--ov-ink-3); font-size:var(--ov-fs-xs); font-weight:700}
.ov-pcard-body{flex:1; display:flex; flex-direction:column; gap:4px; padding:var(--ov-tile-pad)}
.ov-pcard-top{display:flex; align-items:flex-start; justify-content:space-between; gap:6px}
.ov-app a.ov-pcard-link{color:var(--ov-ink); text-decoration:none; font-weight:700; line-height:1.25; overflow-wrap:break-word; min-width:0}
.ov-pcard-link::after{content:""; position:absolute; inset:0; z-index:1}
.ov-pcard-link:focus-visible{box-shadow:none} .ov-pcard-link:focus-visible::after{box-shadow:inset 0 0 0 3px var(--ov-brand); border-radius:var(--ov-r-lg)}
.ov-pcard-edit{flex:none; color:var(--ov-ink-3); margin-top:2px}
.ov-pcard-state{position:relative; z-index:2; margin-top:auto; padding-top:4px; display:flex; align-items:center; justify-content:space-between; gap:6px; min-height:44px}
.ov-pcard .ov-price{font-size:var(--ov-fs-md); padding-top:0; margin-top:0}

/* Carte produit publique */
.ov-pubcard{position:relative; display:flex; flex-direction:column; min-width:0; overflow:hidden; border-radius:var(--ov-r-lg); border:1px solid var(--ov-line); background:var(--ov-surface)}
.ov-pubcard-photo{position:relative; display:block; width:100%; aspect-ratio:4/3; padding:0; border:0; background:var(--ov-surface-2); overflow:hidden; cursor:zoom-in}
.ov-pubcard-body{flex:1; display:flex; flex-direction:column; gap:4px; padding:var(--ov-tile-pad)}
.ov-pubcard-act{margin-top:auto; padding-top:6px}
.ov-pubcard .ov-product-share{z-index:3}
.ov-stock{font-size:var(--ov-fs-xs); font-weight:700; color:var(--ov-ink-2)}
.ov-stock--low{color:var(--ov-warning)}

/* Quatre indicateurs : une ligne si lisibles, sinon 2 × 2 */
.ov-stats4{container:stats / inline-size}
.ov-stats4-grid{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:var(--ov-s2)}
@container stats (max-width:18.49em){ .ov-stats4-grid{grid-template-columns:repeat(2,minmax(0,1fr))} }
.ov-stat4{display:flex; flex-direction:column; justify-content:center; gap:2px; min-width:0; min-height:64px; padding:8px 10px; border-radius:var(--ov-r-md); border:1px solid var(--ov-line); background:var(--ov-surface); text-align:left; font:inherit; color:inherit}
.ov-stat4-label{font-size:var(--ov-fs-xs); font-weight:600; color:var(--ov-ink-2); white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.ov-stat4-value{font-size:var(--ov-fs-lg); font-weight:800; line-height:1.1; white-space:nowrap; font-variant-numeric:tabular-nums}
button.ov-stat4{cursor:pointer}
.ov-stat4--error .ov-stat4-value{color:var(--ov-ink-3)}
.ov-stat4-retry{font-size:var(--ov-fs-xs); font-weight:700; color:var(--ov-brand-ink); text-decoration:underline}

/* Dock : résumé sur une ligne + une action ; jamais de notice */
.ov-dock{gap:6px}
.ov-dock-summary{display:flex; align-items:center; gap:var(--ov-s2); min-height:44px}
.ov-dock-sum-text{flex:1 1 auto; min-width:0; font-weight:700; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.ov-dock-hint{font-size:var(--ov-fs-xs); color:var(--ov-ink-3); text-align:center; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.ov-dock-pair{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,2fr); gap:var(--ov-s2)}

/* Pied de page : exactement deux rangées, identiques partout */
.ov-legal{container:legal / inline-size; margin-top:auto; display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:0 .25em; padding-top:8px; border-top:1px solid var(--ov-line); font-size:var(--ov-fs-sm)}
.ov-legal:has(> .ov-legal-row){flex-direction:column; flex-wrap:nowrap; gap:0}
.ov-legal-row{display:flex; align-items:center; justify-content:center; gap:0 .25em; min-height:44px; margin:0}
.ov-app .ov-legal a{display:inline-flex; align-items:center; min-height:44px; padding:0 .375em; color:var(--ov-brand-ink); text-decoration:underline; text-underline-offset:3px}
.ov-legal-sep{color:var(--ov-ink-3)}
@container legal (max-width:15em){ .ov-legal-row{flex-direction:column; min-height:0} .ov-legal-sep{display:none} }

/* Interrupteur : piste éteinte ≥ 3:1, allumée = succès (comme les deux apps) */
.ov-switch input{background:var(--ov-switch-off)}
.ov-switch input:checked{background:var(--ov-switch-on)}

/* Zoom photo plein écran */
.ov-zoom{position:fixed; inset:0; z-index:var(--ov-z-dialog); display:flex; flex-direction:column; width:100%; height:100%; max-width:none; max-height:none; margin:0; padding:0; border:0; background:var(--ov-zoom-bg); color:#fff}
.ov-zoom::backdrop{background:var(--ov-zoom-bg)}
.ov-zoom-top{display:flex; justify-content:flex-end; padding:8px}
.ov-zoom-close{display:inline-flex; align-items:center; gap:6px; min-height:44px; padding:0 14px; border:0; border-radius:var(--ov-r-pill); background:rgba(255,252,245,.95); color:var(--ov-ink); font:inherit; font-weight:700; cursor:pointer}
.ov-zoom-img{position:relative; flex:1; min-height:0; margin:0 8px; border-radius:var(--ov-r-md); overflow:hidden}
.ov-zoom-cap{display:flex; justify-content:space-between; gap:12px; padding:12px 16px calc(16px + env(safe-area-inset-bottom)); font-weight:700}
.ov-device .ov-zoom{position:absolute}

/* Document (devis, proforma) */
.ov-paper-head{display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; align-items:start}
.ov-paper-table{width:100%; border-collapse:collapse; font-size:var(--ov-fs-sm)}
.ov-paper-table th{padding:6px 0; text-align:left; font-size:var(--ov-fs-xs); color:var(--ov-ink-3); font-weight:700; border-bottom:1px solid var(--ov-line)}
.ov-paper-table td{padding:8px 0; vertical-align:top; border-bottom:1px solid var(--ov-line)}
.ov-paper-table .ov-num{text-align:right; white-space:nowrap; padding-left:8px}

/* Plus : groupes communs */
.ov-plus-group{display:flex; flex-direction:column; gap:6px}

/* Langue */
.ov-lang{display:inline-flex; flex:none; border:1px solid var(--ov-line-strong); border-radius:var(--ov-r-pill); overflow:hidden; background:var(--ov-surface)}
.ov-lang > button{min-width:44px; min-height:44px; padding:0 8px; border:0; background:transparent; font:inherit; font-size:var(--ov-fs-xs); font-weight:800; color:var(--ov-ink-2); cursor:pointer}
.ov-lang > button[aria-pressed="true"]{background:var(--ov-ink); color:var(--ov-on-inverse)}

/* Bloc plateforme (pages publiques) */
.ov-platform{display:flex; flex-direction:column; gap:var(--ov-s2)}

/* Barre de marque publique */
.ov-brandbar{display:flex; align-items:center; gap:var(--ov-s2); min-height:56px; padding:6px var(--ov-gutter)}
.ov-brandbar .ov-id{flex:1}


/* ===== OVMQ 1.1 — compléments (18/10/2026) ===== */
.ov-app{font-family:var(--ov-font)}

/* Barres fixes : la page et le focus clavier réservent leur hauteur */
html{scroll-padding-bottom:calc(var(--ov-bars-h, 0px) + 16px)}
.ov-device{scroll-padding-bottom:calc(var(--ov-tabbar-h) + 16px)}

/* Segmenté : tous les segments sur une ligne, sinon tous empilés (jamais un segment seul en 2e rangée) */
.ov-seg{display:flex; flex-wrap:wrap}
.ov-seg > button{flex:1 1 calc((var(--ov-seg-min, 15em) - 100%) * 999); min-width:0}
.ov-seg--2{--ov-seg-min:11em}
.ov-seg--4{--ov-seg-min:19em}

/* Rangée d’actions qui se replie d’un seul bloc */
.ov-actions-row--wrap{display:flex; flex-wrap:wrap}
.ov-actions-row--wrap > *{flex:1 1 calc((var(--ov-row-min, 18em) - 100%) * 999); min-width:0}

/* Filtres : une seule rangée qui défile horizontalement */
.ov-chips--scroll{flex-wrap:nowrap; overflow-x:auto; overscroll-behavior-x:contain; scrollbar-width:none; margin-inline:calc(-1 * var(--ov-gutter)); padding-inline:var(--ov-gutter); scroll-padding-inline:var(--ov-gutter)}
.ov-chips--scroll::-webkit-scrollbar{display:none}

/* Moyens de paiement : nom jamais coupé (logo au-dessus du nom, 1 colonne si étroit) */
.ov-pay-grid{grid-template-columns:repeat(auto-fit, minmax(min(100%, 8.5em), 1fr))}
.ov-pay{flex-direction:column; align-items:flex-start; justify-content:center; gap:6px; min-height:84px; padding:10px 12px}
.ov-pay-txt{overflow-wrap:normal; word-break:normal; hyphens:none}

/* Live visiteur : centre dégagé ; nom, prix et action en bas ; détails repliables d’un geste */
.ov-viewer::after{background:linear-gradient(180deg,rgba(20,12,6,.6) 0%,rgba(20,12,6,0) 18%,rgba(20,12,6,0) 68%,rgba(20,12,6,.35) 100%)}
.ov-viewer-body{padding:0; gap:0}
.ov-golive--inline{position:relative; top:auto; left:auto; right:auto; margin:0 var(--ov-gutter) 8px}
.ov-viewer-mute{display:grid; place-items:center; width:44px; height:44px; margin:-4px -6px -4px 0; border:0; border-radius:50%; background:rgba(20,12,6,.45); color:#fff; cursor:pointer}
.ov-viewer-mute[aria-pressed="true"]{background:#fff; color:var(--ov-ink)}
.ov-vsheet{display:flex; flex-direction:column; gap:10px; padding:12px var(--ov-gutter) calc(14px + env(safe-area-inset-bottom)); border-radius:20px 20px 0 0; background:rgba(20,12,6,.74); -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px)}
.ov-vsum{display:flex; align-items:flex-start; gap:10px}
.ov-vsum-main{flex:1; min-width:0; display:flex; flex-direction:column; gap:2px}
.ov-vsum-name{font-size:var(--ov-fs-lg); font-weight:800; line-height:1.2; overflow-wrap:break-word}
.ov-vsum-toggle{flex:none; display:inline-flex; align-items:center; gap:4px; min-height:44px; padding:0 12px; border:1px solid rgba(255,252,245,.4); border-radius:var(--ov-r-pill); background:transparent; color:#fff; font:inherit; font-size:var(--ov-fs-sm); font-weight:700; cursor:pointer}
.ov-vinfo{display:flex; flex-direction:column; gap:8px; padding-top:10px; border-top:1px solid rgba(255,252,245,.18)}
.ov-vbar{display:grid; grid-template-columns:44px minmax(0,1fr) 44px 44px; gap:8px; align-items:center}
.ov-vnav{--_bg:rgba(255,252,245,.16); --_fg:#fff; --_bd:transparent}

/* Ventes OVQ : tunnel du fil et liens par type */
.ov-funnel{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:var(--ov-s3)}
.ov-funnel-step{display:flex; flex-direction:column; gap:4px}
.ov-funnel-label{font-size:var(--ov-fs-sm); font-weight:700}
.ov-funnel-val{font-size:var(--ov-fs-lg); font-weight:800; font-variant-numeric:tabular-nums; white-space:nowrap}
.ov-funnel-bar{height:10px; border-radius:var(--ov-r-pill); background:var(--ov-surface-2); overflow:hidden}
.ov-funnel-bar > span{display:block; height:100%; border-radius:inherit; background:var(--ov-brand)}
.ov-linkrow{display:flex; flex-direction:column; gap:4px; padding-top:12px; border-top:1px solid var(--ov-line)}
.ov-linkrow:first-child{padding-top:0; border-top:0}
.ov-linkrow-acts{display:flex; flex-wrap:wrap; align-items:center; gap:4px 10px}
.ov-linkrow-url{font-size:var(--ov-fs-sm); font-weight:600; color:var(--ov-brand-ink); overflow-wrap:break-word; min-width:0}
.ov-note{font-size:var(--ov-fs-sm); color:var(--ov-ink-2); line-height:1.4}
.ov-prodstat{display:grid; grid-template-columns:44px minmax(0,1fr); gap:10px; padding-top:12px; border-top:1px solid var(--ov-line)}
.ov-prodstat:first-child{padding-top:0; border-top:0}
.ov-qr-slot{display:grid; place-items:center; align-self:center; width:min(100%, 180px); aspect-ratio:1; padding:12px; border:2px dashed var(--ov-line-strong); border-radius:var(--ov-r-md); color:var(--ov-ink-3); font-size:var(--ov-fs-xs); text-align:center; overflow-wrap:break-word}

/* Niveaux d’un écran */
.ov-tier{display:flex; flex-direction:column; gap:var(--ov-s3); min-width:0}
.ov-tier-title{margin:0; font-size:var(--ov-fs-xs); font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--ov-ink-3)}
.ov-details > summary::-webkit-details-marker{display:none}

/* États */
@keyframes ov-pulse{50%{opacity:.5}}
.ov-skeleton{display:block; border-radius:var(--ov-r-md); background:var(--ov-surface-3); animation:ov-pulse 1.4s ease-in-out infinite}
.ov-btn[aria-busy="true"]{position:relative; pointer-events:none; color:transparent}
.ov-btn[aria-busy="true"]::after{content:""; position:absolute; inset:0; margin:auto; width:18px; height:18px; border-radius:50%; border:2.5px solid var(--_fg); border-right-color:transparent; animation:ov-spin .8s linear infinite}
.ov-reason{font-size:var(--ov-fs-xs); color:var(--ov-ink-2); text-align:center}
@media (prefers-reduced-motion:reduce){.ov-skeleton,.ov-btn[aria-busy="true"]::after{animation:none}}

/* 1.1 — finitions de la référence */
.ov-app{font-size:var(--ov-fs-md); line-height:var(--ov-lh); color:var(--ov-ink)}
.ov-brandbar{container:brandbar / inline-size; display:flex; align-items:center; gap:var(--ov-s2); min-height:56px; padding:6px var(--ov-gutter)}
.ov-brandbar .ov-id{flex:1; min-width:0}
.ov-signin-ico{display:none}
@container brandbar (max-width:22em){ .ov-signin{width:44px; padding:0} .ov-signin-txt{display:none} .ov-signin-ico{display:block} }
@container brandbar (max-width:16em){ .ov-brandbar .ov-id-text{display:none} }
.ov-tier{padding-top:var(--ov-s4); border-top:1px solid var(--ov-line)}
.ov-pubcard .ov-product-share{width:44px; height:44px}
.ov-row-chev{flex:none; width:20px; height:20px; color:var(--ov-ink-3)}
.ov-row-sub--danger{color:var(--ov-danger); font-weight:700}
.ov-stat4-retry{min-height:0}
.ov-pcard-nophoto .ov-ico{width:22px; height:22px}

/* 1.1 — largeur : titres plafonnés à la colonne, onglets jamais tronqués, carte d’état */
.ov-page{container:page / inline-size}
.ov-h1{font-size:min(var(--ov-fs-3xl), 12.5cqi)}
.ov-h2{font-size:min(var(--ov-fs-2xl), 11cqi)}
.ov-h3{font-size:min(var(--ov-fs-xl), 10cqi)}
.ov-tabbar{container:tabbar / inline-size; padding-inline:4px; gap:2px}
.ov-tab{padding:4px 0; font-size:min(var(--ov-fs-tab), 3.8cqi)}
.ov-card{padding:var(--ov-card-pad)}
.ov-status{container:status / inline-size}
.ov-status-actions{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto}
@container status (max-width:20em){ .ov-status-actions .ov-ico{display:none} }
@container status (max-width:15em){ .ov-status-actions{grid-template-columns:minmax(0,1fr)} }

/* ===== Carte promo WhatsApp (statut 9:16 · message 4:5) =====
   Toutes les tailles en cqi (% de la largeur de la carte) : même rendu en aperçu 270 px et à l’export 1080 px.
   --top / --bot = zones couvertes par l’interface du statut (barre de progression, réponse) : aucun contenu essentiel dedans. */
.ov-promo-frame{container:promo / inline-size; width:100%; --ov-promo-backdrop:#F3EEE6}
.ov-promo{--top:20cqi; --bot:24cqi; position:relative; display:flex; flex-direction:column; aspect-ratio:9/16; overflow:hidden; border-radius:3cqi; font-family:var(--ov-font); line-height:1.1; -webkit-font-smoothing:antialiased; isolation:isolate}
.ov-promo--msg{aspect-ratio:4/5; --top:6cqi; --bot:6cqi}
.ov-promo-media{position:absolute; inset:0; z-index:0}
.ov-promo-media image-slot,.ov-promo-photo image-slot{display:block; width:100%; height:100%}
.ov-promo-shop{display:inline-flex; align-items:center; gap:2.2cqi; min-width:0; max-width:58cqi; padding:1.6cqi 4cqi 1.6cqi 1.6cqi; border-radius:6cqi; background:rgba(255,252,245,.96); color:var(--ov-ink); font-size:4.2cqi; font-weight:800}
.ov-promo-shop b{min-width:0; line-height:1.1; overflow-wrap:break-word}
.ov-promo-logo{flex:none; display:grid; place-items:center; width:8cqi; height:8cqi; border-radius:50%; background:var(--ov-brand); color:var(--ov-on-brand); font-size:3cqi; font-weight:900}
.ov-promo-disc{flex:none; display:grid; place-items:center; width:29cqi; height:29cqi; border-radius:50%; background:var(--ov-brand); color:var(--ov-on-brand); font-size:9cqi; font-weight:900; letter-spacing:-.03em; white-space:nowrap; transform:rotate(-9deg); box-shadow:0 2cqi 6cqi rgba(20,12,6,.35)}
.ov-promo-eyebrow{font-size:3.8cqi; font-weight:900; letter-spacing:.14em; text-transform:uppercase}
.ov-promo-name{font-size:8.6cqi; font-weight:800; line-height:1.04; letter-spacing:-.015em; overflow-wrap:break-word; text-wrap:balance}
.ov-promo-prices{display:flex; align-items:baseline; flex-wrap:wrap; gap:0 3cqi}
.ov-promo-new{font-size:14cqi; font-weight:900; line-height:1; letter-spacing:-.035em; white-space:nowrap; font-variant-numeric:tabular-nums}
.ov-promo-new small{margin-left:1.4cqi; font-size:.4em; font-weight:800; letter-spacing:0}
.ov-promo-old{font-size:5cqi; font-weight:700; white-space:nowrap; text-decoration:line-through; text-decoration-thickness:.5cqi; opacity:.78}
.ov-promo-when{display:flex; align-items:center; gap:2cqi; align-self:flex-start; padding:2.4cqi 4cqi; border-radius:2.4cqi; font-size:4.5cqi; font-weight:800; white-space:nowrap}
.ov-promo-when svg{flex:none; width:5.4cqi; height:5.4cqi; fill:none; stroke:currentColor; stroke-width:2.3; stroke-linecap:round; stroke-linejoin:round}
.ov-promo-foot{display:flex; align-items:center; justify-content:space-between; gap:3cqi; font-size:4cqi; font-weight:700}
.ov-promo-stock{font-weight:900}
.ov-promo-url{letter-spacing:.01em; white-space:nowrap}
/* Style Photo */
.ov-promo--photo{background:#140C06; color:#fff}
.ov-promo--photo::after{content:""; position:absolute; inset:0; z-index:1; pointer-events:none; background:linear-gradient(180deg,rgba(20,12,6,.5) 0,rgba(20,12,6,0) 30%,rgba(20,12,6,0) 40%,rgba(20,12,6,.9) 74%,rgba(20,12,6,.96) 100%)}
.ov-promo--photo .ov-promo-top{position:absolute; z-index:2; top:var(--top); left:6cqi; right:6cqi; display:flex; justify-content:space-between; align-items:flex-start; gap:3cqi}
.ov-promo--photo .ov-promo-body{position:absolute; z-index:2; left:6cqi; right:6cqi; bottom:var(--bot); display:flex; flex-direction:column; gap:2.6cqi}
.ov-promo--photo .ov-promo-eyebrow{color:var(--ov-brand-line)}
.ov-promo--photo .ov-promo-when{background:#fff; color:var(--ov-ink)}
.ov-promo--photo .ov-promo-when svg{color:var(--ov-brand)}
/* Style Étiquette */
.ov-promo--tag{gap:2.6cqi; padding:var(--top) 6cqi var(--bot); background:#FFFCF5; color:var(--ov-ink)}
.ov-promo--tag::before{content:""; position:absolute; inset:0 0 auto; height:calc(var(--top) - 6cqi); background:var(--ov-brand-soft); border-bottom:.6cqi solid var(--ov-brand)}
.ov-promo-photo{position:relative; flex:1 1 0; min-height:22cqi; border-radius:3cqi; overflow:hidden; background:var(--ov-surface-2)}
.ov-promo--tag .ov-promo-disc{position:absolute; right:3cqi; bottom:3cqi; width:25cqi; height:25cqi; font-size:7.6cqi}
.ov-promo--tag .ov-promo-eyebrow{color:var(--ov-brand-ink)}
.ov-promo--tag .ov-promo-new{color:var(--ov-brand-ink)}
.ov-promo-perf{position:relative; flex:none; height:0; margin:1.4cqi -6cqi; border-top:.6cqi dashed var(--ov-brand-line)}
.ov-promo-perf::before,.ov-promo-perf::after{content:""; position:absolute; top:-4.6cqi; width:9cqi; height:9cqi; border-radius:50%; background:var(--ov-promo-backdrop)}
.ov-promo-perf::before{left:-4.5cqi} .ov-promo-perf::after{right:-4.5cqi}
.ov-promo--tag .ov-promo-when{align-self:stretch; background:var(--ov-brand-soft); color:var(--ov-brand-ink)}
.ov-promo--tag .ov-promo-foot .ov-promo-shop{padding:0; background:none; font-size:4cqi}
/* Style Affiche */
.ov-promo--poster{gap:2.6cqi; padding:var(--top) 6cqi var(--bot); background:var(--ov-brand-ink); color:#fff}
.ov-promo-big{display:flex; align-items:flex-end; gap:2cqi; font-size:27cqi; font-weight:900; line-height:.82; letter-spacing:-.06em; color:var(--ov-brand-soft); white-space:nowrap}
.ov-promo-big small{padding-bottom:1.4cqi; font-size:5cqi; font-weight:800; letter-spacing:.02em; line-height:1.1; white-space:normal; color:#fff}
.ov-promo--poster .ov-promo-photo{border-radius:46cqi 46cqi 3cqi 3cqi; background:rgba(255,252,245,.12)}
.ov-promo--poster .ov-promo-old{opacity:.72}
.ov-promo--poster .ov-promo-when{align-self:stretch; background:var(--ov-brand); color:var(--ov-on-brand); box-shadow:inset 0 0 0 .5cqi rgba(255,252,245,.25)}
.ov-promo--msg .ov-promo-big{font-size:20cqi}
.ov-promo--msg .ov-promo-name{font-size:7.4cqi}
.ov-promo--msg .ov-promo-new{font-size:12cqi}
/* Repères de zones du statut (aperçu seulement, jamais exportés) */
.ov-promo-safe{position:absolute; left:0; right:0; z-index:5; display:flex; align-items:flex-end; justify-content:center; padding:1.4cqi; background:repeating-linear-gradient(135deg,rgba(179,38,30,.16) 0 2cqi,rgba(179,38,30,.06) 2cqi 4cqi); border:0 dashed #B3261E; color:#fff; font-size:3.4cqi; font-weight:800; pointer-events:none}
.ov-promo-safe span{padding:.6cqi 2cqi; border-radius:99cqi; background:#B3261E}
.ov-promo-safe--top{top:0; height:var(--top); border-bottom-width:.4cqi}
.ov-promo-safe--bot{bottom:0; height:var(--bot); align-items:flex-start; border-top-width:.4cqi}

/* ===== 23/10 · PAP + composants communs corrigés ===== */
/* Thème PAP — noir sur blanc, Figtree, même structure que OMQ / OVQ */
[data-theme="pap"]{--ov-brand:#141414; --ov-brand-hover:#000000; --ov-brand-ink:#141414; --ov-brand-soft:#EFEFEF; --ov-brand-line:#CFCFCF; --ov-on-brand:#FFFFFF;
  --ov-bg:#FFFFFF; --ov-surface:#FFFFFF; --ov-surface-2:#F5F5F5; --ov-surface-3:#E8E8E8; --ov-line:#E3E3E3; --ov-line-strong:#8A8A8A; --ov-ink:#141414; --ov-ink-2:#444444; --ov-ink-3:#5E5E5E; --ov-inverse:#141414; --ov-on-inverse:#FFFFFF; --ov-on-inverse-2:#D6D6D6}
:root{--tool-omq:#17633F; --tool-ovq:#C2410C; --tool-present:#3F7A5F; --tool-rh:#2459D6; --tool-copro:#4F46E5; --tool-auto:#7C5A10}
.ov-accent{font:inherit; letter-spacing:inherit}
.ov-wordmark{font-weight:900; font-size:26px; letter-spacing:-.06em; line-height:1; color:var(--ov-ink); text-decoration:none}
.ov-wordmark sup{font-size:9px; font-weight:700; letter-spacing:0; vertical-align:top; margin-left:1px}
.ov-display{font-size:clamp(34px,9cqi,64px); font-weight:900; line-height:1; letter-spacing:-.04em; text-wrap:balance}
.ov-cq{container:page / inline-size}
/* Sous-navigation (PAP) */
.ov-subnav{display:flex; gap:4px; overflow-x:auto; scrollbar-width:none; border-bottom:1px solid var(--ov-line); padding:0 var(--ov-gutter)}
.ov-subnav a{display:flex; align-items:center; min-height:44px; padding:0 12px; font-size:var(--ov-fs-sm); font-weight:700; color:var(--ov-ink-2); text-decoration:none; white-space:nowrap; border-bottom:2px solid transparent}
.ov-subnav a[aria-current="page"]{color:var(--ov-ink); border-bottom-color:var(--ov-ink)}
/* Promesse en 3 étapes */
.ov-promise{display:grid; grid-template-columns:minmax(0,1fr); gap:8px; list-style:none; margin:0; padding:0; counter-reset:p}
.ov-promise li{counter-increment:p; display:flex; align-items:center; gap:12px; min-height:52px; padding:8px 12px; border-radius:var(--ov-r-md); background:var(--ov-surface); border:1px solid var(--ov-line); font-size:var(--ov-fs-sm); line-height:1.3}
.ov-promise li::before{content:counter(p); flex:none; display:grid; place-items:center; width:28px; height:28px; border-radius:50%; background:var(--ov-brand); color:var(--ov-on-brand); font-weight:800; font-size:13px}
.ov-promise b{display:block; font-size:var(--ov-fs-md)}
@container page (min-width:520px){ .ov-promise{grid-template-columns:repeat(3,minmax(0,1fr))} .ov-promise li{flex-direction:column; align-items:flex-start; min-height:0; padding:12px} }
/* Démo (exemple) */
.ov-demo{display:flex; flex-direction:column; border-radius:var(--ov-r-lg); border:1px solid var(--ov-line); background:var(--ov-surface); overflow:hidden}
.ov-demo-head{display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 16px; background:var(--ov-surface-2)}
.ov-demo-tabs{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:4px; padding:6px; border-bottom:1px solid var(--ov-line)}
.ov-demo-tabs button{display:flex; align-items:center; justify-content:center; gap:6px; min-height:44px; padding:0 4px; border:0; border-radius:var(--ov-r-md); background:transparent; font:inherit; font-size:var(--ov-fs-sm); font-weight:700; color:var(--ov-ink-2); white-space:nowrap; cursor:pointer}
.ov-demo-tabs button span{display:grid; place-items:center; width:20px; height:20px; border-radius:50%; background:var(--ov-surface-2); font-size:11px; font-weight:800}
.ov-demo-tabs button[aria-selected="true"]{background:var(--ov-brand); color:var(--ov-on-brand)}
.ov-demo-tabs button[aria-selected="true"] span{background:rgba(255,255,255,.22); color:inherit}
.ov-demo-body{display:flex; flex-direction:column; gap:12px; padding:16px}
.ov-demo-foot{display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:4px 12px; padding:12px 16px; border-top:1px solid var(--ov-line); font-size:var(--ov-fs-xs); color:var(--ov-ink-3)}
.ov-wa{display:flex; flex-direction:column; gap:8px; padding:12px; border-radius:var(--ov-r-md); background:#E9E3D7}
.ov-wa-msg{align-self:flex-end; max-width:92%; padding:10px 12px; border-radius:12px 12px 4px 12px; background:#DCF3D6; color:#1D2A1F; font-size:var(--ov-fs-sm); line-height:1.45; white-space:pre-line; box-shadow:0 1px 1px rgba(0,0,0,.08)}
/* Mise en page large par conteneur */
.ov-split{display:grid; grid-template-columns:minmax(0,1fr); gap:var(--ov-s5); align-items:start}
@container page (min-width:860px){ .ov-split{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr); gap:48px} .ov-split > :first-child{position:sticky; top:16px} }
/* Carte d’outil PAP : un seul lien */
.ov-toolgrid{display:grid; grid-template-columns:repeat(auto-fill,minmax(15.5rem,1fr)); gap:12px}
.ov-toolcard{position:relative; display:flex; flex-direction:column; gap:10px; min-height:184px; padding:18px; border-radius:var(--ov-r-lg); background:var(--tool,#141414); color:#fff; text-decoration:none}
.ov-toolcard:focus-visible{outline:3px solid var(--ov-ink); outline-offset:3px}
.ov-toolcard-id{display:flex; align-items:center; gap:10px; font-size:var(--ov-fs-sm); font-weight:800}
.ov-toolcard-id span{display:grid; place-items:center; width:34px; height:34px; border-radius:50%; background:rgba(255,255,255,.18); font-size:11px}
.ov-toolcard-title{font-size:clamp(20px,6cqi,24px); font-weight:800; line-height:1.15; letter-spacing:-.015em; text-wrap:balance}
.ov-toolcard-desc{font-size:15px; line-height:1.4; color:rgba(255,255,255,.92); display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden}
.ov-toolcard-go{margin-top:auto; display:flex; align-items:center; justify-content:space-between; font-size:var(--ov-fs-sm); font-weight:800}
.ov-toolcard-go i{display:grid; place-items:center; width:36px; height:36px; border-radius:50%; background:#fff; color:var(--tool); font-style:normal; font-weight:900}
/* Étapes de parcours (candidature PAP) */
.ov-journey{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; border:1px solid var(--ov-line); border-radius:var(--ov-r-lg); background:var(--ov-surface); overflow:hidden}
.ov-jstep{display:grid; grid-template-columns:32px minmax(0,1fr); gap:4px 12px; padding:14px 16px; border-top:1px solid var(--ov-line)}
.ov-jstep:first-child{border-top:0}
.ov-jstep-n{grid-row:span 3; display:grid; place-items:center; width:32px; height:32px; border-radius:50%; border:2px solid var(--ov-line-strong); font-size:13px; font-weight:800; color:var(--ov-ink-2)}
.ov-jstep.is-done .ov-jstep-n{border-color:var(--ov-success); background:var(--ov-success); color:#fff}
.ov-jstep[aria-current="step"]{background:var(--ov-brand-soft)}
.ov-jstep[aria-current="step"] .ov-jstep-n{border-color:var(--ov-ink); background:var(--ov-ink); color:#fff}
.ov-jstep-t{font-weight:800; font-size:var(--ov-fs-md)}
.ov-jstep-s{font-size:var(--ov-fs-sm); color:var(--ov-ink-2)}
.ov-jstep-a{display:flex; flex-wrap:wrap; gap:8px; margin-top:8px}
/* Tuile photo avec actions */
.ov-ptiles{display:grid; grid-template-columns:repeat(auto-fill,minmax(96px,1fr)); gap:8px}
.ov-ptile{position:relative; aspect-ratio:1; border-radius:var(--ov-r-md); overflow:hidden; background:var(--ov-surface-2)}
.ov-ptile > img{display:block; width:100%; height:100%; object-fit:cover}
.ov-ptile-n{position:absolute; left:6px; top:6px; display:grid; place-items:center; min-width:24px; height:24px; padding:0 6px; border-radius:99px; background:rgba(20,12,6,.72); color:#fff; font-size:12px; font-weight:800}
.ov-ptile-more{position:absolute; right:4px; top:4px; display:grid; place-items:center; width:36px; height:36px; border:0; border-radius:50%; background:rgba(255,252,245,.94); color:var(--ov-ink); font-size:18px; font-weight:900; line-height:1; cursor:pointer}
.ov-ptile-add{display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; aspect-ratio:1; border-radius:var(--ov-r-md); border:2px dashed var(--ov-line-strong); background:var(--ov-surface); color:var(--ov-ink-2); font:inherit; font-size:var(--ov-fs-xs); font-weight:700; cursor:pointer}
.ov-menu{display:flex; flex-direction:column; padding:4px; border-radius:var(--ov-r-md); background:var(--ov-surface); border:1px solid var(--ov-line); box-shadow:var(--ov-shadow-md)}
.ov-menu button{display:flex; align-items:center; min-height:44px; padding:0 12px; border:0; border-radius:8px; background:none; font:inherit; font-size:var(--ov-fs-sm); font-weight:600; color:var(--ov-ink); text-align:left; cursor:pointer}
.ov-menu button:hover{background:var(--ov-surface-2)}
.ov-menu .is-danger{color:var(--ov-danger)}
/* Carte de capture (reprise) */
.ov-capcard{display:grid; grid-template-columns:56px minmax(0,1fr) auto; align-items:center; gap:12px; padding:10px 8px 10px 10px; border-radius:var(--ov-r-lg); border:1px solid var(--ov-line); background:var(--ov-surface)}
.ov-capcard-thumb{width:56px; height:56px; border-radius:10px; overflow:hidden; background:var(--ov-surface-2)}
.ov-capcard-thumb img{display:block; width:100%; height:100%; object-fit:cover}
.ov-capcard-main{display:flex; flex-direction:column; gap:4px; min-width:0}
.ov-capcard-name{font-weight:800; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.ov-capcard-meta{display:flex; flex-wrap:wrap; align-items:center; gap:6px; font-size:var(--ov-fs-xs); color:var(--ov-ink-3)}
/* Ligne prix vérifiable */
.ov-pline{display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:52px; padding:8px 16px; border-top:1px solid var(--ov-line)}
.ov-pline:first-child{border-top:0}
.ov-pline-name{min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.ov-pline .ov-price{flex:none; font-weight:800; white-space:nowrap; font-variant-numeric:tabular-nums}
/* Barre « simulation » unique (hors production) */
.ov-simbar{padding:6px 16px; background:var(--ov-warning-bg); color:var(--ov-warning); font-size:var(--ov-fs-xs); font-weight:800; text-align:center; letter-spacing:.02em}

/* ===== Corrections 26/10/2026 — audit des 82 captures (voir audit-v4/CODEX-26-10.md) ===== */
[data-theme="pap"]{--ov-off-bg:#EDEDED; --ov-off:#5E5E5E}
.ov-tabbar--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.ov-tabbar--5{grid-template-columns:repeat(5,minmax(0,1fr))}
.ov-tabbar--5 .ov-tab{font-size:11px; padding-inline:0}
.ov-stack > .ov-badge,.ov-page > .ov-badge,.ov-card > .ov-badge,.ov-alert .ov-badge{align-self:flex-start; justify-self:start}
.ov-capcard{align-items:start; grid-template-columns:56px minmax(0,1fr) 44px; padding:10px 2px 10px 10px}
.ov-capcard-name{white-space:normal; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; line-height:1.25}
.ov-capcard-more{width:44px; height:44px; margin-top:-6px; display:grid; place-items:center; border:0; border-radius:var(--ov-r-md); background:none; color:var(--ov-ink-2); cursor:pointer}
.ov-capcard-more:hover{background:var(--ov-surface-2)}
.ov-capcard-more:focus-visible{outline:none; box-shadow:var(--ov-focus)}
.ov-stat-label{white-space:normal; overflow-wrap:anywhere}
.ov-choice{display:grid; grid-template-columns:24px minmax(0,1fr); gap:2px 12px; align-items:start; padding:12px 14px; border:1px solid var(--ov-line-strong); border-radius:var(--ov-r-md); background:var(--ov-surface); cursor:pointer}
.ov-choice input{width:20px; height:20px; margin:2px 0 0; accent-color:var(--ov-brand)}
.ov-choice:has(input:checked){border-color:var(--ov-brand); box-shadow:inset 0 0 0 1px var(--ov-brand)}
.ov-choice-t{font-weight:800}
.ov-choice-s{grid-column:2; font-size:var(--ov-fs-sm); color:var(--ov-ink-2); overflow-wrap:break-word}
.ov-facts-list{margin:0; padding-left:1.15em; display:flex; flex-direction:column; gap:6px; font-size:var(--ov-fs-sm); color:var(--ov-ink-2); text-wrap:pretty}
.ov-state-head{display:flex; flex-direction:column; gap:8px}
.ov-alert--compact{padding:8px 12px; font-size:var(--ov-fs-sm)}

}
@layer g-compositions {
/* Raccord OVQ du kit OVMQ (accueil public et tableau de bord vendeur). Émis après ovmq-kit.css, dans la couche
   g-compositions : le kit possède la largeur (560 px), les gouttières et le rythme de ces deux écrans, donc
   l'enveloppe historique .shell n'ajoute ni marge ni largeur autour de .ov-screen. */
.shell:has(.ov-screen) { padding: 0; max-width: none; }
.ovq-space:has(.ov-screen), .ovq-shop-workspace:has(.ov-screen) { width: 100%; max-width: none; margin: 0; padding: 0; }
.shell > .ov-screen { flex: 1 0 auto; }
/* Les titres natifs ont une famille explicite : l'héritage de .ov-app ne suffit pas. */
.ov-screen :is(h1, h2, h3) { font-family: var(--ov-font); }
/* Zone tactile 44 px de l'identité (lien) : la référence la laisse à la hauteur du texte. */
.ov-topbar a.ov-id { min-height: var(--ov-touch); }
/* Étapes de l'accueil : liste ordinaire, aucun décor ajouté. */
.ovmq-onboarding { padding-inline-start: 1.25em; display: flex; flex-direction: column; gap: var(--ov-s2); }
/* Accueil sans session : sous 18 em, le bouton de connexion garde la place (même règle que la barre de marque). */
@container topbar (max-width: 18em) { .ov-topbar:has(.ovq-login-action) .ov-id-text { display: none; } }
/* Les champs natifs canoniques imposent leur remplissage : la loupe de la référence garde sa place. */
.ov-search input.ov-input { padding-left: 44px; }
/* Carte vendeur à deux colonnes : le badge « Privé » passe sous l'interrupteur au lieu d'être rogné (13 px de débordement mesuré par la référence). */
.ov-pcard-state { flex-wrap: wrap; }

/* Public entry: only geometry bridges. Visual values remain in ovmq.css. */
.ovmq-landing { margin:0; padding:0; }
.ovmq-landing .ov-brandbar .g-language-selector { margin:0; padding:0; width:auto; }
.ovmq-landing .ov-brandbar .ov-lang { display:inline-flex; }
/* The segment owns its pill corners; native button radii must not round FR/EN individually. */
.ovmq-landing .ov-lang > button { border-radius:0; }
.ovmq-landing .ov-brandbar .g-language-selector > label { display:none; }
.ovmq-landing .ov-brandbar .g-language-selector > [role=status]:empty { display:none; }
.ovmq-landing .ov-brandbar form { margin:0; }
html.firstDishLanding body.ovmq-landing { display:flex; min-height:100dvh; overflow:auto; }
html.firstDishLanding .ovmq-landing #landing { display:flex; padding:var(--ov-s4) var(--ov-gutter) var(--ov-s6); }
.ovmq-landing .ov-brandbar a.ov-id { min-height:44px; }
.ovmq-landing .ov-media img { display:block; width:100%; height:100%; object-fit:cover; }

/* OMQ seller dashboard: native elements wearing kit components. Bridges only. */
/* The open switch lives in the header slot until the status card adopts it. */
#vendeurContexte > [data-seller-open] { display:none; }
/* Product grid is a native list; the stat link tile reads as the kit button tile. */
ul.ov-pgrid { padding:0; list-style:none; }
a.ov-stat4 { color:inherit; text-decoration:none; }
/* A product card without photo is a link to the native photo manager, above the stretched name link. */
a.ov-pcard-nophoto { position:relative; z-index:2; text-decoration:none; }
.ov-app a.ov-pcard-nophoto { color:var(--ov-ink-3); }
/* Native section spacing must not add margins inside kit stacks. */
.omq-pm .ov-stack > section { margin-block:0; }
.g-seller-page .omq-pm-view:has(> .ov-catalog) { gap:var(--ov-s5); }
.ov-app .ov-search { display:block; }
.ov-app .ov-search .ov-input { border-radius:var(--ov-r-pill); }
.ov-app button.ov-stat4 { text-align:left; align-items:stretch; }
/* Dashboard footer follows the page in flow; the fixed native tabbar still owns clearance. */
body:has(#aujourdhui .ov-catalog) #aujourdhui { padding-bottom:var(--ov-s6); }
body:has(#aujourdhui .ov-catalog) > .ov-legal { padding-bottom:var(--g-dock-clearance,64px); }
.vendeurNavigation.ov-tabbar { position:fixed; width:100%; height:auto; }
.ov-tabbar button.ov-tab { border:0; }
/* Native OVQ element margins and button chrome do not supplement kit components. */
.ov-screen :is(.ov-section,.ov-details) { margin-block:0; }
.ov-screen button.ov-pcard-nophoto { border:0; border-radius:0; padding:0; }
body[data-shell="task"] .vendeurNavigation { display:none; }
/* Native dialogs retain browser focus handling and use the kit's modal geometry. */
dialog.ov-dialog { width:calc(100% - 2 * var(--ov-gutter)); max-height:calc(100dvh - 2 * var(--ov-gutter)); margin:auto; border:0; font-family:var(--ov-font); }
dialog.ov-dialog:not([open]) { display:none; }
dialog.ov-dialog::backdrop { background:rgba(46,29,18,.48); }
.partagePlat.ov-dialog > img { width:100%; max-height:38dvh; object-fit:contain; }
/* OMQ customer tasks occupy the viewport; the native modal retains focus and inert handling. */
.omqClient #spFeuille:has(> .oc-screen) { position:fixed; inset:0; padding:0; align-items:stretch; background:var(--ov-bg); }
.omqClient #spFeuille > .oc-screen { display:flex; flex-direction:column; width:100%; max-width:none; height:100dvh; max-height:100dvh; padding:0; border-radius:0; overflow:auto; background:var(--ov-bg); }
.omqClient .oc-screen > .oc-footer { position:sticky; bottom:0; margin-top:auto; }
.omqClient .oc-detail-hero { position:relative; flex-shrink:0; }
.omqClient .oc-detail-photo { display:block; width:100%; aspect-ratio:4/5; overflow:hidden; }
.omqClient .oc-detail-photo img { display:block; width:100%; height:100%; object-fit:cover; }
.omqClient .oc-detail-photo.oc-placeholder { display:grid; place-content:center; justify-items:center; gap:var(--ov-s2); }
.omqClient .oc-heading { display:flex; align-items:center; justify-content:space-between; gap:var(--ov-s3); }
.omqClient .ov-search input { padding-left:44px; }
.omqClient .ov-hero:not(.ov-hero--nophoto) .ov-hero-name { color:white; }
.omqClient .ov-hero { line-height:var(--ov-lh); }
.omqClient #pcEntete #etatPage.ov-badge { min-height:26px; padding:0 10px; font-size:var(--ov-fs-xs); line-height:var(--ov-lh); }
.omqClient .oc-growth { display:flex; flex-direction:column; align-items:center; gap:var(--ov-s3); padding-block:var(--ov-s5); font-size:var(--ov-fs-xs); color:var(--ov-ink-3); text-align:center; }
.omqClient .oc-growth > div { display:flex; flex-wrap:wrap; justify-content:center; gap:var(--ov-s2); }
/* Empty native recovery slots must not create an extra page gap. */
.omqSeller #devis-recovery:empty { display:none; }
.omqSeller #sales-app > .ov-back { align-self:flex-start; }
.agentNavigation.ov-tabbar { position:fixed; grid-template-columns:repeat(2,minmax(0,1fr)); width:100%; height:auto; }
.ov-tabbar.ov-tabbar--three { grid-template-columns:repeat(3,minmax(0,1fr)); }
.omqSeller .ov-stat4-retry { white-space:nowrap; }
html[data-g-page="qr"] .screen > .ov-btn { margin-block:var(--ov-s3); }
html[data-g-page="qr"] .screen > .back { display:flex; align-items:center; min-height:var(--ov-touch); }

}
@layer g-density {
html:is([data-density="compact"], [data-omq-density="compact"]) {
  --g-gutter: 12px;
  --g-gap: 6px;
  --g-card-padding: 8px;
  --g-tile-padding: 8px;
  --g-stack: 8px;
  --g-row-height: 44px;
  --g-vertical-space: 4px;
  --g-control: 48px;
  --g-space-1: 2px;
  --g-space-2: 4px;
  --g-space-3: 6px;
  --g-space-4: 8px;
  --g-space-5: 10px;
  --g-space-6: 12px;
  --g-space-8: 16px;
}
html:is([data-density="spaced"], [data-omq-density="airy"]) {
  --g-gutter: 20px;
  --g-gap: 16px;
  --g-card-padding: 20px;
  --g-tile-padding: 12px;
  --g-stack: 20px;
  --g-row-height: 60px;
  --g-vertical-space: 12px;
  --g-control: 48px;
  --g-space-1: 6px;
  --g-space-2: 12px;
  --g-space-3: 16px;
  --g-space-4: 20px;
  --g-space-5: 24px;
  --g-space-6: 32px;
  --g-space-8: 40px;
}
}
