/* Native taps on every console control: scroll and pinch zoom remain available.
   No synthetic click/touch handler, so one tap still produces one native click. */
:where(button, a[href], input, select, textarea, label, summary,
       [role="button"], [role="tab"], [role="link"], [tabindex]:not([tabindex="-1"])) {
    touch-action: manipulation;
}

:root { color-scheme: dark; --env-banner-height: 0px; }
/* Bandeau de la préproduction (config app.env = staging) : jamais rendu sur Core. */
.has-env-banner { --env-banner-height: 34px; padding-top: var(--env-banner-height); }
.env-banner { position: fixed; z-index: 2147483000; inset: 0 0 auto; height: var(--env-banner-height); display: flex; align-items: center; justify-content: center; padding: 0 12px; background: #ffd400; color: #111; font: 800 14px/1 system-ui, -apple-system, "Segoe UI", sans-serif; letter-spacing: .04em; text-transform: uppercase; text-align: center; border-bottom: 2px solid #111; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 520px) { .env-banner { font-size: 11px; letter-spacing: 0; } }

/* Onglets : UN SEUL composant pour tout le site, « .pill-tabs » (rangée) + « .pill-tab » (onglet arrondi, sélection au contour ambré).
   Règle permanente (CLAUDE.md) : tout nouvel onglet l'utilise ; un test bloque les onglets qui s'en écartent. */
.pill-tabs { display:flex; flex-wrap:wrap; gap:8px; }
.pill-tabs .pill-tab[role="tab"], .pill-tabs .pill-tab[role="tab"]:hover, .pill-tabs .pill-tab[role="tab"]:active { min-height:44px; padding:4px 14px; border-radius:999px; border:1px solid var(--line); background:transparent; color:var(--ink); box-shadow:none; transform:none; font-weight:700; }
.pill-tabs .pill-tab[role="tab"][aria-selected="true"], .pill-tabs .pill-tab[role="tab"][aria-selected="true"]:hover, .pill-tabs .pill-tab[role="tab"][aria-selected="true"]:active { border-color:var(--amber); background:var(--sirius-selected); color:var(--amber); box-shadow:none; }

/* Modèle de facture : réglages en colonne étroite à gauche (environ 30 %), grand aperçu à droite (environ 70 %). */
[data-invoice-editor] { display:grid; gap:10px; margin-top:8px; }
.ie-head { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:flex-end; gap:10px; }
.ie-head h2 { margin:0; } .ie-head p { margin:2px 0; } .ie-crumb, .ie-sub { color:var(--muted); font-size:.85em; }
.ie-actions { display:flex; align-items:center; gap:10px; } [data-save-state] { font-weight:600; font-size:.85em; } [data-save-state].dirty { color:var(--amber); } [data-save-state].dirty::before { content:"● "; }
.ie-body { display:grid; grid-template-columns:minmax(300px,30%) minmax(0,1fr); gap:14px; align-items:stretch; height:calc(100vh - 150px); min-height:520px; }
.ie-side { display:flex; flex-direction:column; gap:8px; min-width:0; min-height:0; overflow:auto; padding:12px; border:1px solid var(--line); border-radius:var(--sirius-radius-lg); background:var(--surface); }
.ie-tab-hint { margin:0; font-size:.8em; color:var(--muted); padding-bottom:8px; border-bottom:1px solid var(--line); }
[data-invoice-editor] [role="tabpanel"] { display:flex; flex-direction:column; gap:8px; min-width:0; flex:1 1 auto; }
[data-invoice-editor] [role="tabpanel"][hidden] { display:none; }
[data-invoice-editor] h4 { margin:8px 0 2px; }
.ie-grid { display:grid; grid-template-columns:1fr; gap:6px; }
.ie-row { display:flex; align-items:center; justify-content:space-between; gap:10px; font-size:.92em; }
.ie-row > span:first-child { flex:1 1 auto; } .ie-stack { flex-direction:column; align-items:stretch; }
.ie-short { width:6em; text-align:right; } .ie-mid { width:11.5em; } .ie-compact { width:8.5em; } .ie-wide { width:min(100%,14em); flex:0 1 14em; } .ie-hex { width:6.5em; border:0; background:transparent; }
[data-invoice-editor] input, [data-invoice-editor] select, [data-invoice-editor] textarea { min-height:32px; padding:3px 8px; }
.ie-color { display:flex; align-items:center; gap:6px; width:11.5em; padding:0 6px; border:1px solid var(--line); border-radius:var(--sirius-radius-sm); background:var(--surface-2); }
.ie-color input[type="color"] { width:22px; min-height:22px; height:22px; padding:0; border:0; background:transparent; }
[data-invoice-editor] input[type="checkbox"] { width:18px; min-height:18px; height:18px; }
.ie-check { display:flex; align-items:center; gap:8px; font-size:.92em; }
.ie-table { width:100%; border-collapse:collapse; font-size:.9em; } .ie-table th, .ie-table td { padding:3px 6px; border-bottom:1px solid var(--line); text-align:left; }
.ie-table thead th { font-size:.8em; color:var(--muted); font-weight:600; }
.ie-table td .ie-wide { width:100%; flex:none; }
.ie-blocks { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; user-select:none; }
.ie-blocks li { border-bottom:1px solid var(--line); } .ie-blocks li.dragging { opacity:.55; background:var(--surface-2); }
.ie-block-row { display:flex; align-items:center; gap:6px; }
.ie-grip { cursor:grab; touch-action:none; background:none; border:0; padding:6px 8px; letter-spacing:-2px; min-height:32px; }
.ie-block-name { flex:1 1 auto; text-align:left; background:none; border:0; padding:6px 4px; color:inherit; font-weight:600; min-height:32px; }
.ie-block-name::after { content:"▾"; float:right; opacity:.6; } .ie-blocks li.open .ie-block-name::after { content:"▴"; }
.ie-block-settings { display:flex; flex-direction:column; gap:6px; padding:6px 8px 10px 38px; background:var(--surface-2); }
.ie-block-settings[hidden] { display:none; }
.ie-fixed, .ie-muted { color:var(--muted); } .ie-fixed { opacity:.75; }
.ie-hint { margin:0; font-size:.85em; color:var(--muted); }
.ie-error, [data-invoice-editor] .error { color:var(--sirius-danger-text); font-weight:600; }
.ie-info { background:none; border:0; padding:0 4px; cursor:pointer; color:var(--amber-2); } .ie-help { display:block; margin-top:4px; padding:6px 8px; background:var(--surface-2); border-radius:var(--sirius-radius-sm); font-size:.85em; font-weight:400; }
.ie-help[hidden] { display:none; }
.ie-link { background:none; border:0; padding:4px 6px; color:var(--amber-2); text-decoration:underline; cursor:pointer; width:fit-content; }
.ie-link:disabled { opacity:.5; cursor:default; text-decoration:none; }
.ie-reset { margin-top:auto; padding-top:10px; border-top:1px solid var(--line); display:flex; justify-content:space-between; align-items:center; font-size:.8em; color:var(--muted); }
.ie-reset .ie-link { padding-left:0; font-size:1em; }
.ie-texts { display:grid; grid-template-columns:1fr; gap:10px; }
.ie-text-list { display:grid; grid-auto-rows:min-content; gap:2px; border:1px solid var(--line); border-radius:var(--sirius-radius-sm); padding:2px; }
.ie-text-item { display:grid; align-content:center; height:auto; min-height:48px; text-align:left; background:none; border:0; padding:5px 8px; border-radius:var(--sirius-radius-sm); color:inherit; }
.ie-text-item span { font-size:.8em; color:var(--muted); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ie-text-item[aria-selected="true"] { background:var(--surface-2); box-shadow:inset 3px 0 0 var(--amber); }
.ie-text-edit { display:grid; gap:6px; min-width:0; } .ie-text-edit h4 { margin:0; }
.ie-rich { min-height:7em; padding:8px; border:1px solid var(--line); border-radius:var(--sirius-radius-sm); background:var(--surface); white-space:pre-wrap; word-wrap:break-word; }
.ie-rich[data-single] { min-height:3em; } .ie-stack .ie-rich { min-height:4em; }
.ie-pill { display:inline-block; padding:0 8px; margin:0 1px; border-radius:999px; background:var(--amber); color:var(--sirius-on-primary); font-size:.85em; user-select:all; }
.ie-mention { padding:6px 8px; background:var(--surface-2); border-radius:var(--sirius-radius-sm); }
.ie-menu { position:relative; } .ie-menu > summary { list-style:none; cursor:pointer; padding:6px 12px; border:1px solid var(--line); border-radius:var(--sirius-radius-sm); background:var(--surface-2); user-select:none; width:fit-content; }
.ie-menu > summary::-webkit-details-marker { display:none; }
.ie-menu-body { position:absolute; z-index:20; left:0; min-width:200px; max-height:260px; overflow:auto; margin-top:4px; display:grid; padding:4px; background:var(--surface); border:1px solid var(--line); border-radius:var(--sirius-radius-sm); }
.ie-menu-body button { text-align:left; background:none; border:0; padding:8px 10px; color:inherit; }
.ie-qr { border:1px solid var(--line); border-radius:var(--sirius-radius-sm); } .ie-qr-body, .ie-logo { display:flex; gap:14px; align-items:center; flex-wrap:wrap; }
.ie-qr-actions { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.ie-thumb { max-width:140px; max-height:70px; display:block; background:var(--sirius-media); padding:4px; border-radius:var(--sirius-radius-sm); }
[data-invoice-editor] [data-logo-preview]:empty { display:none; }
[data-invoice-editor] button:disabled { opacity:.55; cursor:default; }
[data-invoice-editor] [data-editor-status]:empty { display:none; }
.ie-preview { display:flex; flex-direction:column; min-width:0; min-height:0; border:1px solid var(--line); border-radius:var(--sirius-radius-lg); background:var(--surface); overflow:hidden; }
.ie-preview-bar { display:flex; flex-wrap:wrap; align-items:center; gap:8px 12px; padding:8px 12px; border-bottom:1px solid var(--line); font-size:.9em; }
.ie-example { display:flex; align-items:center; gap:6px; white-space:nowrap; } .ie-preview-bar [data-preview-status] { margin:0; font-size:.85em; flex:1 1 auto; }
.ie-preview-tools { display:flex; align-items:center; gap:8px; margin-left:auto; } .ie-zoom-buttons { display:flex; gap:2px; }
.ie-zoom-buttons button { min-height:32px; min-width:32px; padding:0 8px; }
.ie-preview-bar [data-download] { color:var(--amber-2); font-weight:600; white-space:nowrap; }
.ie-preview > label[data-existing-label] { padding:6px 12px; font-size:.9em; }
.ie-pages { position:relative; flex:1 1 auto; min-height:0; overflow:auto; padding:16px; background:var(--sirius-media); display:flex; flex-direction:column; align-items:center; gap:14px; }
.ie-pages[hidden], .ie-preview iframe[hidden] { display:none; }
.ie-page canvas { display:block; background:Canvas; }
.ie-preview iframe { flex:1 1 auto; min-height:0; width:100%; border:0; background:Canvas; }
.ie-show-preview { display:none; }
@media(max-width:1000px) {
    .ie-body { grid-template-columns:1fr; height:auto; min-height:0; }
    .ie-side { overflow:visible; }
    .ie-preview { display:none; height:80vh; } .ie-preview[data-open] { display:flex; }
    .ie-show-preview { display:block; width:100%; }
}
@media (pointer:coarse) { .ie-zoom-buttons button, .ie-grip, .ie-block-name, .ie-link, .ie-info, .ie-text-item, .ie-menu-body button, .ie-menu > summary, .ie-preview-bar select { min-height:44px; min-width:44px; } .ie-block-name { min-width:0; } .ie-text-item { min-width:0; } .ie-link { min-width:0; } }
@media(max-width:700px) { .ie-tabs { flex-wrap:nowrap; overflow-x:auto; } .ie-tabs .pill-tab { white-space:nowrap; } }

.required-note {
    margin: 0;
    color: var(--sirius-text-muted);
    font-size: .85rem;
}
.required-note strong { color: var(--sirius-bronze); }
.price-reference {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 72px;
    padding: 12px 14px;
    border: 1px solid rgba(255,255,255,.11);
    border-radius: var(--sirius-radius-sm);
    background: rgba(255,255,255,.035);
}
.price-reference span { color: var(--sirius-text-muted); font-size: .8rem; }
.price-reference strong { margin-top: 4px; }
.price-list-grid, .category-manager { display: grid; gap: 10px; }
.price-list-grid label, .category-edit-row {
    display: grid;
    grid-template-columns: minmax(220px, 1fr) minmax(120px, 180px);
    gap: 14px;
    align-items: center;
    padding: 10px 12px;
    border: 1px solid rgba(255,255,255,.1);
    border-radius: var(--sirius-radius-sm);
}
.price-list-grid label span { display: flex; flex-direction: column; gap: 2px; }
.category-edit-row { grid-template-columns: minmax(90px, .5fr) minmax(180px, 1fr) auto auto; }
.repackage-line { padding: 10px 0; border-bottom: 1px solid rgba(255,255,255,.08); }
@media (max-width: 700px) {
    .price-list-grid label, .category-edit-row { grid-template-columns: 1fr; }
}
* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; font: 15px/1.5 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color: var(--ink); background: var(--sirius-bg); }
.ambient { position: fixed; inset: 0; z-index: -1; background: radial-gradient(circle at 12% 8%, var(--sirius-bg) 0, transparent 30rem), radial-gradient(circle at 90% 90%, var(--sirius-bg) 0, transparent 34rem); }
.page-shell { width: min(1240px, calc(100% - 32px)); margin: 0 auto; padding: 32px 0 64px; }
.login-card { width: min(440px, 100%); margin: 10vh auto 0; padding: 36px; border: 1px solid var(--line); border-radius: var(--sirius-radius-lg); background: var(--surface); box-shadow: 0 24px 70px rgba(0,0,0,.53); }
.brand-mark { display: grid; place-items: center; width: 48px; height: 48px; border-radius: var(--sirius-radius-md); background: var(--amber); color: var(--sirius-on-primary); font: 800 25px/1 Georgia, serif; }
h1, h2, h3, p { margin-top: 0; }
h1 { margin-bottom: 8px; font: 700 clamp(28px, 5vw, 42px)/1.05 Georgia, serif; }
h2 { margin-bottom: 0; font: 700 clamp(24px, 4vw, 34px)/1.1 Georgia, serif; }
.eyebrow { margin: 18px 0 6px; color: var(--amber-2); font-size: 12px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.muted { color: var(--muted); }
.stack { display: grid; gap: 16px; margin-top: 28px; }
label { display: grid; gap: 7px; color: var(--sirius-text); font-weight: 650; }
label > small { color: var(--muted); font-weight: 500; }
input, select, textarea, button { min-height: 44px; border-radius: var(--sirius-radius-sm); font: inherit; }
input, select, textarea { width: 100%; border: 1px solid var(--line); padding: 10px 12px; color: var(--ink); background: var(--sirius-field); }
textarea { min-height: 86px; resize: vertical; }
button { border: 0; padding: 10px 16px; font-weight: 800; cursor: pointer; background: var(--amber); color: var(--sirius-on-primary); }
button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid var(--sirius-bronze-light); outline-offset: 2px; }
.button-secondary { border: 1px solid var(--line); color: var(--ink); background: var(--surface-2); }
.error { min-height: 22px; color: var(--red); }
.app { display: grid; gap: 18px; }
.topbar, .hero, .user-block { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.topbar { padding: 6px 2px 18px; border-bottom: 1px solid var(--line); }
.topbar h1 { font-size: 30px; }
.topbar .eyebrow { margin-top: 0; }
.user-identity { display: grid; justify-items: end; gap: 4px; }
.profile-badge { border: 1px solid var(--sirius-border-bronze); border-radius: 999px; padding: 2px 9px; color: var(--amber-2); font-size: 12px; font-weight: 800; }
.module-nav { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 2px 0 8px; }
.nav-primary, .nav-group > div { display: flex; flex-wrap: wrap; gap: 8px; }
.module-nav button { min-height: 40px; color: var(--muted); background: transparent; border: 1px solid transparent; }
.module-nav button.active { border-color: var(--sirius-border-bronze); color: var(--amber-2); background: var(--sirius-warning-surface); }
.nav-groups { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.nav-group { position: relative; flex: 0 0 auto; }
.nav-group summary { min-height: 40px; padding: 9px 14px; border: 1px solid var(--line); border-radius: var(--sirius-radius-sm); color: var(--ink); font-weight: 800; cursor: pointer; list-style: none; background: var(--surface-2); }
.nav-group summary::-webkit-details-marker { display: none; }
.nav-group > div { position: absolute; z-index: 20; top: calc(100% + 6px); right: 0; width: min(390px, calc(100vw - 24px)); padding: 10px; border: 1px solid var(--line); border-radius: var(--sirius-radius-sm); background: var(--sirius-surface); box-shadow: 0 16px 36px rgba(0,0,0,.53); }
.hero { padding: 24px 0 6px; }
.section-description { max-width: 720px; margin: 7px 0 0; }
.panel { border: 1px solid var(--line); border-radius: var(--sirius-radius-lg); padding: 20px; overflow: hidden; background: var(--surface); box-shadow: 0 12px 36px rgba(0,0,0,.2); }
.action-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
.action-toolbar p { margin: 0; color: var(--muted); }
.action-buttons { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.action-dialog { width: min(920px, calc(100% - 24px)); max-height: calc(100vh - 32px); border: 1px solid var(--line); border-radius: var(--sirius-radius-lg); padding: 0; color: var(--ink); background: var(--sirius-surface); box-shadow: 0 28px 90px var(--sirius-backdrop); }
.action-dialog[open] { display:flex; flex-direction:column; overflow:hidden; }
.action-dialog .dialog-body { min-height:0; overflow-y:auto; }
.action-dialog::backdrop { background: var(--sirius-backdrop); backdrop-filter: blur(3px); }
.dialog-heading { position: sticky; z-index: 2; top: 0; display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 18px 20px; border-bottom: 1px solid var(--line); background: var(--sirius-surface); }
.dialog-heading .eyebrow { margin-top: 0; }
.dialog-heading h2 { font-size: 26px; }
.dialog-body { padding: 22px; overflow: auto; }
.dialog-body > h3 { display: none; }
.notice { border-left: 4px solid var(--green); border-radius: var(--sirius-radius-sm); padding: 11px 14px; background: var(--sirius-success-surface); }
.notice.bad { border-color: var(--red); background: var(--sirius-danger-surface); }
.loading { padding: 24px; color: var(--muted); text-align: center; }
.table-wrap { max-width: 100%; overflow-x: auto; overscroll-behavior-inline: contain; -webkit-overflow-scrolling: touch; }
table { width: 100%; border-collapse: collapse; min-width: 680px; }
th, td { padding: 12px 10px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
th { color: var(--muted); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; }
.pill { display: inline-block; border: 1px solid var(--line); border-radius: 999px; padding: 3px 8px; color: var(--amber-2); font-size: 12px; white-space: nowrap; }
.cards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.metric { min-height: 0; padding: 18px; border: 1px solid var(--line); border-radius: var(--sirius-radius-md); color: var(--ink); text-align: left; background: var(--surface-2); }
.metric strong { display: block; margin-top: 6px; font: 700 28px/1.1 Georgia, serif; }
.cards-compact .metric strong { font-size: 19px; }
.action-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; align-items: end; }
.action-grid .wide { grid-column: span 2; }
.forms-stack { display: grid; gap: 28px; }
.forms-stack form + form { padding-top: 24px; border-top: 1px solid var(--line); }
.order-lines { display: grid; gap: 12px; }
.order-line { display: grid; grid-template-columns: minmax(0, 2fr) minmax(7rem, .55fr) auto; gap: 12px; align-items: end; padding: 12px; border: 1px solid var(--line); border-radius: var(--sirius-radius-sm); }
.checkout-shell { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, 370px); gap: 20px; align-items: start; }
.checkout-catalog { min-width: 0; }
.checkout-controls { display: grid; grid-template-columns: auto minmax(220px, 1fr); gap: 16px; align-items: end; margin-bottom: 18px; }
.checkout-controls .segmented { margin: 0; }
.catalog-search { max-width: 520px; justify-self: end; width: 100%; }
.sale-products { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.sale-card { display: grid; grid-template-rows: 150px 1fr auto; min-width: 0; overflow: hidden; border: 1px solid var(--line); border-radius: var(--sirius-radius-md); background: var(--surface-2); }
.sale-card > img, .sale-card > .product-placeholder { width: 100%; height: 150px; object-fit: cover; }
.product-placeholder { display: grid; place-items: center; color: var(--sirius-on-primary); background: linear-gradient(135deg, var(--amber), var(--sirius-bronze-light)); font: 800 52px/1 Georgia, serif; }
.sale-card-copy { display: grid; align-content: start; gap: 3px; padding: 14px; }
.sale-card-copy span, .sale-card-copy small { color: var(--muted); }
.sale-card-copy strong { font-size: 17px; }
.sale-card-footer { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 0 14px 14px; }
.sale-card-footer button { min-height: 38px; padding-block: 7px; }
.sale-card.unavailable { opacity: .58; }
.sale-card button:disabled { cursor: not-allowed; opacity: .6; }
.audit-detail { display: grid; gap: 12px; }
.audit-detail dl { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 8px 16px; margin: 0; }
.audit-detail dt { color: var(--muted); font-weight: 700; }
.audit-detail dd { min-width: 0; margin: 0; overflow-wrap: anywhere; }
.audit-detail h4 { margin: 6px 0 0; }
.audit-detail pre { max-height: 260px; margin: 0; padding: 12px; overflow: auto; border: 1px solid var(--line); border-radius: var(--sirius-radius-sm); background: var(--surface-2); white-space: pre-wrap; overflow-wrap: anywhere; }
.grole-card { grid-template-rows: 110px 1fr auto; border-color: var(--sirius-border-bronze); }
.grole-card > .product-placeholder { height: 110px; }
.sale-group-heading { display: flex; align-items: end; justify-content: space-between; gap: 16px; margin: 28px 0 12px; padding-top: 20px; border-top: 1px solid var(--line); }
.sale-group-heading .eyebrow, .sale-group-heading h3, .sale-group-heading p { margin: 0; }
.sale-group-heading p { max-width: 420px; color: var(--muted); text-align: right; }
.checkout-cart { position: sticky; top: 14px; display: grid; gap: 16px; padding: 18px; border: 1px solid var(--sirius-border-bronze); border-radius: var(--sirius-radius-lg); background: var(--sirius-surface); box-shadow: 0 16px 44px rgba(0,0,0,.33); }
.checkout-cart h3 { margin: 0; font-size: 24px; }
.client-picker { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; align-items: end; }
.client-picker button { padding-inline: 12px; }
.cart-lines { display: grid; gap: 9px; }
.cart-line { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 8px; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--line); }
.cart-line > div:first-child { display: grid; min-width: 0; }
.cart-line span { overflow: hidden; color: var(--muted); font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.quantity-stepper { display: flex; align-items: center; gap: 4px; }
.quantity-stepper button, .cart-remove { min-width: 34px; min-height: 34px; padding: 4px; border: 1px solid var(--line); color: var(--ink); background: transparent; }
.quantity-stepper b { min-width: 24px; text-align: center; }
.quantity-stepper input[data-basket-input] { width: 4.5em; min-width: 0; min-height: 34px; padding: 4px; text-align: center; -moz-appearance: textfield; appearance: textfield; }
.quantity-stepper input[data-basket-input]::-webkit-outer-spin-button, .quantity-stepper input[data-basket-input]::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.cart-remove { color: var(--red); }
.discount-panel summary { cursor: pointer; color: var(--amber-2); font-weight: 800; }
.discount-panel .action-grid { grid-template-columns: 1fr 1fr; margin-top: 12px; }
.order-total { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 5px 12px; padding-top: 15px; border-top: 1px solid var(--line); }
.order-total strong { font: 700 25px/1.1 Georgia, serif; }
.order-total small { flex-basis: 100%; color: var(--green); text-align: right; }
.checkout-submit { width: 100%; min-height: 52px; font-size: 17px; }
.client-detail-grid { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 24px; margin-top: 24px; }
.client-detail-grid h4 { margin-top: 0; }
.data-list { display: grid; gap: 0; margin: 0; }
.data-list div { display: grid; grid-template-columns: minmax(130px, .8fr) minmax(0, 1.2fr); gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.data-list dt { color: var(--muted); }
.data-list dd { margin: 0; overflow-wrap: anywhere; }
.section-action, .client-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; }
.section-action h4 { margin: 0; }
.address-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 12px; }
.address-list article { padding: 14px; border: 1px solid var(--line); border-radius: var(--sirius-radius-sm); background: var(--surface-2); }
.address-list article > div { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; }
.address-list article span { color: var(--muted); }
.address-list article p { margin: 10px 0; }
.address-list article button { width: 100%; }
.client-actions { justify-content: flex-start; margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--line); }
.keg-heading { align-items: end; margin: 28px 0 14px; }
.keg-heading .eyebrow, .keg-heading h3, .keg-heading p { margin: 0; }
.keg-heading p { color: var(--muted); }
.keg-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.keg-card { padding: 18px; border: 1px solid var(--line); border-radius: var(--sirius-radius-md); background: var(--surface-2); }
.keg-title { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.keg-title span { color: var(--amber-2); font-size: 12px; font-weight: 800; letter-spacing: .08em; }
.keg-title h3 { margin: 4px 0 0; }
.keg-title > strong { color: var(--amber-2); font: 700 24px/1.1 Georgia, serif; white-space: nowrap; }
.keg-meter { height: 12px; margin-top: 18px; overflow: hidden; border-radius: 999px; background: var(--sirius-bg); }
.keg-meter span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--sirius-bronze-dark), var(--amber)); }
.keg-card > p { margin: 7px 0 16px; color: var(--muted); font-size: 13px; }
.keg-main-actions, .keg-technical > div { display: flex; flex-wrap: wrap; gap: 8px; }
.keg-technical { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--line); }
.keg-technical summary, .closed-kegs summary { cursor: pointer; color: var(--muted); font-weight: 750; }
.keg-technical > div { margin-top: 10px; }
.closed-kegs { margin-top: 22px; padding-top: 16px; border-top: 1px solid var(--line); }
.today-section + .today-section { margin-top: 34px; }
.today-heading { display: flex; align-items: end; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.today-heading .eyebrow, .today-heading h3, .today-heading p { margin: 0; }
.today-heading p { color: var(--muted); }
.today-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.today-block { overflow: hidden; border: 1px solid var(--line); border-left-width: 5px; border-radius: var(--sirius-radius-md); background: var(--surface-2); }
.today-block.tone-danger { border-left-color: var(--red); }
.today-block.tone-warning { border-left-color: var(--amber); }
.today-block.tone-success { border-left-color: var(--green); }
.today-block.tone-work { border-left-color: var(--sirius-info-text); }
.today-block.tone-neutral { border-left-color: var(--sirius-text-muted); }
.today-block.is-clear { opacity: .7; }
.today-block > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 15px; border-bottom: 1px solid var(--line); }
.today-block > header > div { display: flex; align-items: center; gap: 10px; }
.today-block > header span { font-weight: 800; }
.today-block > header strong { display: grid; place-items: center; min-width: 30px; height: 30px; border-radius: 999px; color: var(--sirius-on-primary); background: var(--amber-2); }
.today-items { display: grid; }
.today-item { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 15px; }
.today-item + .today-item { border-top: 1px solid var(--line); }
.today-item > div { display: grid; min-width: 0; }
.today-item span { overflow: hidden; color: var(--muted); font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.today-item button { flex: 0 0 auto; min-height: 36px; padding: 6px 11px; }
.today-clear { margin: 0; padding: 18px 15px; color: var(--muted); }
.production-summary { margin-bottom: 28px; }
.production-heading { align-items: end; margin-bottom: 14px; }
.production-heading .eyebrow, .production-heading h3, .production-heading p { margin: 0; }
.production-heading p { color: var(--muted); }
.batch-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.batch-card { overflow: hidden; padding: 18px; border: 1px solid var(--line); border-top: 5px solid var(--sirius-info-text); border-radius: var(--sirius-radius-md); background: var(--surface-2); }
.batch-card.status-brewing { border-top-color: var(--amber); }
.batch-card.status-ready_for_packaging { border-top-color: var(--green); }
.batch-card > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.batch-card > header > div > span { color: var(--amber-2); font-size: 12px; font-weight: 800; letter-spacing: .08em; }
.batch-card h3 { margin: 4px 0 0; }
.batch-card dl { display: grid; gap: 8px; margin: 18px 0; }
.batch-card dl div { display: grid; grid-template-columns: 140px minmax(0, 1fr); gap: 10px; }
.batch-card dt { color: var(--muted); }
.batch-card dd { margin: 0; }
.batch-next { display: grid; gap: 3px; margin: 0 -18px 16px; padding: 13px 18px; border-block: 1px solid var(--line); background: rgba(255, 255, 255, .025); }
.batch-next span { color: var(--muted); font-size: 12px; text-transform: uppercase; letter-spacing: .07em; }
.batch-actions, .batch-secondary > div { display: flex; flex-wrap: wrap; gap: 8px; }
.batch-secondary { margin-top: 14px; }
.batch-secondary summary, .batch-history summary { cursor: pointer; color: var(--muted); font-weight: 750; }
.batch-secondary > div { margin-top: 10px; }
.batch-history { margin-top: 22px; padding-top: 16px; border-top: 1px solid var(--line); }
.procurement-summary { margin-bottom: 28px; }
.procurement-section + .procurement-section { margin-top: 32px; }
.procurement-heading { align-items: end; margin-bottom: 14px; }
.procurement-heading .eyebrow, .procurement-heading h3, .procurement-heading p { margin: 0; }
.procurement-heading p { color: var(--muted); }
.procurement-needs { display: grid; gap: 10px; }
.procurement-need { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 18px; align-items: center; padding: 16px; border: 1px solid var(--line); border-left: 5px solid var(--sirius-info-text); border-radius: var(--sirius-radius-md); background: var(--surface-2); }
.procurement-need span { color: var(--amber-2); font-size: 12px; font-weight: 800; letter-spacing: .08em; }
.procurement-need h3 { margin: 3px 0; }
.procurement-need p { margin: 0; color: var(--muted); }
.procurement-need > strong { color: var(--amber-2); white-space: nowrap; }
.receipt-history { margin-top: 26px; padding-top: 18px; border-top: 1px solid var(--line); }
.receipt-history summary { cursor: pointer; color: var(--muted); font-weight: 750; }
.is-new-row > td { background: color-mix(in srgb, var(--gold, #d4a24c) 22%, transparent); box-shadow: inset 0 2px 0 var(--gold, #d4a24c), inset 0 -2px 0 var(--gold, #d4a24c); }
.catalog-summary { margin-bottom: 24px; }
.catalog-tools { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 14px; margin-bottom: 18px; }
.catalog-tools > label { width: min(520px, 100%); }
.catalog-tools .segmented { margin: 0; }
.catalog-grid { display: grid; gap: 16px; }
.catalog-card { display: grid; grid-template-columns: 190px minmax(0, 1fr); overflow: hidden; border: 1px solid var(--line); border-radius: var(--sirius-radius-md); background: var(--surface-2); }
.catalog-card.is-inactive, .variant-row.is-inactive { opacity: .62; }
.catalog-image { min-height: 220px; background: var(--sirius-field); }
.catalog-image img, .catalog-image .catalog-placeholder { width: 100%; height: 100%; object-fit: cover; }
.catalog-placeholder { display: grid; place-items: center; min-height: 140px; color: var(--sirius-on-primary); background: linear-gradient(135deg, var(--amber), var(--sirius-bronze-light)); font: 800 52px/1 Georgia, serif; }
.catalog-card-body { min-width: 0; padding: 18px; }
.catalog-card-body > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.catalog-card-body > header > div > span { color: var(--amber-2); font-size: 12px; font-weight: 800; letter-spacing: .08em; }
.catalog-card-body h3 { margin: 0; color: var(--amber-2); font-size: 1.4rem; font-weight: 800; line-height: 1.2; }
.catalog-meta { margin: 5px 0 10px; color: var(--muted); }
.channel-list { display: flex; flex-wrap: wrap; gap: 6px; }
.channel-list span { border: 1px solid var(--sirius-border-bronze); border-radius: 999px; padding: 3px 8px; color: var(--amber-2); font-size: 12px; }
.variant-list { display: grid; gap: 8px; margin-top: 16px; }
.variant-row { display: grid; grid-template-columns: minmax(190px, 1fr) auto auto auto auto; gap: 12px; align-items: center; padding: 11px 0; border-top: 1px solid var(--line); }
.variant-row > div:first-child { display: grid; min-width: 0; }
.variant-row > div:first-child span, .variant-row > div:first-child small, .variant-stock span, .variant-price span { color: var(--muted); font-size: 12px; }
.variant-stock, .variant-price { display: grid; min-width: 92px; }
.variant-price { min-width: 120px; }
.variant-row button { min-height: 36px; padding: 6px 10px; }
.catalog-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; padding-top: 15px; border-top: 1px solid var(--line); }
.image-manager { display: grid; gap: 24px; }
[data-image-crop] canvas { display: block; width: min(420px, 100%); height: auto; margin: 0 auto 14px; border: 1px solid var(--line); border-radius: var(--sirius-radius-md); background: var(--sirius-bg); }
.existing-images { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.existing-images article { overflow: hidden; border: 1px solid var(--line); border-radius: var(--sirius-radius-sm); background: var(--surface-2); }
.existing-images img, .existing-images .catalog-placeholder { width: 100%; height: 150px; object-fit: cover; }
.existing-images article > div { display: grid; gap: 8px; padding: 10px; }
.existing-images article span { color: var(--muted); font-size: 12px; }
.time-summary { margin-bottom: 22px; }
.time-filters { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; align-items: end; margin-bottom: 28px; padding: 14px; border: 1px solid var(--line); border-radius: var(--sirius-radius-md); background: var(--surface-2); }
.time-breakdown { margin-bottom: 30px; }
.time-breakdown > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.time-breakdown article { display: grid; gap: 3px; padding: 14px; border-left: 4px solid var(--amber); border-radius: var(--sirius-radius-sm); background: var(--surface-2); }
.time-breakdown article span, .time-breakdown article small { color: var(--muted); }
.time-breakdown article strong { font: 700 22px/1.2 Georgia, serif; }
.time-entries .section-action, .team-section .section-action { margin-bottom: 12px; }
.time-entries .eyebrow, .time-entries h3, .team-section .eyebrow, .team-section h3 { margin-block: 0; }
.team-section { margin-top: 32px; padding-top: 22px; border-top: 1px solid var(--line); }
.team-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.team-card { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 14px; align-items: center; padding: 14px; border: 1px solid var(--line); border-radius: var(--sirius-radius-sm); background: var(--surface-2); }
.team-card.is-inactive { opacity: .62; }
.team-card > div { display: grid; }
.team-card span { color: var(--muted); font-size: 12px; }
.mailing-summary { margin-bottom: 26px; }
.mailing-heading { align-items: end; margin-bottom: 14px; }
.mailing-heading .eyebrow, .mailing-heading h3, .mailing-heading p { margin: 0; }
.mailing-heading p { color: var(--muted); }
.mailing-list { display: grid; gap: 10px; }
.mailing-card { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(180px, auto); gap: 20px; align-items: center; padding: 16px; border: 1px solid var(--line); border-radius: var(--sirius-radius-md); background: var(--surface-2); }
.mailing-card h3 { margin: 3px 0; }
.mailing-card p, .mailing-card > div:first-child > span, .mailing-count span, .mailing-status span { margin: 0; color: var(--muted); font-size: 12px; }
.mailing-count, .mailing-status { display: grid; }
.mailing-count strong { font: 700 24px/1.1 Georgia, serif; }
.mailing-status .success { color: var(--green); }
.mailing-status .danger { color: var(--red); }
.mailing-form { display: grid; gap: 20px; }
.recipient-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 12px; }
.recipient-toolbar > div { display: flex; flex-wrap: wrap; gap: 8px; }
.recipient-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); max-height: 360px; overflow: auto; border: 1px solid var(--line); border-radius: var(--sirius-radius-sm); }
.recipient-list label { display: flex; align-items: center; grid-template-columns: auto 1fr; gap: 10px; padding: 10px; border-bottom: 1px solid var(--line); }
.recipient-list input { width: 20px; min-height: 20px; }
.recipient-list label > span { display: grid; }
.recipient-list small { color: var(--muted); }
.user-summary { margin-bottom: 26px; }
.user-heading { align-items: end; margin-bottom: 14px; }
.user-heading .eyebrow, .user-heading h3, .user-heading p { margin: 0; }
.user-heading p { color: var(--muted); }
.user-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.user-card { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 16px; align-items: center; padding: 15px; border: 1px solid var(--line); border-radius: var(--sirius-radius-md); background: var(--surface-2); }
.user-card.is-inactive { opacity: .62; }
.user-card > div { display: grid; }
.user-card h3 { margin: 2px 0; }
.user-card span, .user-card p, .user-card small { margin: 0; color: var(--muted); font-size: 12px; }
.form-actions { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; }
.form-copy { align-self: center; margin: 0; color: var(--muted); }
.check-label { display: flex; align-items: center; gap: 9px; min-height: 44px; }
.check-label input { width: 20px; min-height: 20px; }
fieldset { margin: 0; border: 1px solid var(--line); border-radius: var(--sirius-radius-md); padding: 14px; }
legend { padding: 0 8px; color: var(--amber-2); font-weight: 800; }
.detail-card { margin-top: 18px; padding-top: 20px; border-top: 1px solid var(--line); scroll-margin-top: 16px; }
.detail-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.detail-heading .eyebrow { margin-top: 0; }
.subrow { display: grid; gap: 2px; min-width: 190px; margin-bottom: 8px; }
.subrow span { color: var(--muted); font-size: 13px; }
.segmented { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 18px; }
.segmented button { border: 1px solid var(--line); color: var(--ink); background: var(--surface-2); }
.segmented button.active { border-color: var(--amber); color: var(--sirius-on-primary); background: var(--amber); }
.button-danger { color: var(--sirius-media); background: var(--sirius-danger); }
.technical-action { border-left: 4px solid var(--sirius-border-bronze); padding-left: 14px; }
.need-production { border-color: var(--sirius-border-bronze); }
.need-procurement { border-color: var(--sirius-info-text); color: var(--sirius-info-text); }
.empty { padding: 30px; color: var(--muted); text-align: center; }
@media (max-width: 820px) {
    .cards { grid-template-columns: repeat(2, 1fr); }
    .action-grid { grid-template-columns: repeat(2, 1fr); }
    .module-nav { display: grid; }
    .nav-groups { justify-content: flex-start; }
    .nav-group > div { position: static; width: 100%; margin-top: 6px; box-shadow: none; }
    .checkout-shell { grid-template-columns: 1fr; }
    .checkout-cart { position: static; }
    .sale-products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .client-detail-grid { grid-template-columns: 1fr; }
    .keg-grid { grid-template-columns: 1fr; }
    .today-grid { grid-template-columns: 1fr; }
    .batch-grid { grid-template-columns: 1fr; }
    .procurement-need { grid-template-columns: 1fr; gap: 10px; }
    .procurement-need button { width: 100%; }
    .catalog-card { grid-template-columns: 130px minmax(0, 1fr); }
    .variant-row { grid-template-columns: minmax(0, 1fr) auto auto; }
    .variant-row > button { grid-column: span 1; }
    .time-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .time-breakdown > div { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .team-grid { grid-template-columns: 1fr; }
    .mailing-card { grid-template-columns: minmax(0, 1fr) auto; }
    .mailing-status { grid-column: 1 / -1; grid-template-columns: repeat(3, 1fr); }
    .user-grid { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
    .page-shell { width: min(100% - 20px, 1240px); padding-top: 14px; }
    .login-card { margin-top: 4vh; padding: 24px; }
    .topbar { align-items: flex-start; }
    .user-block { align-items: flex-end; flex-direction: column; }
    .user-identity { justify-items: end; }
    .hero { align-items: flex-end; }
    .panel { padding: 14px; border-radius: var(--sirius-radius-md); }
    .cards, .action-grid { grid-template-columns: 1fr; }
    .action-grid .wide { grid-column: auto; }
    .nav-primary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .module-nav button { width: 100%; padding-inline: 10px; }
    .nav-groups { display: grid; grid-template-columns: 1fr; }
    .nav-group > div { display: grid; grid-template-columns: 1fr; }
    .dialog-heading { align-items: stretch; }
    .dialog-body { padding: 16px; }
    .detail-heading { align-items: stretch; flex-direction: column; }
    .detail-heading button { width: 100%; }
    .order-line { grid-template-columns: 1fr; }
    .order-line button, .form-actions button { width: 100%; }
    .checkout-controls, .client-picker { grid-template-columns: 1fr; }
    .catalog-search { justify-self: stretch; }
    .sale-products { grid-template-columns: 1fr; }
    .sale-group-heading { align-items: flex-start; flex-direction: column; }
    .sale-group-heading p { text-align: left; }
    .address-list { grid-template-columns: 1fr; }
    .data-list div { grid-template-columns: 1fr; gap: 2px; }
    .keg-heading { align-items: flex-start; flex-direction: column; }
    .today-heading { align-items: flex-start; flex-direction: column; }
    .today-item { align-items: stretch; flex-direction: column; }
    .today-item button { width: 100%; }
    .catalog-tools { align-items: stretch; flex-direction: column; }
    .catalog-card { grid-template-columns: 1fr; }
    .catalog-image { max-height: 230px; }
    .variant-row { grid-template-columns: 1fr 1fr; }
    .variant-row > div:first-child { grid-column: 1 / -1; }
    .variant-row button { width: 100%; }
    .existing-images { grid-template-columns: 1fr; }
    .time-filters, .time-breakdown > div { grid-template-columns: 1fr; }
    .team-card { grid-template-columns: 1fr; }
    .team-card button { width: 100%; }
    .mailing-heading { align-items: stretch; flex-direction: column; }
    .mailing-card { align-items: stretch; grid-template-columns: 1fr; }
    .mailing-status { grid-column: auto; grid-template-columns: 1fr; }
    .recipient-list { grid-template-columns: 1fr; }
    .user-heading { align-items: stretch; flex-direction: column; }
    .user-card { grid-template-columns: 1fr; }
    .user-card button { width: 100%; }
    .sale-card { grid-template-columns: 92px 1fr; grid-template-rows: auto auto; }
    .sale-card > img, .sale-card > .product-placeholder, .grole-card > .product-placeholder { grid-row: 1 / span 2; width: 92px; height: 100%; min-height: 132px; }
    .sale-card-footer { padding-top: 0; }
    table { min-width: 620px; }
}
@media (prefers-reduced-motion: reduce) { * { scroll-behavior: auto !important; transition: none !important; } }

/* Stock overview is additive; hidden form fields stay hidden in grid layouts. */
[hidden] { display: none !important; }
.stock-gauges { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:16px; }
.stock-gauge { border:1px solid var(--sirius-border); border-radius:var(--sirius-radius-sm); padding:16px; }
.stock-gauge header { display:flex; justify-content:space-between; gap:12px; }
.stock-gauge progress { width:100%; height:16px; accent-color:var(--sirius-success-text); margin-top:14px; }
.stock-half progress { accent-color:var(--sirius-bronze); }
.stock-low progress,.stock-empty progress { accent-color:var(--sirius-danger-text); }
.stock-gauge.stock-low { border-left:5px solid var(--sirius-warning-text); }
.stock-gauge.stock-empty { border-left:5px solid var(--sirius-danger-text); }
.catalog-intro,.wizard-note { max-width:75ch; line-height:1.5; }
.size-grid { display:flex; flex-wrap:wrap; gap:12px; }
.size-grid label { display:flex; align-items:center; gap:6px; }
.pack-composer { border:1px solid var(--sirius-border); border-radius:var(--sirius-radius-sm); padding:16px; }

/* CDC v0.13: native selection contrast and focused, responsive commerce controls. */
select { color-scheme: dark; color: var(--sirius-text); background-color: var(--sirius-field); }
select option, select optgroup { color: var(--sirius-text); background-color: var(--sirius-field); }
select option:checked { color: var(--sirius-on-primary); background-color: var(--sirius-bronze); }
select:focus-visible { outline: 3px solid var(--sirius-bronze); outline-offset: 3px; }
.sale-card > img { object-fit: contain; background: var(--sirius-media); padding: 8px; box-sizing: border-box; }
.price-matrix-cards { display: grid; gap: 16px; grid-template-columns: repeat(auto-fit,minmax(min(100%,360px),1fr)); }
.price-matrix-card, .price-period-card { min-width: 0; padding: 18px; border: 1px solid var(--sirius-border); border-radius: var(--sirius-radius-md); margin-bottom: 12px; }
.price-matrix-fields { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,180px),1fr)); gap: 12px; margin-top: 12px; }
.price-matrix-fields input { width: 100%; min-width: 0; box-sizing: border-box; font-size: 1.1rem; }
.price-period-card { overflow-wrap: anywhere; }
.order-export-footer { margin-top: 24px; }
#notice > button, [data-dialog-notice] > button { margin-left: 12px; }

.ordered-totals td:not(:first-child), .ordered-totals th:not(:first-child) { text-align: right; font-variant-numeric: tabular-nums; }
@media (max-width: 560px) { .ordered-totals td:not(:first-child) { text-align: left; } }
.action-dialog:has(.price-matrix-cards) { width: min(1200px, 94vw); max-width: 94vw; }

/* CDC v1: a single cart, in a bottom sheet on small screens. */
.mobile-cart-summary { display: none; }
.mobile-cart-sheet { width: min(100%, 42rem); max-height: 85dvh; margin: auto auto 0; padding: 1rem 1rem calc(1rem + env(safe-area-inset-bottom)); overflow-y: auto; color: var(--text, var(--sirius-text)); background: var(--panel, var(--sirius-surface)); border: 1px solid var(--sirius-border); border-radius: var(--sirius-radius-lg) var(--sirius-radius-lg) 0 0; }
.mobile-cart-sheet::backdrop { background: rgb(0 0 0 / .55); }
.mobile-cart-sheet .checkout-cart { position: static; width: 100%; max-height: none; }
.mobile-cart-close { margin-bottom: 1rem; }
@media (max-width: 700px) {
    .checkout-shell { padding-bottom: 5rem; }
    .mobile-cart-summary:not([hidden]) { display: block; position: fixed; z-index: 35; bottom: calc(4.5rem + env(safe-area-inset-bottom)); left: .6rem; right: .6rem; width: calc(100% - 1.2rem); min-height: 48px; box-shadow: 0 3px 18px rgba(0,0,0,.53); }
    .sale-card-footer .quantity-stepper button { min-width: 44px; min-height: 44px; }
    .sale-card-footer { flex-wrap: wrap; }
}

/* CDC v1: reduce empty catalogue space while keeping every price/stock/action. */
.catalog-card { grid-template-columns: 160px minmax(0, 1fr); }
.catalog-image { min-height: 240px; }
.catalog-card-body { padding: 12px; }
.catalog-grid { gap: 10px; }
.catalog-actions { margin-top: 8px; padding-top: 8px; }
.catalog-meta { margin-bottom: 6px; }
.variant-row { gap: 8px; padding: 8px 0; }
@media (max-width: 700px) {
    .catalog-card { grid-template-columns: minmax(0, 1fr); }
    .catalog-image { min-height: 90px; max-height: 120px; }
    .variant-row button { min-height: 44px; }
}

.list-pagination { display:flex; align-items:center; justify-content:center; gap:12px; margin:16px 0; flex-wrap:wrap; }
@media (max-width:700px) {
    .action-dialog { width:100%; max-width:100%; height:100dvh; max-height:100dvh; margin:0; border-radius:0; }
    .dialog-heading { padding:12px; }
    .dialog-body { padding:12px; }
}


/* Periods remain attached to their variant, with all dates and amounts visible. */
.price-periods { width:100%; border-collapse:collapse; font-size:.9rem; }
.price-periods th,.price-periods td { padding:.35rem .5rem; text-align:left; white-space:normal; overflow-wrap:anywhere; }
.variant-price:has(details[open]) { grid-column:1 / -1; min-width:0; }
@media(max-width:700px) {
    .price-periods thead { display:none; }
    .price-periods tbody,.price-periods tr { display:block; }
    .price-periods tr { padding:.4rem 0; border-bottom:1px solid var(--line,var(--sirius-border)); }
    .price-periods td { display:grid; grid-template-columns:5.5rem minmax(0,1fr); gap:.5rem; }
    .price-periods td::before { content:attr(data-label); font-weight:600; }
}

/* Event editor: text-field dimensions must never stretch native checkboxes. */
.event-editor input[type="checkbox"] { width:20px; height:20px; min-height:20px; padding:0; flex:0 0 20px; vertical-align:middle; }
.event-editor .action-grid > p, .event-editor .action-grid > fieldset { grid-column:1 / -1; }
.action-dialog:has(.event-editor) { width:min(1200px, calc(100% - 32px)); }
.event-toolbar { display:grid; grid-template-columns:minmax(200px,1fr) 200px 200px; gap:16px; align-items:end; margin-bottom:20px; }
.event-create-actions { display:flex; justify-content:flex-end; gap:12px; margin-bottom:16px; }
.event-tabs, .event-form-actions { display:flex; gap:8px; flex-wrap:wrap; margin:16px 0; }
/* Barre des étapes : collée en haut de la zone qui défile, sous l'en-tête, fond opaque ; jamais au-dessus du message ni du bouton Enregistrer (le message est hors de la zone qui défile). */
.event-tabs { position:sticky; top:0; z-index:3; margin:0 0 16px; padding:10px 0; background:var(--sirius-surface); border-bottom:1px solid var(--line); }
.dialog-body.event-editor { padding-top:0; scroll-padding-top:72px; }
.dialog-body.event-editor > [data-event-information] { padding-top:16px; }
.event-tabs .active { outline:none; }
.event-highlight { outline:none; outline-offset:-2px; }
.event-highlight small { display:block; }
.event-information fieldset { margin:0; min-width:0; }
.event-editor [data-field-error], .event-editor [aria-invalid="true"] { color:var(--sirius-danger-text); }
.event-editor .check-label { display:flex; align-items:center; gap:8px; }
.event-editor .action-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
@media(max-width:700px) { .event-toolbar, .event-editor .action-grid { grid-template-columns:1fr; } .event-create-actions { flex-direction:column; } .event-tabs { flex-wrap:nowrap; overflow-x:auto; } }

.event-product-row, .event-format-row { display:grid; grid-template-columns:minmax(180px,1fr) minmax(130px,220px); gap:12px; padding:12px; border-bottom:1px solid var(--line); align-items:center; }
.event-product-row fieldset, .event-product-row [data-row-error], .event-format-row [data-row-error] { grid-column:1 / -1; }
.event-beer-card { border:1px solid var(--line); border-radius:var(--sirius-radius-sm); margin:16px 0; padding:16px; }
.event-beer-card header { display:flex; align-items:center; gap:16px; }
.event-beer-logo { width:88px; height:88px; object-fit:contain; }
.event-logo-upload { display:flex; gap:12px; align-items:end; flex-wrap:wrap; margin-top:12px; }
.event-logo-upload small { flex-basis:100%; }
.event-beer-picker { display:flex; flex-wrap:wrap; gap:12px; align-items:end; }
.event-beer-picker p { flex-basis:100%; }
.event-beer-picker label { min-width:200px; flex:1; }
.event-editor [data-row-error], .event-editor [data-products-error] { color:var(--sirius-danger-text); margin:0; }
@media(max-width:700px) { .event-product-row, .event-format-row { grid-template-columns:1fr; } }

.event-editor [data-event-general] > summary { cursor:pointer; padding:10px 0; }
.event-editor [data-event-general][open] > summary { margin-bottom:12px; }
.event-editor .event-information textarea { min-height:80px; }
.event-till { display:grid; grid-template-columns:minmax(0,1fr) minmax(320px,400px); gap:20px; align-items:start; }
.event-till [data-event-header] { grid-column:1 / -1; }
.event-till [data-event-products] { grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); }
.event-till .event-sale-card { min-height:0; padding:16px; display:flex; flex-direction:column; gap:12px; justify-content:flex-start; }
.event-sale-card h3, .event-sale-card p { margin:0; }
.event-till [data-event-cart] { position:sticky; top:12px; margin:0; }
.event-till [data-event-cart] button { margin:4px 2px; }
.event-price-change { border:1px solid var(--accent,var(--sirius-bronze)); padding:12px; margin-bottom:16px; }
@media(max-width:850px) { .event-till { grid-template-columns:1fr; } .event-till [data-event-cart] { position:static; } }

.event-remove-line { margin-left: 2rem; }
.event-payment-confirmation { padding: 1.5rem; border: 2px solid currentColor; border-radius: var(--sirius-radius-sm); margin: 1rem 0; }

.contact-workspace-modal{width:min(1100px,94vw);max-height:90vh;overflow:auto;border:1px solid var(--sirius-border);border-radius:var(--sirius-radius-lg);padding:24px;background:var(--surface,var(--sirius-surface));color:var(--text,var(--sirius-text))}.contact-workspace-modal::backdrop{background:rgba(0,0,0,.4)}[data-validation-error]{display:block;color:var(--sirius-danger-text)}[data-required-mark]{color:var(--sirius-danger-text)}.catalog-tabs{flex-wrap:wrap}

.user-menu { position: relative; display: block; }
.user-menu summary { cursor: pointer; padding: 8px; }
.user-menu-actions { position: absolute; z-index: 30; right: 0; top: 100%; min-width: 230px; padding: 12px; display: grid; gap: 8px; background: var(--surface, var(--sirius-media)); border: 1px solid var(--border, var(--sirius-border)); border-radius: var(--sirius-radius-md); box-shadow: 0 6px 18px rgba(0,0,0,.13); }
.user-menu-actions hr { width: 100%; }

/* Recette: quantity and removal are separate touch targets. */
.cart-line { column-gap:20px;row-gap:12px; }
.quantity-stepper button,.cart-remove { min-width:44px;min-height:44px; }
.cart-remove { margin-left:16px;border:1px solid var(--line); }
.quick-checkout-actions { display:grid;gap:10px;margin:12px 0; }
.quick-checkout-actions button { min-height:48px; }
.confirmation-dialog { width:min(480px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;padding:16px;border:1px solid var(--line);border-radius:var(--sirius-radius-lg);background:var(--surface);color:var(--text); }
.confirmation-dialog::backdrop { background:var(--sirius-backdrop); }
.confirmation-dialog section { margin:0;box-shadow:none; }
.confirmation-dialog button { min-height:44px; }
.confirmation-dialog:has(.confirmation-row) { width:min(680px,calc(100vw - 32px)); }
.confirmation-dialog .confirmation-row { display:flex; flex-wrap:wrap; gap:8px; }
.confirmation-dialog .confirmation-row > button { flex:1 1 0; min-width:max-content; white-space:nowrap; }
.confirmation-dialog .confirmation-row > p { flex-basis:100%; margin:0 0 4px; }

.account-avatar{display:flex;align-items:center;justify-content:center;border-radius:50%;width:48px;height:48px;background:var(--surface);border:1px solid var(--line);cursor:pointer;font-weight:700}.account-avatar::marker{content:""}.account-avatar::-webkit-details-marker{display:none}.user-menu-actions{background:var(--surface,var(--sirius-surface));color:var(--text,var(--sirius-text))}.contact-workspace-modal h3,.contact-workspace-modal p{color:inherit}

/* Product text and touch controls have separate, wrapping layout areas. */
.cart-line { display:flex; flex-wrap:wrap; align-items:center; gap:16px 24px; padding:14px 0; }
.cart-line > .cart-description { flex:1 1 160px; min-width:0; overflow-wrap:anywhere; }
.cart-line .cart-description span { white-space:normal; overflow:visible; text-overflow:clip; }
.cart-controls { display:flex; align-items:center; flex-wrap:wrap; justify-content:flex-end; gap:16px 24px; margin-left:auto; }
.cart-controls .quantity-stepper { flex:none; gap:6px; border:1px solid var(--line); border-radius:var(--sirius-radius-sm); padding:4px; }
.cart-controls .quantity-stepper button { width:44px; height:44px; min-width:44px; min-height:44px; }
.cart-controls .cart-remove { min-height:44px; min-width:44px; margin:0; padding:8px 12px; }
.twint-dialog { width:min(440px,calc(100vw - 32px)); max-height:90dvh; overflow:auto; text-align:center; }
.twint-dialog img,.twint-qr-preview { display:block; width:min(260px,100%); height:auto; margin:16px auto; background:white; padding:12px; box-sizing:border-box; }
.twint-amount { display:block; font-size:2rem; margin:12px 0; }
.twint-actions { display:flex; flex-wrap:wrap; justify-content:center; gap:16px; }
.twint-actions button { min-width:100px; min-height:48px; }
@media(max-width:480px) { .cart-line > .cart-description { flex-basis:100%; } .cart-controls { width:100%; justify-content:space-between; } }


/* A shared, uncropped product presentation across sales and catalogue previews. */
.sale-card > img, .event-sale-card > img, .catalog-image img, .existing-images img, .event-beer-logo {
    object-fit: contain; object-position: center; background: var(--sirius-media); padding: 12px; box-sizing: border-box;
}
.sale-card > img { height: 150px; width: 100%; }
.textile-sizes { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .65rem; padding: .8rem; }
.textile-sizes > div { display: grid; gap: .3rem; }
.textile-sizes small { font-size: .75rem; }
.form-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1rem; }
.catalog-sale-preview { width: 240px; max-width: 100%; }
.catalog-sale-preview.mobile { width: 180px; }

/* Contact panes share one stable workspace; tabs never act as scroll anchors. */
[data-contact-detail] [role="tablist"]{display:flex;flex-wrap:nowrap;overflow-x:auto;gap:.4rem;padding:.3rem 0;}
[data-contact-detail] [role="tab"]{flex:0 0 auto;min-height:44px;}
[data-contact-detail] [role="tab"][aria-selected="true"]{background:var(--accent,var(--sirius-bronze));color:var(--sirius-on-primary);border-color:var(--accent,var(--sirius-bronze));font-weight:700;}
[data-contact-detail] [role="tabpanel"][hidden]{display:none!important;}
[data-contact-detail] #client-detail{margin-top:1rem;}

/* Keep the dialog anchored when switching between short and long contact panes. */
.contact-workspace-modal{height:min(900px,90vh);height:min(900px,90dvh);}

/* Post-recipe controls: one client field and accessible contact role toggles. */
.client-picker .client-search { grid-column:1/-1; flex:1 1 24rem; width:100%; min-width:0; position:relative; }
.client-search input { width:100%; min-height:48px; }
.client-search [role=listbox] { position:absolute; inset:auto 0 auto 0; z-index:20; max-height:18rem; overflow:auto; padding:.4rem; background:var(--sirius-surface); border:1px solid var(--sirius-border-bronze); border-radius:var(--sirius-radius-md); box-shadow:0 8px 24px rgba(0,0,0,.53); }
.client-search [role=option] { display:block; width:100%; text-align:left; margin:0; border:0; background:transparent; color:var(--sirius-text); }
.client-search [role=option]:is(:hover,:focus) { background:var(--sirius-surface-raised); }
.contact-role-toggles { grid-column:1/-1; display:flex; flex-wrap:wrap; gap:.75rem; }
.contact-role-toggles label { position:relative; cursor:pointer; }
.contact-role-toggles input { position:absolute; width:1px; height:1px; opacity:0; }
.contact-role-toggles span { display:block; min-width:8rem; padding:.8rem 1rem; border:1px solid var(--sirius-border); border-radius:var(--sirius-radius-sm); background:var(--sirius-surface); }
.contact-role-toggles input:checked+span { background:var(--sirius-bronze); color:var(--sirius-on-primary); border-color:var(--sirius-bronze); font-weight:700; }
.contact-role-toggles input:checked+span::before { content:'✓ '; }
.contact-role-toggles input:focus-visible+span { outline:3px solid var(--sirius-media); outline-offset:3px; }
.contact-role-toggles input:disabled+span { cursor:default; opacity:.7; }
.contact-role-toggles small { flex-basis:100%; }
button.button-primary { background:var(--sirius-bronze); color:var(--sirius-on-primary); border-color:var(--sirius-bronze); font-weight:700; }

.event-status { display:inline-block; padding:.55rem 1rem; font-size:1rem; font-weight:800; border:1px solid; border-radius:var(--sirius-radius-lg); }
.event-status-preparation { color:var(--sirius-bronze-light); background:var(--sirius-warning-surface); }
.event-status-open { color:var(--sirius-success-text); background:var(--sirius-success-surface); }
.event-status-closed { color:var(--sirius-info-text); background:var(--sirius-info-surface); }
.event-status-cancelled { color:var(--sirius-danger-text); background:var(--sirius-danger-surface); }
.event-beer-balance { border-left:5px solid var(--sirius-bronze); margin-block:1.25rem; background:var(--sirius-surface); }
.event-beer-balance h4 { font-size:1.3rem; color:var(--sirius-bronze-light); }
.event-editor [data-keg-preview] { border:1px solid var(--sirius-border-bronze); border-radius:var(--sirius-radius-sm); padding:1rem; background:var(--sirius-surface); }
.event-editor [data-keg-preview] h4 { padding:.6rem; background:var(--sirius-warning-surface); color:var(--sirius-bronze-light); }

.event-stock-warning { background:var(--sirius-warning-text); color:var(--sirius-on-primary); border:2px solid var(--sirius-warning-text); border-radius:var(--sirius-radius-sm); padding:1rem; font-size:1.05rem; }
.event-stock-block { background:var(--sirius-danger-surface); color:var(--sirius-media); border:2px solid var(--sirius-danger-text); padding:1rem; font-weight:700; position:relative; z-index:2; }
.event-till>[data-stock-alerts],.event-till>[data-sale-error] { grid-column:1/-1; }
.event-till>[data-sale-error]:not([hidden]) { display:block; }

/* Complimentary quantity is separate from destructive and quantity-stepper actions. */
.complimentary-control { display:block; margin-top:1rem; padding-top:.75rem; border-top:1px solid var(--border, var(--sirius-border)); }
.complimentary-control input { min-height:44px; max-width:110px; margin-top:.4rem; }
[data-grole-shop] button { min-height:44px; margin:.5rem .5rem .5rem 0; }

.pager{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:16px}

/* Écran Prix : tableur produit × liste, enregistrement unique */
.action-dialog:has(.price-grid) { width: min(1200px, 94vw); max-width: 94vw; }
.price-grid-tools { display: flex; flex-wrap: wrap; gap: var(--sirius-space-3); align-items: end; }
.price-grid-legend { list-style: none; display: flex; flex-wrap: wrap; gap: 4px var(--sirius-space-4); padding: 0; margin: 0; }
.price-grid-table { border-collapse: separate; border-spacing: 0; width: 100%; }
.price-grid-table thead th { position: sticky; top: 0; z-index: 2; background: var(--sirius-surface-raised); text-align: left; }
.price-grid-table tbody th[scope="row"] { position: sticky; left: 0; z-index: 1; text-align: left; min-width: 180px; background: var(--sirius-surface-soft); }
.price-grid-table th[scope="rowgroup"] { text-align: left; background: var(--sirius-surface-2); }
.price-grid-table th small, .price-grid-table td small { display: block; color: var(--sirius-text-muted); font-weight: 400; }
.price-grid-table td, .price-grid-table th { border-bottom: 1px solid var(--sirius-line); padding: var(--sirius-space-2); }
.price-grid-table input { width: 100%; min-width: 96px; box-sizing: border-box; }
.price-grid-table td.is-changed input { outline: 2px solid var(--sirius-focus); }
.price-cell-note { display: block; color: var(--sirius-danger-text); font-size: .85rem; }
/* Disposition : la zone « price-grid-scroll » défile, le bandeau Enregistrer est un pied fixe hors de cette zone (il ne masque rien). */
.action-dialog .dialog-body:has(.price-grid) { display: flex; flex-direction: column; overflow: hidden; padding: 0; }
.price-grid { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; gap: 0; }
.price-grid-scroll { flex: 1 1 auto; min-height: 0; overflow-y: auto; display: flex; flex-direction: column; gap: var(--sirius-space-4); padding: var(--sirius-space-4) 24px; }
.price-grid-scroll > * { flex: none; }
.price-grid .price-grid-wrap { max-height: max(14rem, calc(100vh - 26rem)); max-height: max(14rem, calc(100dvh - 26rem)); overflow: auto; }
.price-grid-actions { flex: none; display: flex; flex-wrap: wrap; gap: var(--sirius-space-3); padding: var(--sirius-space-3) 24px; border-top: 1px solid var(--sirius-line); background: var(--sirius-surface-raised); }
@media (max-width: 560px) and (orientation: portrait) {
  .price-grid-scroll { padding: var(--sirius-space-3) 12px; }
  .price-grid-actions { padding: var(--sirius-space-3) 12px; }
  .price-grid .price-grid-wrap { max-height: none; overflow: visible; }
}
.price-category-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: var(--sirius-space-3); }
.pill-cancelled { color:var(--sirius-danger-text); border-color:var(--sirius-danger-text); }

/* Lot 2a : filtre « Voir tout », correction dans le panier, annulation en une action. */
.filter-chip { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin:0 0 12px; }
.filter-chip span { padding:6px 12px; border:1px solid var(--sirius-gold-line, #8a6a2b); border-radius:999px; }
label:has([data-billing-payment]) { display:inline-grid; gap:4px; max-width:18rem; }
.correction-banner { display:grid; gap:6px; margin-bottom:10px; }
.correction-banner [data-correction-status] { font-weight:600; }
.cancel-flow ul { margin:8px 0; padding-left:20px; }

/* Feuille d'inventaire (lot ERP 5.1) */
.inventory-sheet-table input[data-counted]{width:7rem;text-align:right}
.inventory-sheet-table input[data-note]{width:100%;min-width:9rem}
.inventory-sheet-table .inventory-family th{background:var(--sirius-surface-raised);text-align:left}
.inventory-sheet-table small{color:var(--sirius-text-muted)}
.inventory-sheet-table .inventory-reserved{white-space:nowrap}
.inventory-gap{font-weight:700;white-space:nowrap}
.inventory-gap-plus{color:var(--sirius-success-text)}
.inventory-gap-minus{color:var(--sirius-danger-text)}
.inventory-gap-zero{color:var(--sirius-text-muted)}
.inventory-sheet [data-batch]{margin-top:.35rem}

/* Parc de fûts (lot ERP 5.2) */
.keg-fleet tfoot th,.keg-fleet tfoot td{border-top:2px solid var(--sirius-gold-line);font-weight:700}
.keg-movements .fleet-quantity{font-weight:700;white-space:nowrap}
.fleet-quantity-plus{color:var(--sirius-success-text)}
.fleet-quantity-minus{color:var(--sirius-danger-text)}
.fleet-quantity-zero{color:var(--sirius-text-muted)}
.keg-movements .button-secondary{margin:.1rem .2rem .1rem 0}

/* Stock et besoins en style ERP (lot ERP 5.3) */
.stock-erp-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem}
.stock-tabs{margin:.75rem 0}
.stock-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:.75rem;margin:.75rem 0}
.stock-card{text-align:left;cursor:pointer;border:1px solid var(--sirius-border);background:var(--sirius-surface-raised);color:var(--sirius-text)}
.stock-card.active{border-color:var(--sirius-gold-frame);background:var(--sirius-surface);box-shadow:inset 0 0 0 2px var(--sirius-gold-frame)}
.stock-card strong{display:block;font-size:1.6rem}
.stock-card small{color:var(--sirius-text-muted)}
.stock-card-out.active strong{color:var(--sirius-danger-text)}
.stock-card-low.active strong,.stock-card-to_order.active strong{color:var(--sirius-warning-text)}
.stock-toolbar{display:flex;flex-wrap:wrap;gap:.75rem;align-items:end;margin:.5rem 0}
.stock-search input{min-width:16rem}
.stock-count{color:var(--sirius-text-muted);margin:.25rem 0}
.stock-state{white-space:nowrap}
.stock-state-out{background:var(--sirius-danger-surface);color:var(--sirius-danger-text)}
.stock-state-to_order,.stock-state-to_produce,.stock-state-low{background:var(--sirius-warning-surface);color:var(--sirius-warning-text)}
.stock-state-ok{background:var(--sirius-success-surface);color:var(--sirius-success-text)}

/* Panneau latéral d'un article, export et cartes iPhone / iPad (lot ERP 5.4) */
.stock-panel{position:fixed;top:var(--env-banner-height);right:0;bottom:0;width:min(26rem,100vw);z-index:60;overflow-y:auto;padding:1rem;background:var(--sirius-surface);color:var(--sirius-text);border-left:1px solid var(--sirius-gold-frame);box-shadow:-8px 0 24px rgba(0,0,0,.35)}
.stock-panel:focus{outline:none}
.stock-panel-head{display:flex;justify-content:space-between;gap:.75rem;align-items:flex-start;position:sticky;top:-1rem;z-index:1;margin:-1rem -1rem 0;padding:1rem;background:var(--sirius-surface);border-bottom:1px solid var(--sirius-border)}
.stock-panel-minimum{display:flex;gap:.5rem;align-items:end;flex-wrap:wrap}
.stock-panel-minimum input{width:7rem;text-align:right}
.stock-panel-figures{display:grid;grid-template-columns:repeat(auto-fit,minmax(8rem,1fr));gap:.5rem;margin:.75rem 0}
.stock-panel section{margin:1rem 0}
.stock-panel-actions{position:sticky;bottom:0;padding:.75rem 0;background:var(--sirius-surface)}
.stock-chart{width:100%;height:auto}
.stock-chart-line{stroke:var(--sirius-gold);stroke-width:2}
.stock-chart-min{stroke:var(--sirius-warning-text);stroke-width:1.5;stroke-dasharray:6 4}
.stock-chart-zero{stroke:var(--sirius-border);stroke-width:1}
.stock-chart-label{fill:var(--sirius-text-muted);font-size:11px}
.stock-panel-movements,.stock-reserved-list{list-style:none;margin:0;padding:0}
.stock-panel-movements li,.stock-reserved-list li{padding:.25rem 0;border-bottom:1px solid var(--sirius-border)}
.stock-list{display:grid;grid-template-columns:1fr;gap:.5rem;margin:.5rem 0}
@media (min-width:1100px){.stock-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
.stock-item{display:grid;grid-template-columns:1fr auto;gap:.35rem .75rem;width:100%;text-align:left;margin:0;padding:.75rem;border:1px solid var(--sirius-border);border-left-width:5px;background:var(--sirius-surface-raised);color:var(--sirius-text);min-height:44px;cursor:pointer}
.stock-item-title{display:flex;flex-direction:column}
.stock-item-title small{color:var(--sirius-text-muted)}
.stock-item-figures{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:.25rem 1rem;color:var(--sirius-text-muted)}
.stock-item-figures b{color:var(--sirius-text)}
.stock-item-sub{flex-basis:100%;font-size:.85em}
.stock-panel-figures small{display:block;color:var(--sirius-text-muted);font-size:.8em}
.stock-item-out{border-left-color:var(--sirius-danger)}
.stock-item-to_order,.stock-item-to_produce,.stock-item-low{border-left-color:var(--sirius-warning)}
.stock-item-ok{border-left-color:var(--sirius-success)}
@media (max-width:1100px),(hover:none) and (pointer:coarse){
  /* iPhone : la hauteur suit la zone réellement visible (barre Safari) et les boutons suivent le contenu, ils ne flottent plus sur la courbe. */
  .stock-panel{width:100vw;border-left:0;bottom:auto;height:calc(100vh - var(--env-banner-height,0px));height:calc(100dvh - var(--env-banner-height,0px))}
  .stock-panel-actions{position:static;padding:.75rem 0 1.5rem}
}
/* PC : panneau large (la moitié de l'écran) posé à côté de la liste, qui reste visible et utilisable ; iPhone et iPad : pleine largeur (règle ci-dessus). */
@media (min-width:1101px) and (hover:hover){.stock-panel{width:50vw}body.has-stock-panel #content{margin-right:50vw}}

/* Liste « Contacts » en fiches (lot ERP 5.5) */
.contact-filter{display:grid;gap:.75rem;margin:.5rem 0 1rem}
.contact-filter-top{display:flex;flex-wrap:wrap;gap:.75rem;align-items:end}
.contact-search{flex:1 1 16rem}
.contact-search input{width:100%}
.contact-pills{display:flex;flex-wrap:wrap;gap:.5rem 1rem}
.contact-pill-group{display:inline-flex;flex-wrap:wrap;gap:.35rem}
.contact-pill{border:1px solid var(--sirius-border);background:var(--sirius-surface-raised);color:var(--sirius-text);border-radius:999px;padding:.3rem .75rem;cursor:pointer;min-height:44px}
.contact-pill b{color:var(--sirius-text-muted);font-weight:600}
.contact-pill.active{border-color:var(--sirius-gold-frame);box-shadow:inset 0 0 0 1px var(--sirius-gold-frame)}
.contact-list{display:grid;gap:.5rem;margin:.5rem 0}
@media (min-width:1100px){.contact-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
.contact-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:.5rem .85rem;align-items:center;padding:.75rem;border:1px solid var(--sirius-border);border-left-width:5px;border-left-color:var(--sirius-bronze);background:var(--sirius-surface-raised);color:var(--sirius-text);cursor:pointer;min-height:56px;border-radius:var(--sirius-radius-md)}
.contact-card:hover,.contact-card:focus-visible{background:var(--sirius-hover-surface)}
.contact-card.is-inactive{opacity:.65}
.contact-avatar{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--sirius-surface);border:1px solid var(--sirius-border);font-weight:800}
.contact-main{display:flex;flex-direction:column;gap:.2rem;min-width:0}
.contact-name{font-size:1.1rem;overflow-wrap:anywhere}
.contact-tags{display:flex;flex-wrap:wrap;gap:.3rem}
.contact-tag{border-radius:999px;padding:1px .55rem;font-size:.75rem;font-weight:700;border:1px solid var(--sirius-border);color:var(--sirius-text-muted)}
.contact-tag-client{background:var(--sirius-success-surface);color:var(--sirius-success-text);border-color:transparent}
.contact-tag-supplier{background:var(--sirius-warning-surface);color:var(--sirius-warning-text);border-color:transparent}
.contact-tag-partner{background:var(--sirius-info-surface);color:var(--sirius-info-text);border-color:transparent}
.contact-tag-inactive{background:var(--sirius-danger-surface);color:var(--sirius-danger-text);border-color:transparent}
.contact-locality{color:var(--sirius-text-muted)}
.contact-side{display:flex;flex-direction:column;align-items:flex-end;gap:.2rem;text-align:right}
.contact-hint{display:flex;flex-direction:column}
.contact-hint small{color:var(--sirius-text-muted)}
.contact-hint-danger strong{color:var(--sirius-danger-text)}
.contact-hint-warning strong{color:var(--sirius-warning-text)}
.contact-links{display:flex;gap:.4rem}
.contact-links a{display:inline-grid;place-items:center;width:44px;height:44px;border:1px solid var(--sirius-border);border-radius:50%;color:var(--sirius-text);text-decoration:none;font-size:1.1rem}
@media (max-width:700px){.contact-side{grid-column:2 / -1;align-items:flex-start;text-align:left;flex-direction:row;flex-wrap:wrap;gap:.25rem 1rem}}
/* Fiche contact (lot 5.7) : en-tête unique, menu « … », chiffres clés, personnes de contact */
.contact-sheet-top{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:.75rem 1rem}
.contact-sheet-title{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem;min-width:0}
.contact-sheet-title h3{margin:0;overflow-wrap:anywhere}
.contact-status{display:inline-block;padding:.1rem .6rem;border:1px solid var(--sirius-border);font-size:.85rem}
.contact-status-inactive{border-color:var(--sirius-danger);color:var(--sirius-danger-text)}
.contact-menu{position:relative;display:inline-block}
.contact-menu>summary{border-radius:var(--sirius-radius-sm);list-style:none;cursor:pointer;min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--sirius-border);background:var(--sirius-surface-raised);color:var(--sirius-text);font-size:1.25rem}
.contact-menu>summary::-webkit-details-marker{display:none}
.contact-menu-items{border-radius:var(--sirius-radius-md);position:absolute;right:0;z-index:5;display:grid;gap:.25rem;min-width:220px;margin-top:.25rem;padding:.5rem;border:1px solid var(--sirius-border);background:var(--sirius-surface-raised);box-shadow:0 6px 18px rgba(0,0,0,.25)}
.contact-menu-items button{min-height:44px;text-align:left}
.contact-figures{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.75rem;margin:1rem 0}
.contact-figure-danger strong{color:var(--sirius-danger-text)}
.contact-people-list{list-style:none;margin:.5rem 0;padding:0;display:grid;gap:.5rem}
.contact-people-list li{border-radius:var(--sirius-radius-md);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem .75rem;border:1px solid var(--sirius-border);border-left:4px solid var(--sirius-bronze)}
.contact-people-main{display:grid;gap:.15rem;min-width:0}
.contact-people-actions,.contact-people-legacy{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}
.contact-people-legacy{margin-top:.75rem}
.button-link{background:none;border:0;padding:0;min-height:44px;color:inherit;font:inherit;font-weight:700;text-decoration:underline;cursor:pointer;text-align:left}
/* Suivi client (lot CRM) : statuts, étiquettes, actions de la fiche, relances */
.contact-tag-prospect{background:var(--sirius-info-surface);color:var(--sirius-info-text);border-color:transparent}
.contact-tag-dormant{background:var(--sirius-warning-surface);color:var(--sirius-warning-text);border-color:transparent}
.contact-tag-lost{background:var(--sirius-danger-surface);color:var(--sirius-danger-text);border-color:transparent}
.contact-tag-label{font-weight:600}
.contact-crm-actions{display:flex;flex-wrap:wrap;gap:.5rem}
.crm-list{list-style:none;margin:.5rem 0;padding:0;display:grid;gap:.5rem}
.crm-list li{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem .75rem;border:1px solid var(--sirius-border);border-left:4px solid var(--sirius-bronze);border-radius:var(--sirius-radius-md)}
.crm-list li.crm-overdue{border-left-color:var(--sirius-danger)}
.price-check{color:var(--sirius-danger-text)}
.contact-active-filters{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin:.5rem 0;padding:.5rem .75rem;border:1px solid var(--sirius-gold-frame);border-radius:var(--sirius-radius-md);background:var(--sirius-surface-raised)}
.contact-active-filter{display:inline-flex;align-items:center;gap:.4rem}
/* Liste des contacts CRM (lot 2) : résumé, vues prêtes, colonnes Contact / Joindre / À savoir / Prochaine action */
.contact-page-head{display:grid;gap:.75rem;margin:0 0 .75rem}
.contact-top-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}
.contact-page-line{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem 1rem}
.contact-summary{margin:0;color:var(--sirius-text-muted)}
.contact-mode button.active{background:var(--sirius-hover-surface);box-shadow:inset 0 0 0 1px var(--sirius-gold-frame)}
.contact-views{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.75rem;margin:.5rem 0 1rem}
.contact-view{display:grid;gap:.15rem;text-align:left;padding:.75rem 1rem;min-height:88px;border:1px solid var(--sirius-border);border-radius:var(--sirius-radius-lg);background:var(--sirius-surface-raised);color:var(--sirius-text);cursor:pointer}
.contact-view strong{font-size:1.9rem;line-height:1}
.contact-view small{color:var(--sirius-text-muted)}
.contact-view.active{box-shadow:inset 0 0 0 2px var(--sirius-gold-frame)}
.contact-view-danger{border-color:var(--sirius-danger)}
.contact-view-info{border-color:var(--sirius-info-text)}
.contact-view-warning{border-color:var(--sirius-warning-text)}
.contact-view-prospect{border-color:var(--sirius-info-text)}
.contact-list-head{display:none}
@media (min-width:1000px){
 .contact-list{grid-template-columns:1fr !important}
 .contact-list-head,.contact-card{display:grid;grid-template-columns:44px minmax(190px,1.3fr) minmax(210px,1.2fr) minmax(190px,1.1fr) minmax(160px,.9fr);gap:.5rem .85rem;align-items:center}
 .contact-list-head{padding:.25rem .75rem;color:var(--sirius-text-muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.04em}
}
.contact-reach{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem}
.contact-call{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;min-height:44px;padding:.35rem .75rem;border-radius:var(--sirius-radius-md);background:#1f6b3c;color:#fff;font-weight:700;text-decoration:none;border:1px solid #2f8f55}
.contact-call:hover,.contact-call:focus-visible{background:#26804a}
.contact-call-icon{min-width:44px;padding:.35rem}
.contact-call-missing{background:var(--sirius-surface-raised);color:var(--sirius-muted,#8a8a8a);border:1px dashed var(--sirius-border);cursor:pointer}
.contact-mail{display:inline-flex;align-items:center;min-height:44px;color:inherit;overflow-wrap:anywhere}
.contact-copy,.contact-add{min-height:44px;min-width:44px;padding:.25rem .5rem;border:1px solid var(--sirius-border);border-radius:var(--sirius-radius-sm);background:var(--sirius-surface-raised);color:var(--sirius-text);cursor:pointer}
.contact-add{color:var(--sirius-text-muted);border-style:dashed}
.contact-know{display:flex;flex-direction:column;gap:.2rem}
.contact-know-danger{color:var(--sirius-danger-text);font-weight:700}
.contact-know-info{color:var(--sirius-info-text);font-weight:700}
.contact-know-success{color:var(--sirius-success-text);font-weight:700}
.contact-next{display:grid;gap:.1rem;text-align:left}
.contact-next small{color:var(--sirius-text-muted)}
.contact-next-danger{color:var(--sirius-danger-text)}
.contact-next-warning{color:var(--sirius-warning-text)}
.contact-next-info{color:var(--sirius-info-text)}
.contact-next-prospect{color:var(--sirius-info-text)}
.contact-none{color:var(--sirius-text-muted)}
/* Pipeline */
.pipeline-bar{display:flex;justify-content:flex-end;margin:.25rem 0 .5rem}
.pipeline{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;align-items:start}
.pipeline-col{border:1px solid var(--sirius-border);border-top-width:4px;border-radius:var(--sirius-radius-lg);padding:.75rem;background:var(--sirius-surface)}
.pipeline-col header{display:grid;grid-template-columns:1fr auto;gap:0 .5rem;margin-bottom:.5rem}
.pipeline-col header h4{margin:0}
.pipeline-col header small{grid-column:1 / -1;color:var(--sirius-text-muted)}
.pipeline-col-prospect{border-top-color:var(--sirius-info-text)}
.pipeline-col-tasted{border-top-color:var(--sirius-success-text)}
.pipeline-col-offered{border-top-color:var(--sirius-warning-text)}
.pipeline-col-client,.pipeline-col-lost{border-top-color:var(--sirius-bronze)}
.pipeline-cards{display:grid;gap:.5rem}
.pipeline-card{display:grid;gap:.35rem;padding:.6rem;border:1px solid var(--sirius-border);border-radius:var(--sirius-radius-md);background:var(--sirius-surface-raised);cursor:pointer}
.pipeline-card.is-overdue{border-color:var(--sirius-warning-text);box-shadow:inset 0 0 0 1px var(--sirius-warning-text)}
.pipeline-card-top{display:flex;justify-content:space-between;gap:.5rem}
.pipeline-card-top small{display:block;color:var(--sirius-text-muted)}
.pipeline-last{margin:0;font-size:.9rem}
.pipeline-next{margin:0;font-size:.9rem}
.pipeline-move select{width:100%;min-height:44px}
.pipeline-note{color:var(--sirius-text-muted);font-size:.85rem}
@media (max-width:1000px){.pipeline{grid-template-columns:1fr}}
/* Fiche en deux colonnes */
.contact-sheet-top{align-items:flex-start}
.contact-sheet-id{display:flex;align-items:center;gap:.75rem;min-width:0}
.contact-sheet-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}
.contact-meta{display:flex;flex-wrap:wrap;gap:.25rem 1rem;margin:.5rem 0;color:var(--sirius-text-muted)}
.contact-meta a{color:inherit}
.contact-pills-row{display:flex;flex-wrap:wrap;gap:.5rem;margin:.5rem 0 1rem}
.contact-badge{min-height:44px;padding:.35rem .9rem;border:1px solid var(--sirius-border);border-radius:999px;background:var(--sirius-surface-raised);color:var(--sirius-text);cursor:pointer;font-weight:600}
.contact-badge-danger{border-color:var(--sirius-danger);color:var(--sirius-danger-text)}
.contact-badge-tariff{border-color:var(--sirius-gold-frame);color:var(--sirius-gold)}
.contact-badge-info{border-color:var(--sirius-info-text);color:var(--sirius-info-text)}
.contact-badge-warning{border-color:var(--sirius-warning-text);color:var(--sirius-warning-text)}
.contact-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1rem;align-items:start}
@media (max-width:900px){.contact-columns{grid-template-columns:1fr}}
.contact-essential,.contact-feed{border:1px solid var(--sirius-border);border-radius:var(--sirius-radius-lg);padding:1rem;background:var(--sirius-surface)}
.contact-essential h5{margin:1rem 0 .5rem;text-transform:uppercase;letter-spacing:.04em;font-size:.8rem;color:var(--sirius-text-muted)}
.contact-savebar{position:sticky;bottom:0;z-index:4;display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin:1rem 0 0;padding:.75rem 1rem;border:1px solid var(--sirius-gold-frame);border-radius:var(--sirius-radius-md);background:var(--sirius-surface-raised);box-shadow:0 -10px 14px -10px rgba(0,0,0,.55)}
.contact-savebar[hidden]{display:none}
.contact-feed-filters{display:flex;flex-wrap:wrap;gap:.35rem;margin:.5rem 0}
.contact-feed-list{list-style:none;margin:0;padding:0;display:grid;gap:.25rem}
.feed-row{display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:.5rem;align-items:start;padding:.5rem 0;border-top:1px solid var(--sirius-border)}
.feed-icon{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--sirius-surface-raised);font-weight:800;font-size:.8rem}
.feed-main{display:grid;gap:.1rem;min-width:0;overflow-wrap:anywhere}
.feed-main small{color:var(--sirius-text-muted)}
.feed-row time{color:var(--sirius-text-muted);font-size:.85rem;white-space:nowrap}
.feed-tone-danger .feed-main strong{color:var(--sirius-danger-text)}
.feed-tone-todo .feed-main strong{color:var(--sirius-info-text)}
.feed-tone-done .feed-main strong,.feed-tone-muted .feed-main strong{color:var(--sirius-text-muted);text-decoration:line-through}
.feed-tone-tasting .feed-main strong{color:var(--sirius-success-text)}
.contact-people .contact-links a[href^="tel:"]{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;border-radius:var(--sirius-radius-md);background:#1f6b3c;color:#fff;text-decoration:none}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* Saisie du contact (lot ERP CRM 3) : une colonne, titre au-dessus de chaque bloc, au plus deux champs par ligne (un sur iPhone). */
.contact-entry{display:grid;gap:1.25rem;min-width:0}
.entry-block{display:grid;gap:.75rem;min-width:0;padding-bottom:1.25rem;border-bottom:1px solid var(--sirius-border)}
.contact-essential .entry-block>h5,.contact-essential .entry-block .section-action h5{margin:0;text-transform:uppercase;letter-spacing:.04em;font-size:.8rem;color:var(--sirius-text-muted)}
.entry-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;min-width:0}
@media (max-width:640px){.entry-row{grid-template-columns:minmax(0,1fr)}}
.entry-address .entry-row:nth-of-type(1){grid-template-columns:minmax(0,1fr) 6.5rem}
.entry-address .entry-row:nth-of-type(2){grid-template-columns:7rem minmax(0,1fr)}
.entry-field{display:grid;gap:.25rem;align-content:start;min-width:0}
.entry-field>span,.entry-label{font-size:.85rem;color:var(--sirius-text-muted)}
.entry-field input,.entry-field select,.entry-field textarea{width:100%;min-height:44px;box-sizing:border-box;max-width:100%}
.entry-wide{grid-column:1/-1}
.entry-segment{display:flex;flex-wrap:wrap;gap:.5rem}
.entry-segment button,.entry-days button{min-height:44px;min-width:44px;padding:.35rem .9rem;border:1px solid var(--sirius-border);border-radius:var(--sirius-radius-md);background:var(--sirius-surface-raised);color:var(--sirius-text);cursor:pointer}
.entry-segment button[aria-pressed=true],.entry-days button[aria-pressed=true]{border-color:var(--sirius-gold-frame);box-shadow:inset 0 0 0 1px var(--sirius-gold-frame);font-weight:700}
.entry-days{display:flex;flex-wrap:wrap;gap:.4rem}
.entry-choice{display:grid;gap:.35rem}
.entry-suggestions{list-style:none;margin:0;padding:0;border:1px solid var(--sirius-border);border-radius:var(--sirius-radius-md);background:var(--sirius-surface-raised);overflow:hidden}
.entry-suggestions[hidden]{display:none}
.entry-suggestions button{display:block;width:100%;min-height:44px;padding:.5rem .75rem;text-align:left;border:0;border-bottom:1px solid var(--sirius-border);background:transparent;color:var(--sirius-text);cursor:pointer}
.entry-status{color:var(--sirius-text-muted)}
.entry-inline{margin:0;font-size:.9rem}
.contact-entry .button-link{min-height:44px;padding:0 .35rem}
.entry-tags ul{display:flex;flex-wrap:wrap;gap:.4rem;list-style:none;margin:.25rem 0;padding:0}
.entry-chip{display:inline-flex;align-items:center;gap:.15rem;min-height:44px;padding:0 .15rem 0 .85rem;border:1px solid var(--sirius-border);border-radius:999px;background:var(--sirius-surface-raised)}
.entry-chip button{min-width:44px;min-height:44px;border:0;background:transparent;color:var(--sirius-text-muted);font-size:1.1rem;cursor:pointer}
.entry-tag-add{display:flex;gap:.5rem;align-items:center}
.entry-tag-add input{flex:1;min-width:0;min-height:44px}
.entry-details>summary{display:flex;align-items:center;min-height:44px;cursor:pointer;font-weight:600}
.entry-details[open]>summary{margin-bottom:.5rem}
.entry-details{display:block}
.entry-details>*+*{margin-top:.75rem}
.entry-actions{display:flex;justify-content:flex-end;gap:.5rem}
.entry-roles{border:1px solid var(--sirius-border);border-radius:var(--sirius-radius-md);padding:.75rem}
.contact-entry .check-label{min-height:44px;display:flex;align-items:center;gap:.5rem}
.contact-people-menu{margin-left:.25rem}
.contact-people-menu .contact-menu-items{right:0}

.contact-entry [data-all-addresses]>summary{display:flex;align-items:center;min-height:44px;cursor:pointer}

/* Liste des contacts sur iPhone et iPad portrait (lot ERP CRM 4) : une carte par contact, nom, statut, ☎ vert, ✉, « À savoir » et « Prochaine action » empilés. */
@media (max-width:999px){
 .contact-card{grid-template-columns:44px minmax(0,1fr);align-items:start;gap:.5rem .75rem}
 .contact-card>.contact-main{grid-column:2}
 .contact-card>.contact-reach,.contact-card>.contact-know,.contact-card>.contact-next{grid-column:1 / -1;min-width:0}
 .contact-card>.contact-know::before,.contact-card>.contact-next::before{display:block;color:var(--sirius-text-muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.04em}
 .contact-card>.contact-know::before{content:"À savoir"}
 .contact-card>.contact-next::before{content:"Prochaine action"}
 .contact-card>.is-empty{display:none}
 .contact-card .contact-mail{min-width:0;max-width:100%}
 .contact-list{grid-template-columns:minmax(0,1fr)}
}

/* Saisie du contact : choix actif nettement marqué (fond doré plein, texte sombre) ; mention de la source des adresses (lot ERP CRM 4). */
.contact-entry .entry-segment button[aria-pressed=true],.contact-entry .entry-days button[aria-pressed=true],.contact-entry .entry-segment button[aria-pressed=true]:hover,.contact-entry .entry-days button[aria-pressed=true]:hover{background:var(--sirius-bronze);color:var(--sirius-on-primary);border-color:var(--sirius-bronze);box-shadow:none;font-weight:800}
.contact-entry .entry-segment button[aria-pressed=true]::before,.contact-entry .entry-days button[aria-pressed=true]::before{content:"✓ ";font-weight:800}
.entry-source{color:var(--sirius-text-muted);font-size:.75rem}
.entry-localities{display:grid;gap:.35rem}

/* Carte des contacts et tournée (lot ERP CRM 4) */
.contact-map{display:grid;gap:.75rem;min-width:0}
.map-filters{display:flex;flex-wrap:wrap;gap:.5rem}
.map-chip{display:inline-flex;align-items:center;gap:.4rem;min-height:44px;padding:.35rem .85rem;border:1px solid var(--sirius-border);border-radius:999px;background:var(--sirius-surface-raised);color:var(--sirius-text);cursor:pointer}
.map-chip[aria-pressed=true]{border-color:var(--sirius-gold-frame);box-shadow:inset 0 0 0 1px var(--sirius-gold-frame)}
.map-chip:not([aria-pressed=true]){opacity:.6}
.map-dot{display:inline-block;width:12px;height:12px;border-radius:50%}
.map-dot-kegs{background:transparent;border:3px solid var(--sirius-bronze)}
.map-status{margin:0;color:var(--sirius-text-muted);min-height:1.25rem}
.map-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,24rem);gap:1rem;align-items:start}
@media (max-width:900px){.map-layout{grid-template-columns:minmax(0,1fr)}}
.map-canvas{height:min(68vh,640px);min-height:320px;border:1px solid var(--sirius-border);border-radius:var(--sirius-radius-lg);overflow:hidden;background:var(--sirius-surface)}
.map-tour{display:grid;gap:.75rem;padding:1rem;border:1px solid var(--sirius-border);border-radius:var(--sirius-radius-lg);background:var(--sirius-surface)}
.map-tour h4{margin:0;color:var(--sirius-bronze)}
.map-tour-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}
.map-tour-fields label{display:grid;gap:.25rem;font-size:.85rem;color:var(--sirius-text-muted)}
.map-tour-fields input{min-height:44px;width:100%;box-sizing:border-box}
.map-hint{margin:0;color:var(--sirius-text-muted);font-size:.85rem}
.map-stops{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}
.map-stop{display:grid;grid-template-columns:32px minmax(0,1fr);align-items:center;gap:.5rem;padding:.5rem;border:1px solid var(--sirius-border);border-radius:var(--sirius-radius-md);background:var(--sirius-surface-raised)}
.map-stop-number{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--sirius-bronze);color:var(--sirius-on-primary);font-weight:800}
.map-stop-main{display:grid;gap:.25rem;min-width:0}
.map-stop-main input{min-height:44px;width:100%;box-sizing:border-box}
.map-stop-name{text-align:left;overflow-wrap:anywhere}
.map-stop-tools{grid-column:2;display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}
.map-stop-moves{display:flex;gap:.25rem;margin-left:auto}
.map-stop-moves button{min-width:44px;min-height:44px;padding:0}
.map-tour-actions{display:grid;gap:.5rem}
.map-tour-actions .map-itinerary{display:inline-flex;align-items:center;justify-content:center;min-height:44px;text-decoration:none;border:1px solid var(--sirius-border);border-radius:var(--sirius-radius-sm);padding:.35rem .75rem}
.map-itinerary[aria-disabled=true]{opacity:.5;pointer-events:none}
.map-saved>summary{min-height:44px;display:flex;align-items:center;cursor:pointer}
.map-saved-list{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}
.map-saved-list li{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem}
.map-saved-list button{min-height:44px}
.map-unplaced>summary{min-height:44px;display:flex;align-items:center;cursor:pointer}
.map-unplaced ul{margin:.25rem 0 0;padding-left:1.25rem}
.map-credit{margin:0;color:var(--sirius-text-muted);font-size:.8rem}
.map-popup{min-width:200px;color:#111}
.map-popup a{color:#0a58ca}
.map-popup-actions{display:grid;gap:.4rem;margin-top:.5rem}
.map-popup-actions button{min-height:44px}
.map-stop-icon .map-stop-number{width:30px;height:30px;border:2px solid #111;box-sizing:border-box}

/* Correction douce de facture : tableau des prix, historique des versions */
[data-price-correction] [data-price-body]{overflow-x:auto}
.price-correction-table{width:100%;border-collapse:collapse}
.price-correction-table th,.price-correction-table td{padding:.4rem .5rem;text-align:left;border-bottom:1px solid var(--sirius-border)}
.price-correction-table input{width:7rem;min-height:44px;text-align:right;box-sizing:border-box}
.invoice-versions{list-style:none;margin:0;padding:0}
.invoice-versions li{padding:.35rem 0;border-bottom:1px solid var(--sirius-border)}

/* Tableau de bord : la période à gauche, « Exporter en Excel » à droite sur la même ligne, sur les trois pages. */
.dashboard-period-row{display:flex;justify-content:space-between;align-items:flex-end;gap:.75rem 1rem;flex-wrap:wrap}
.dashboard-period-row>.dashboard-period-pick,.dashboard-period-row>.gratuities-controls{flex:1 1 auto;margin:0}
.dashboard-period-row>a{flex:0 0 auto}

/* Graphiques du tableau de bord (Ventes, Événements, Gratuités) : barres en SVG et en HTML/CSS, couleurs par canal ou par type. */
:root{--chart-direct:#a3d6b0;--chart-preorder:#cdc2e8;--chart-professional:#a8c4f0;--chart-events:#efb35a;--chart-tasting:#d98b8b;--chart-accent:#efb35a;--chart-accent-soft:#6f5b3f;--chart-grid:#2a2b26;--chart-axis:#a7a69e}
.chart-card{margin-top:1rem}
.chart-head{display:flex;justify-content:space-between;align-items:baseline;gap:.25rem 1rem;flex-wrap:wrap}
.chart-head h3{margin:0}
.chart-foot{display:flex;justify-content:space-between;align-items:center;gap:.5rem 1rem;flex-wrap:wrap;margin-top:.5rem}
.chart-body{margin-top:.5rem}
.chart-svg{display:block;width:100%;height:auto;max-height:22rem}
.chart-grid{stroke:var(--chart-grid);stroke-width:1}
.chart-base{stroke:var(--chart-axis);opacity:.5}
.chart-axis{fill:var(--chart-axis);font-size:13px}
.chart-value{fill:var(--chart-axis);font-size:13px;font-weight:600}
.chart-value.is-best{fill:var(--chart-accent)}
.chart-hit{fill:transparent}
.chart-bar{cursor:pointer;outline:none}
.chart-bar:hover .chart-layer{filter:brightness(1.12)}
.chart-bar:focus-visible .chart-hit{stroke:var(--chart-accent);stroke-width:2;fill:rgba(255,255,255,.04)}
.chart-sel{display:none;fill:none;stroke:var(--chart-accent);stroke-width:2}.chart-bar.is-selected .chart-sel{display:block}.chart-star{fill:var(--chart-accent);font-size:16px}
.chart-svg.is-single .chart-bar.is-best .chart-layer{fill:var(--chart-accent)!important}
.chart-legend{display:flex;flex-wrap:wrap;gap:.35rem 1rem;list-style:none;margin:0;padding:0}
.chart-swatch{display:inline-block;width:.7rem;height:.7rem;border-radius:var(--sirius-radius-sm);margin-right:.4rem;vertical-align:baseline}
.chart-best-label{color:var(--chart-accent)}
.chart-detail{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.75rem;padding:.6rem .75rem;border:1px solid var(--sirius-border);border-radius:var(--sirius-radius-sm);background:var(--sirius-surface-soft)}
.chart-detail p{margin:0 .5rem 0 0}
.chart-hbars{display:grid;gap:.6rem;list-style:none;margin:.75rem 0 0;padding:0}
.chart-hrow{display:grid;grid-template-columns:minmax(6rem,12rem) 1fr auto;gap:.5rem .75rem;align-items:center}
.chart-htrack{height:.9rem;border-radius:999px;background:var(--sirius-bg);overflow:hidden}
.chart-hfill{display:block;height:100%;border-radius:999px}
.chart-hvalue{text-align:right;white-space:nowrap}
.chart-share{display:flex;height:1.6rem;margin:.75rem 0;border-radius:var(--sirius-radius-sm);overflow:hidden;background:var(--sirius-bg)}
.chart-share-part{display:block;min-width:2px}
.chart-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:.6rem;list-style:none;margin:.9rem 0 0;padding:0}
.chart-tile{display:grid;gap:.15rem;padding:.7rem .8rem;border:1px solid var(--sirius-border);border-radius:var(--sirius-radius-sm);background:var(--sirius-surface-soft)}
.chart-tile-name{display:flex;align-items:center}
.dashboard-period-pick{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.5rem}
.dashboard-period-pick .time-filters{margin:0}
.period-arrow{min-width:44px;min-height:44px;padding:0 .6rem;font-size:1.4rem;line-height:1}
.events-board{display:grid;grid-template-columns:minmax(14rem,22rem) minmax(0,1fr);gap:1rem;align-items:start;margin-top:1rem}
.events-list{display:grid;gap:.5rem;align-content:start}
.events-list h3{margin:0}
.events-item{display:grid;gap:.15rem;width:100%;text-align:left;padding:.6rem .75rem;border:1px solid var(--sirius-border);border-radius:var(--sirius-radius-sm);background:var(--sirius-bg)}
.events-item.active{border-color:var(--sirius-border-bronze);background:var(--sirius-surface-raised)}
.events-item-main,.events-item-sub{display:flex;justify-content:space-between;gap:.5rem}
.events-item-sub{color:var(--sirius-text-muted);font-size:.85em}
.events-detail{display:grid;gap:1rem;min-width:0}
.events-detail-head{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem;flex-wrap:wrap}
.events-detail-head h3{margin:0}
.events-detail-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.tasting-card{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;border-color:var(--sirius-success)}
.tasting-card h3{margin:0 0 .25rem}
.tasting-card p{margin:0}
.link-button{padding:0;border:0;background:none;color:var(--chart-accent);text-decoration:underline;cursor:pointer}
@media (max-width:900px){.events-board,.events-detail-pair{grid-template-columns:minmax(0,1fr)}.chart-hrow{grid-template-columns:minmax(0,1fr) auto}.chart-hrow .chart-htrack{grid-column:1/-1;order:3}.chart-axis,.chart-value{font-size:15px}}

.dashboard-period-pick .time-filters{border:0;background:none;box-shadow:none;padding:0}
[data-dashboard-page] .cards-compact{grid-template-columns:repeat(auto-fit,minmax(9.5rem,1fr))}
.events-board .events-item{background:var(--sirius-bg)!important;color:var(--sirius-text)!important;border:1px solid var(--sirius-border)!important;text-align:left}
.events-board .events-item.active{background:var(--sirius-surface-raised)!important;border-color:var(--sirius-border-bronze)!important}
.events-board .events-item:hover{border-color:var(--sirius-border-bronze)!important}
.events-detail-head .link-button{background:none!important;color:var(--chart-accent)!important;border:0!important;padding:0!important}
.chart-foot .button-secondary[aria-pressed=true]{border-color:var(--chart-accent);color:var(--chart-accent)}
.chart-svg.is-compact{max-height:none}.chart-svg.is-compact .chart-axis{font-size:14px}.chart-svg.is-compact .chart-value{font-size:13px}.chart-svg.is-compact .chart-star{font-size:16px}
.events-detail>*,.events-detail-pair>*,.chart-card{min-width:0}
.payment-vigilance-cart{margin:.6rem 0}.payment-vigilance-cart .vigilance-box{border:1px solid var(--sirius-warning-text);border-radius:var(--sirius-radius-sm);padding:.6rem .8rem}.payment-vigilance-cart h4{margin:0 0 .25rem}.payment-vigilance-cart p{margin:.15rem 0}
.sellers-card .is-low th,.sellers-card .is-low td{color:var(--chart-axis)}.sellers-card .is-low .pill{color:var(--chart-accent)}
.beer-description{max-width:64ch;margin:.4rem 0;overflow:hidden;overflow-wrap:anywhere;white-space:pre-line;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3}
/* Catalogue : trois onglets sur une ligne, sous-onglets en pastilles, « + » à droite. */
.catalog-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.catalog-bar .catalog-tabs{margin:0;flex-wrap:nowrap}
.catalog-plus{display:flex;align-items:center;gap:8px;margin-left:auto}.catalog-add-menu{position:relative}.catalog-add-menu>summary{list-style:none;cursor:pointer;min-height:44px;padding:10px 16px;border-radius:var(--sirius-radius-sm);background:var(--amber);color:var(--sirius-on-accent,#1a1208);font-weight:700}.catalog-add-menu>summary::-webkit-details-marker{display:none}
.catalog-add-menu>div{position:absolute;z-index:20;right:0;top:calc(100% + 6px);display:grid;min-width:240px;padding:8px;border:1px solid var(--line);border-radius:var(--sirius-radius-md);background:var(--surface,var(--sirius-surface))}.catalog-add-menu>div button{text-align:left}
.catalog-subtabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.pill-tab{min-height:44px;padding:6px 14px;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--ink);font-weight:700}.pill-tab.active,.pill-tab[aria-pressed=true]{border-color:var(--amber);background:var(--sirius-selected,rgba(224,164,88,.14));color:var(--amber)}
.catalog-alert{border-color:var(--amber);color:var(--amber)}.catalog-alert .count{margin-left:6px;opacity:.8;font-weight:400}
.catalog-search{display:grid;gap:4px;width:min(360px,100%)}
[data-catalog-inpage] [data-reference-add]{display:none}
/* Catalogue › Bières : liste à gauche, fiche à droite. */
.beer-split{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(320px,1fr);gap:16px;align-items:start}.beer-table tbody tr{cursor:pointer}.beer-table tbody tr.is-selected{background:var(--sirius-selected,rgba(224,164,88,.12))}.beer-table .event-beer-logo,.beer-table .event-photo-placeholder{width:40px;height:40px;object-fit:cover}
.beer-sheet{padding:16px;border:1px solid var(--line);border-radius:var(--sirius-radius-lg);background:var(--surface,var(--sirius-surface))}.beer-sheet .sheet-head,.beer-sheet .sheet-foot{display:flex;align-items:center;justify-content:space-between;gap:12px}.beer-sheet .eyebrow{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--amber)}
.beer-sheet-top{display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;align-items:start}.link-list{margin:0;padding:0;list-style:none;display:grid;gap:4px}
.color-field{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.color-field .field-label{flex-basis:100%;font-size:14px;color:var(--muted,inherit)}.color-swatch{display:inline-block;width:44px;height:44px;border:1px solid var(--line);border-radius:var(--sirius-radius-sm);overflow:hidden}.color-swatch input{width:60px;height:60px;margin:-8px;padding:0;border:0;background:none;cursor:pointer}
@media (max-width:900px){.beer-split{grid-template-columns:1fr}.catalog-bar .catalog-tabs{flex-wrap:wrap}}
/* Description courte sous le nom, sur les cartes de vente et de caisse d'événement. */
.sale-card-description{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;overflow-wrap:anywhere;color:var(--muted);font-size:12px;font-weight:400;line-height:1.3}
/* Carte produit (lot 14 B) : nom + pastille + description, une ligne par format, trois boutons au même endroit. */
.catalog-card-body > header .catalog-meta{margin:0;text-align:right;color:var(--muted);font-size:13px;white-space:nowrap}.catalog-card-body h3 .chart-swatch{margin-right:.5rem}
.catalog-description{margin:.2rem 0 .6rem;color:var(--ink);overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2}
ul.variant-list{list-style:none;margin:12px 0 0;padding:0}ul.variant-list>li.variant-row{display:block;padding:0;border-top:1px solid var(--line)}
.format-line{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:14px;align-items:center;width:100%;min-height:44px;padding:8px 0;border:0;border-radius:0;background:transparent;color:inherit;text-align:left;font:inherit}button.format-line{cursor:pointer}button.format-line:hover .format-name strong{color:var(--amber)}
.format-name{display:grid;min-width:0}.format-name small{color:var(--muted);font-size:12px}.format-stock{color:var(--muted);text-align:right}.format-stock.is-low{color:var(--amber)}.format-stock.is-out{color:var(--sirius-danger,#e5736d)}.format-price{min-width:96px;text-align:right;font-weight:700}.format-price.is-missing{color:var(--amber);font-weight:400}
.catalog-actions{align-items:center}.catalog-more{position:relative;margin-left:auto}.catalog-more>summary{list-style:none;display:grid;place-items:center;min-width:44px;min-height:44px;border:1px solid var(--line);border-radius:var(--sirius-radius-sm);cursor:pointer;font-weight:700}.catalog-more>summary::-webkit-details-marker{display:none}
.catalog-more>div{position:absolute;z-index:20;right:0;bottom:calc(100% + 6px);display:grid;min-width:280px;padding:8px;border:1px solid var(--line);border-radius:var(--sirius-radius-md);background:var(--surface,var(--sirius-surface))}.catalog-more>div button{text-align:left}
@media (max-width:700px){.format-line{grid-template-columns:minmax(0,1fr) auto}.format-line .format-price{grid-column:2}.catalog-card-body>header{flex-direction:column}.catalog-card-body>header .catalog-meta{text-align:left}.catalog-more>div{right:auto;left:0}}
/* Fiches « Modifier le produit » (formulaire à gauche, prix et format à droite) et « Modifier le format ». */
#action-dialog:has(.product-sheet){width:min(1180px,96vw);max-width:96vw}
.product-sheet{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,1fr);gap:16px;align-items:start}.product-sheet-side{display:grid;gap:12px;align-content:start}
.product-sheet h4{margin:0 0 6px;color:var(--amber-2,var(--amber))}.product-sheet section{display:grid;gap:8px}.product-sheet .grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.product-sheet .grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.sheet-head,.sheet-foot{display:flex;align-items:center;justify-content:space-between;gap:12px}.sheet-head .eyebrow{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--amber)}.sheet-head h3{margin:0}.sheet-foot{padding-top:12px;border-top:1px solid var(--line)}.sheet-actions{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}
.chip-checks{display:flex;flex-wrap:wrap;gap:8px}.chip-checks .chip{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:8px 14px;border:1px solid var(--line);border-radius:var(--sirius-radius-sm)}
.format-tabs{flex-wrap:wrap}.computed-name{margin:0;padding:10px 12px;border:1px solid var(--line);border-radius:var(--sirius-radius-sm);display:flex;flex-wrap:wrap;gap:8px;align-items:baseline}.computed-name small{margin-left:auto;color:var(--muted)}
.price-current th,.price-current td{padding:6px 8px}
@media (max-width:900px){.product-sheet{grid-template-columns:1fr}.product-sheet .grid-3,.product-sheet .grid-2{grid-template-columns:1fr}}
/* Catalogue « ERP » (lot 15) : liste compacte à gauche, fiche à droite, en-tête compact, onglets, boutons « + » dorés. */
.catalog-plus>button,.catalog-plus .catalog-add-menu>summary{min-height:44px;padding:10px 16px;border:0;border-radius:var(--sirius-radius-sm);background:var(--amber);color:var(--sirius-on-accent,#1a1208);font-weight:700;cursor:pointer}
.erp-split{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(320px,1fr);gap:16px;align-items:start}.erp-split>*{min-width:0}
.erp-table{width:100%;border-collapse:collapse}.erp-table th{padding:10px 12px;color:var(--muted);font-size:12px;font-weight:700;letter-spacing:.06em;text-align:left;text-transform:uppercase}.erp-table td,.erp-table tbody th{padding:10px 12px;border-top:1px solid var(--line);vertical-align:middle;text-align:left}
.erp-table tbody tr{cursor:pointer}.erp-table tbody th{background:transparent;color:inherit;font-size:inherit;letter-spacing:normal;text-transform:none}.erp-table tbody tr.is-selected{background:var(--sirius-selected,rgba(224,164,88,.12))}.erp-table tbody tr.is-selected>:first-child{box-shadow:inset 3px 0 0 var(--amber)}.erp-sheet [data-required-mark]{display:none}.erp-table tbody tr.is-inactive{opacity:.62}.erp-table td.num,.erp-table th.num{text-align:right}.erp-table small{display:block;color:var(--muted);font-weight:400}
.erp-state{font-weight:700}.erp-state.is-on{color:var(--sirius-success,#7fd49a)}.erp-state.is-off{color:var(--muted)}
.erp-kind{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:700;background:var(--sirius-selected,rgba(224,164,88,.14));color:var(--amber)}
.erp-sheet{min-width:0;border:1px solid var(--line);border-radius:var(--sirius-radius-lg);background:var(--surface,var(--sirius-surface));overflow:hidden}
.erp-head{display:flex;align-items:flex-start;gap:14px;padding:14px 16px}.erp-head-main{flex:1;min-width:0}.erp-head h3{margin:0;font-size:1.35rem;overflow-wrap:anywhere}.erp-head .erp-info,.erp-head .erp-stats{margin:3px 0 0;color:var(--muted);font-size:13px}.erp-head-actions{display:flex;gap:8px;flex-shrink:0}
.erp-head-photo{width:56px;height:56px;border-radius:var(--sirius-radius-sm);object-fit:cover;background:var(--sirius-field)}
.erp-tabs{display:flex;flex-wrap:wrap;gap:4px;padding:0 12px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.erp-tabs button,.erp-tabs button:hover{min-height:44px;padding:8px 12px;border:0;border-bottom:2px solid transparent;border-radius:0;background:transparent;box-shadow:none;color:var(--muted);font-weight:700}.erp-tabs button.active,.erp-tabs button.active:hover{border-bottom-color:var(--amber);color:var(--amber);background:transparent}
.erp-pane{padding:16px;display:grid;gap:14px}.erp-pane[hidden]{display:none}.erp-grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.erp-grid2 label{min-width:0}
.erp-note{margin:0;color:var(--muted);font-size:13px}.erp-toolbar{display:flex;justify-content:flex-end;gap:8px}.erp-toolbar button,.erp-pane>button.erp-add{min-height:44px;padding:8px 14px;border:0;border-radius:var(--sirius-radius-sm);background:var(--amber);color:var(--sirius-on-accent,#1a1208);font-weight:700}
.erp-danger-quiet{background:none;border:0;color:var(--muted);text-decoration:underline;justify-self:start;min-height:44px}
@media (max-width:900px){.erp-split{grid-template-columns:1fr}.erp-grid2{grid-template-columns:1fr}.erp-head{flex-wrap:wrap}}
@media (min-width:1100px){.catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.erp-thumb{display:block;width:44px;height:44px;border-radius:var(--sirius-radius-sm);object-fit:contain;background:var(--sirius-field);padding:3px;box-sizing:border-box}.erp-thumb-empty{display:grid;place-items:center;color:var(--muted);font-size:11px}.erp-thumb-cell{width:60px}
.erp-head-photo.erp-thumb{width:56px;height:56px;flex-shrink:0}
.erp-table .erp-desc{margin-top:2px;color:var(--muted);font-size:13px;font-weight:400;text-transform:none;letter-spacing:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:34ch}
.erp-pane .beer-photo{display:grid;gap:6px}.erp-pane textarea{min-height:90px;width:100%}.erp-table .is-out{color:var(--sirius-danger,#e5736d)}
/* Pression et événements : une seule grille (lot 15 C). */
.press-grid-form{display:grid;gap:12px}.press-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px;border:1px solid var(--line);border-radius:var(--sirius-radius-md)}.press-bar input[type=search]{flex:1 1 200px;min-width:0}.press-bar select{flex:0 1 220px}
.press-scroll{max-width:100%;max-height:max(16rem,calc(100dvh - 24rem));overflow:auto;border:1px solid var(--line);border-radius:var(--sirius-radius-lg)}.press-table{min-width:760px;border-collapse:separate;border-spacing:0}.press-table thead th{white-space:nowrap;position:sticky;top:0;z-index:3;background:var(--sirius-surface-raised,var(--surface,#1c1b18))}.press-table thead th.press-r2{top:var(--press-h1,40px);z-index:2}.press-table tbody th[scope=row]{position:sticky;left:0;z-index:1;background:var(--surface,var(--sirius-surface))}
.press-group{text-align:left;border-bottom:2px solid var(--line)}.press-bar-group{color:var(--amber);border-bottom-color:var(--amber)}.press-event-group{color:var(--sirius-info,#8ab4f8);border-bottom-color:var(--sirius-info,#8ab4f8)}
.press-table tr.press-beer th{padding-top:14px;text-transform:none;letter-spacing:normal;font-size:1rem;color:var(--ink);background:transparent}.press-table tr.press-line{cursor:default}.press-table tr.press-line th{padding-left:26px;text-transform:none;letter-spacing:normal;font-size:inherit;color:inherit;background:transparent}
.press-cell{position:relative}.press-cell input{width:100%;min-width:84px;text-align:left}.press-cell input.is-changed{border-color:var(--amber);box-shadow:0 0 0 1px var(--amber)}.press-free{display:block;margin-top:2px;color:var(--sirius-success,#7fd49a);font-size:12px;font-weight:700}.press-free[hidden]{display:none}
.press-alert{margin-left:8px;color:var(--amber);font-size:12px;font-weight:700}.press-history-col{display:none}.press-grid-form.show-history .press-history-col{display:table-cell}
.press-actions{flex-wrap:wrap}
.press-table td,.press-table tr.press-line th{padding-top:5px;padding-bottom:5px}.press-cell input{min-height:40px}
.erp-kinds{border:0;margin:0;padding:0;display:grid;gap:6px}.erp-kinds legend{padding:0;margin-bottom:6px;font-size:inherit;font-weight:400;color:inherit}.erp-kind-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.erp-kind-card{position:relative;display:grid;gap:2px;padding:10px;border:1px solid var(--line);border-radius:var(--sirius-radius-md);cursor:pointer}.erp-kind-card input{appearance:none;-webkit-appearance:none;position:absolute;width:1px;height:1px;margin:0;padding:0;border:0;background:none;opacity:0;overflow:hidden;clip:rect(0 0 0 0);pointer-events:none}.erp-kind-card input::before,.erp-kind-card input::after{content:none!important;display:none!important}.erp-kind-card:has(input:focus-visible){outline:2px solid var(--amber);outline-offset:2px}.erp-kind-card small{color:var(--muted)}.erp-kind-card.is-selected{border-color:var(--amber);background:var(--sirius-selected,rgba(224,164,88,.14))}.erp-kind-card.is-selected strong{color:var(--amber)}.erp-kinds[disabled] .erp-kind-card,.erp-kind-card:has(input:disabled){opacity:.6;cursor:not-allowed}
@media (max-width:700px){.erp-kind-cards{grid-template-columns:1fr}}
/* Fiche produit « ERP » (lot 15 D) : une colonne qui tient en largeur, sans défilement de côté. */
#action-dialog:has(.erp-product-sheet){width:min(920px,96vw);max-width:96vw}
.erp-product-sheet{max-width:100%}.erp-product-sheet .erp-pane>*{min-width:0}.erp-grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.erp-grid3 label{min-width:0}
.erp-pane .chip-checks{display:flex;flex-wrap:wrap;gap:8px}.erp-pane .field-label{display:block;margin-bottom:6px;color:var(--muted);font-size:14px}
.erp-format-detail{display:grid;gap:12px;padding:14px;border:1px solid var(--line);border-radius:var(--sirius-radius-md);background:var(--sirius-field,transparent)}.erp-format-detail[hidden]{display:none}
.erp-price-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.erp-format-more{display:grid;gap:10px;padding:12px;border:1px solid var(--line);border-radius:var(--sirius-radius-md)}.erp-format-more legend{padding:0 6px;color:var(--amber);font-weight:700}
.erp-toolbar{align-items:center;justify-content:space-between}.erp-toolbar .erp-note{flex:1}
.erp-formats td,.erp-formats th{overflow-wrap:anywhere}.erp-product-sheet .table-wrap{overflow-x:visible}
@media (max-width:700px){.erp-grid3{grid-template-columns:1fr}.erp-formats .col-ean{display:none}.erp-product-sheet .erp-head{padding:12px}.erp-product-sheet .erp-head-actions{width:100%}.erp-product-sheet .erp-head-actions button{flex:1}}
/* Les tableaux « ERP » restent de vrais tableaux compacts sur téléphone (pas de cartes empilées), sans défilement de côté. */
@media (max-width:760px){
.table-wrap .erp-table{display:table;width:100%;table-layout:auto}.table-wrap .erp-table thead{display:table-header-group;position:static;width:auto;height:auto;overflow:visible;clip:auto;clip-path:none}.table-wrap .erp-table tbody{display:table-row-group}
.table-wrap .erp-table tr{display:table-row;width:auto;margin:0;padding:0;border:0;background:none}.table-wrap .erp-table th,.table-wrap .erp-table td{display:table-cell;width:auto;min-width:0;padding:8px 6px;text-align:left;overflow-wrap:break-word;white-space:normal}.erp-kind,.erp-state{white-space:nowrap}.table-wrap .erp-table td.num,.table-wrap .erp-table th.num{text-align:right}
.table-wrap .erp-table td::before{content:none;display:none}.table-wrap .erp-table td:empty{display:table-cell}.table-wrap .erp-table td button{width:auto}.table-wrap .erp-table select{max-width:100%}
.table-wrap .erp-table thead th{overflow-wrap:normal;letter-spacing:0;font-size:11px;padding:8px 4px}.table-wrap .erp-formats .col-ean{display:none}
.press-table{min-width:0}.press-table tr.press-beer th{padding-left:6px}
}
#action-dialog:has(.erp-product-sheet) .dialog-heading{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* Lot 16 : les tableaux « ERP » tiennent dans leur fiche (jamais de défilement de côté ni de colonne coupée). */
.table-wrap .erp-table{min-width:0;width:100%}.erp-sheet .table-wrap{overflow-x:visible}.erp-sheet .erp-table th,.erp-sheet .erp-table td{padding:8px 8px}.erp-table td.num,.erp-table th.num{white-space:nowrap}

.erp-kind-public{background:rgba(95,180,120,.18);color:var(--sirius-success,#7fd49a)}.erp-kind-professional{background:rgba(150,120,220,.2);color:#b9a2f0}.erp-kind-internal{background:rgba(224,164,88,.2);color:var(--amber)}
/* Lot 16 : la photo est un bouton (carte et fiche produit) ; plus de menu « ⋯ ». */
.catalog-image-button,.erp-photo-button{display:block;padding:0;border:0;border-radius:0;background:none;box-shadow:none;cursor:pointer;color:inherit}.erp-photo-button{border-radius:var(--sirius-radius-sm);flex-shrink:0}.catalog-image-button:hover,.erp-photo-button:hover{filter:brightness(1.12)}
/* Lot 17 : écran photo simplifié (photo actuelle en grand, sur fond sombre). */
.photo-screen{display:grid;gap:16px}.photo-current{display:grid;place-items:center;min-height:240px;padding:12px;border:1px solid var(--line);border-radius:var(--sirius-radius-lg);background:var(--sirius-field,#14130f)}.photo-current img{display:block;max-width:100%;max-height:min(55vh,460px);object-fit:contain;background:none;padding:0}.photo-current img[hidden]{display:none}
.photo-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.photo-more>summary{cursor:pointer;color:var(--muted)}.photo-more .forms-stack{margin-top:12px}.photo-others{list-style:none;margin:0;padding:0;display:grid;gap:8px}.photo-others li{display:flex;align-items:center;gap:10px}.photo-others img{width:48px;height:48px;object-fit:contain;background:var(--sirius-field);border-radius:var(--sirius-radius-sm)}
.photo-current .catalog-placeholder{width:100%;min-height:200px;background:none}
.sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
