/* Sirius V2 — central components. Palette and scales live in design-tokens.css.
   Existing component names are aliases, not screen-specific visual variants. */
html { background:var(--sirius-bg-deep); }
body { background:var(--sirius-page-gradient); color:var(--sirius-text); font-family:var(--sirius-font-body); }
.ambient { background:var(--sirius-page-gradient); }
.page-shell { width:min(1600px,calc(100% - 32px)); padding:16px 0 48px; }
.app { gap:var(--sirius-space-4); }
.content, .app, .panel, .action-grid > *, fieldset { min-width:0; }
.sr-only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
a { color:var(--sirius-bronze-highlight); }
h1,h2,h3,h4 { color:var(--sirius-text); }
h3 { font-size:20px; }
h4 { font-size:16px; }
.muted,small,.section-description,.form-copy { color:var(--sirius-text-muted); }
.eyebrow { color:var(--sirius-bronze-light); font-size:11px; letter-spacing:.12em; }

.event-step-actions { display:flex; flex-wrap:wrap; gap:var(--sirius-space-2); margin-top:var(--sirius-space-4); }

/* One compact header; existing mobile menu behaviour is retained. */
.topbar { display:flex; min-height:64px; padding:8px 0; gap:12px; background:none; border-bottom:1px solid var(--sirius-border); }
.sirius-brand,.sirius-login-brand { display:flex; align-items:center; gap:8px; }
.topbar #brand-home { flex:0 0 auto; gap:6px; }
.topbar #brand-home .sirius-brand__constellation { width:30px; height:42px; max-height:42px; object-fit:contain; }
.topbar #brand-home .sirius-brand__wordmark { width:122px; height:auto; max-height:44px; object-fit:contain; }
.sirius-brand__constellation { filter:sepia(1) saturate(1.5) hue-rotate(346deg) brightness(.82) contrast(1.05); }
.sirius-login-brand { margin-bottom:24px; }
.sirius-login-brand .sirius-brand__constellation { width:58px; height:72px; object-fit:contain; }
.sirius-login-brand .sirius-brand__wordmark { width:min(290px,calc(100% - 72px)); }
.module-nav { flex:1; display:flex; flex-wrap:nowrap; align-items:center; justify-content:space-between; gap:8px; border:0; padding:0; background:none; box-shadow:none; min-width:0; }
.nav-primary,.nav-groups { flex-wrap:nowrap; gap:5px; }
.nav-groups { margin-left:auto; }
.module-nav button,.nav-group summary { min-height:40px; font-size:12px; padding:8px; border-radius:var(--sirius-radius-sm); }
.module-nav .ui-icon { width:16px; height:16px; flex-basis:16px; margin-right:5px; }
.user-block { flex:none; }
.account-avatar { width:40px; height:40px; min-height:40px; background:var(--sirius-secondary-gradient); }
.ui-dropdown,.nav-group > div,.user-menu-actions,.client-search [role=listbox] { border:1px solid var(--sirius-border-bronze); background:var(--sirius-surface-raised); color:var(--sirius-text); border-radius:var(--sirius-radius-sm); box-shadow:var(--sirius-shadow-soft); }
.nav-group > div { display:grid; gap:6px; }
.nav-group:not([open]) > div { display:none; }
.user-menu-actions button { text-align:left; }
.ui-menu-item { width:100%; }

/* Hero uses the validated, unmodified WebP master. Text always remains HTML. */
.hero { position:relative; isolation:isolate; min-height:140px; overflow:hidden; padding:18px 26px; margin:0; align-items:center; background:#000 url('branding/sirius-hero-final-valide.webp') center 42%/cover no-repeat; }
.hero::after { content:none; }
.hero > div { width:100%; }
.hero h2,.sirius-page-title { margin:0; font:700 clamp(34px,3vw,48px)/1.08 var(--sirius-font-display); background:var(--sirius-title-gradient); background-clip:text; -webkit-background-clip:text; color:transparent; }
.hero h2 { font-size:clamp(28px,2.4vw,38px); filter:drop-shadow(0 1px 3px #000); }
.hero .section-description { font-size:16px; max-width:720px; margin-top:8px; color:var(--sirius-text); text-shadow:0 1px 3px #000,0 0 8px #000; }
.hero .eyebrow { margin:0 0 8px; }

/* Controls: secondary default, explicit primary, destructive last. */
button,.ui-button,a.button-secondary,.nav-group summary { min-height:var(--sirius-control-height); border:1px solid var(--sirius-border); border-radius:var(--sirius-radius-sm); padding:9px 13px; color:var(--sirius-text); background:var(--sirius-secondary-gradient); box-shadow:var(--sirius-shadow-control); font-weight:650; text-shadow:none; transition:border-color .15s,background .15s; }
a.button-secondary { display:inline-flex; align-items:center; text-decoration:none; }
label.button-secondary { display:inline-flex; align-items:center; min-height:var(--sirius-control-height); border:1px solid var(--sirius-border); border-radius:var(--sirius-radius-sm); padding:9px 13px; color:var(--sirius-text); background:var(--sirius-secondary-gradient); box-shadow:var(--sirius-shadow-control); font-weight:650; cursor:pointer; transition:border-color .15s,background-color .15s,box-shadow .15s; }
label.button-secondary:hover,label.button-secondary:focus-within { border-color:var(--sirius-bronze-dark); background-image:none; background:var(--sirius-hover-surface); box-shadow:var(--sirius-shadow-control),0 0 0 1px rgba(183,126,66,.18); }
button:hover,.ui-button:hover,.nav-group summary:hover { border-color:var(--sirius-border-bronze); filter:none; transform:none; }
button[type=submit]:not(.button-secondary),button.ui-button-primary,button.primary,button.button-primary,.sirius-primary,
.module-nav button.active,.nav-group summary.ui-button-active,.segmented button.active,
[role=tab][aria-selected=true],.ui-button-active,.event-till button[aria-pressed=true],.twint-dialog [data-received],
.contact-role-toggles input:checked+span { background:var(--sirius-primary-gradient); border-color:var(--sirius-bronze); color:var(--sirius-on-primary); box-shadow:var(--sirius-shadow-control); }
button.ui-button-primary:hover,button[type=submit]:not(.button-secondary):hover,button.primary:hover,button.button-primary:hover { background:var(--sirius-primary-hover); }
button.button-secondary,button.ui-button-secondary,.ui-button-nav,button[data-order-open],button[data-client-open] { background:var(--sirius-secondary-gradient); border-color:var(--sirius-border); color:var(--sirius-text); }
.module-nav button.active,[data-contact-detail] [role=tab][aria-selected=true] { background:var(--sirius-primary-gradient); color:var(--sirius-on-primary); border-color:var(--sirius-bronze); }
button.button-danger,button.ui-button-danger,button.cart-remove { background:var(--sirius-danger-gradient); color:var(--sirius-on-danger); border-color:var(--sirius-danger); }
button:disabled,button[aria-disabled=true],.ui-button:disabled { background:var(--sirius-surface-raised); color:var(--sirius-text-muted); border-color:var(--sirius-border); opacity:.65; box-shadow:none; cursor:not-allowed; transform:none; }
:where(button,a,input,select,textarea,summary,[tabindex]):focus-visible { outline:2px solid var(--sirius-focus); outline-offset:3px; }
.contact-role-toggles input:focus-visible+span { outline:2px solid var(--sirius-focus); outline-offset:3px; }
.ui-icon { display:inline-block; width:18px; height:18px; flex:0 0 18px; vertical-align:middle; pointer-events:none; stroke-width:1.75; }
button > .ui-icon,summary > .ui-icon,legend > .ui-icon { margin-inline-end:7px; }
.segmented,.event-tabs,[role=tablist] { gap:8px; }
.segmented button,[role=tab] { font-size:13px; }
.event-tabs { background:var(--sirius-surface); }

/* Shared panel, form section and card surfaces. */
.panel,.sirius-panel,.login-card { border:1px solid var(--sirius-border); border-radius:var(--sirius-radius-lg); background:var(--sirius-panel-gradient); box-shadow:var(--sirius-shadow-soft); padding:18px; }
.sirius-form-panel,fieldset,.time-filters,.price-reference,.price-list-grid label,.category-edit-row,
.metric,.sale-card,.catalog-card,.keg-card,.batch-card,.today-block,.checkout-cart,.address-list article,
.team-card,.mailing-card,.user-card,.stock-gauge,.pack-composer,.price-matrix-card,.price-period-card,.event-beer-card,
.event-editor [data-keg-preview],.event-beer-balance,.contact-role-toggles span { border-color:var(--sirius-border); border-radius:var(--sirius-radius-md); background:var(--sirius-secondary-gradient); box-shadow:none; }
.sirius-form-panel,fieldset { padding:18px; }
legend { color:var(--sirius-bronze-light); font-size:16px; padding:0 8px; }
.forms-stack { gap:20px; }
.sirius-form-panel .cards { margin-top:8px; }
.sirius-form-panel > label + .action-grid { margin-top:16px; }
.sirius-form-panel .action-grid { grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr)); }
.sirius-form-panel .repackage-line { grid-template-columns:minmax(0,1fr) minmax(130px,.7fr) auto; }
.sirius-form-panel .repackage-line small { grid-column:1/-1; }
.forms-stack > button { justify-self:start; }
[role=tablist] { display:flex; flex-wrap:wrap; margin-bottom:16px; }
.cards > .detail-card { margin:0; padding:16px; border:1px solid var(--sirius-border); border-radius:var(--sirius-radius-md); background:var(--sirius-secondary-gradient); }
.cards > .detail-card button { margin-top:auto; }
.cards + details { margin-block:12px 20px; }
.detail-card > button { margin:4px 4px 4px 0; }
.time-filters { grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),260px)); }
.time-filters > button { width:100%; }
.cards { grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr)); gap:12px; }
.metric { padding:16px; text-align:left; min-width:0; }
.metric > span:first-child { display:flex; align-items:center; gap:7px; font-size:13px; color:var(--sirius-text-muted); }
.metric > span > .ui-icon { color:var(--sirius-bronze-light); }
.metric strong,.cards-compact .metric strong { display:block; font:700 24px/1.2 var(--sirius-font-display); color:var(--sirius-text); margin-top:8px; overflow-wrap:anywhere; }
.metric small { display:block; margin-top:8px; }
.batch-card { border-top:1px solid var(--sirius-border); padding:18px; }
.batch-card > header h3 { font:700 23px/1.2 var(--sirius-font-display); }
.batch-card dl div { grid-template-columns:minmax(160px,.5fr) minmax(0,1fr); }
.batch-next { background:var(--sirius-surface); }
.today-block { border-left-width:3px; }
.event-beer-balance { border-left:3px solid var(--sirius-border-bronze); }
.event-beer-balance h4,.event-editor [data-keg-preview] h4 { color:var(--sirius-bronze-light); background:none; }
.product-placeholder,.catalog-placeholder { color:var(--sirius-bronze-light); background:var(--sirius-secondary-gradient); }

/* Form values stay 16px on touch devices to avoid iOS focus zoom. */
label { color:var(--sirius-text); font-size:13px; font-weight:600; }
input,select,textarea { border:1px solid var(--sirius-border); border-radius:var(--sirius-radius-sm); background:var(--sirius-field); color:var(--sirius-text); padding:10px 12px; min-height:44px; max-width:100%; }
/* Keep native select interaction while sharing its closed appearance across engines. */
select:not([multiple]):not([size]) { appearance:none; -webkit-appearance:none; padding-right:36px; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23a7a69e' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 12px center; background-size:16px; }
@media (forced-colors:active) { select:not([multiple]):not([size]) { appearance:auto; -webkit-appearance:auto; background-image:none; } }
select option,select optgroup { background:var(--sirius-field); color:var(--sirius-text); }
select option:checked { background:var(--sirius-bronze); color:var(--sirius-on-primary); }
input::placeholder,textarea::placeholder { color:var(--sirius-text-muted); }
input:hover,select:hover,textarea:hover { border-color:var(--sirius-border-bronze); }
input[type=checkbox],input[type=radio] { accent-color:var(--sirius-bronze); }
input:disabled,select:disabled,textarea:disabled { opacity:.65; }
.client-search [role=option] { color:var(--sirius-text); background:transparent; box-shadow:none; }
.client-search [role=option]:is(:hover,:focus) { background:var(--sirius-surface); outline:2px solid var(--sirius-focus); outline-offset:-2px; }

/* Dense tables use the same model in all modules. Touch size takes precedence. */
.table-wrap,.table-scroll { max-width:100%; overflow-x:auto; overscroll-behavior-inline:contain; }
table { font-size:12px; }
th,td { padding:7px 10px; border-bottom:1px solid var(--sirius-border); vertical-align:middle; }
th { font-size:10px; letter-spacing:.08em; color:var(--sirius-text-muted); background:var(--sirius-bg); }
tbody tr:hover { background:var(--sirius-surface-soft); }
td button,td .ui-button { min-height:32px; font-size:12px; padding:5px 9px; box-shadow:none; }
td .ui-icon { width:15px; height:15px; }
.subrow { min-width:0; margin:0; }
.subrow span { font-size:12px; }
.pill,.ui-badge,.profile-badge,.event-status,.channel-list span { display:inline-flex; align-items:center; gap:5px; padding:2px 7px; border:1px solid var(--sirius-border); border-radius:999px; background:var(--sirius-surface-raised); color:var(--sirius-text); font-size:11px; line-height:1.5; font-weight:600; }
.pill.ux-success,.status-success,.tone-success .pill,.event-status-open { background:var(--sirius-success-surface); color:var(--sirius-success-text); border-color:var(--sirius-success); }
.pill.ux-info,.status-info,.tone-work .pill,.event-status-closed { background:var(--sirius-info-surface); color:var(--sirius-info-text); }
.pill.ux-warn,.status-warning,.tone-warning .pill,.event-status-preparation { background:var(--sirius-warning-surface); color:var(--sirius-warning-text); border-color:var(--sirius-border-bronze); }
.pill.ux-danger,.status-danger,.tone-danger .pill,.event-status-cancelled { background:var(--sirius-danger-surface); color:var(--sirius-danger-text); border-color:var(--sirius-danger); }
.notice { color:var(--sirius-success-text); background:var(--sirius-success-surface); border-color:var(--sirius-success); }
.notice.bad,.event-stock-block { color:var(--sirius-danger-text); background:var(--sirius-danger-surface); border-color:var(--sirius-danger); }
.error,[data-validation-error],[data-required-mark] { color:var(--sirius-danger-text); }
.event-stock-warning { color:var(--sirius-warning-text); background:var(--sirius-warning-surface); border-color:var(--sirius-border-bronze); }
.stock-gauge progress { accent-color:var(--sirius-success); }
.stock-half progress { accent-color:var(--sirius-bronze); }
.stock-low progress,.stock-empty progress { accent-color:var(--sirius-danger); }

/* Shared modal chrome, including contact workspace and mobile cart. */
.action-dialog,.contact-workspace-modal,.confirmation-dialog,.mobile-cart-sheet { color:var(--sirius-text); background:var(--sirius-panel-gradient); border:1px solid var(--sirius-border); border-radius:var(--sirius-radius-lg); box-shadow:var(--sirius-shadow-modal); }
.action-dialog { width:min(1040px,calc(100% - 32px)); }
.dialog-heading { padding:22px 28px; border-bottom:1px solid var(--sirius-border); background:var(--sirius-surface); }
.dialog-heading > div { min-width:0; }
.dialog-heading > button { flex-shrink:0; }
.dialog-heading h2 { overflow-wrap:anywhere; font-size:clamp(26px,2.7vw,38px); }
.dialog-heading .eyebrow { margin:0 0 6px; }
.dialog-body { padding:24px 28px; }
dialog::backdrop { background:var(--sirius-backdrop); backdrop-filter:blur(3px); }
.login-card { margin-top:10vh; padding:32px; }
.event-sale-card [data-event-add] { min-height:48px; margin:4px; }
.event-till [data-event-payment] { display:flex; flex-wrap:wrap; gap:10px; margin:16px 0; }
.event-till [data-pay] { min-height:52px; flex:1; }
.event-till [data-pay][aria-pressed=true] { outline:2px solid var(--sirius-focus); outline-offset:2px; }
.event-closure fieldset { margin:12px 0; display:grid; gap:12px; }
.event-closure [data-confirm-status]:not(:empty) { color:var(--sirius-success-text); }
.event-till [data-clear],.event-closure [data-exceptions] { margin-top:16px; }

@media (min-width:1200px) and (max-width:1450px) {
  .topbar { gap:8px; }
  .topbar #brand-home .sirius-brand__wordmark { width:100px; }
  .topbar #brand-home .sirius-brand__constellation { width:25px; }
  .module-nav button,.nav-group summary { font-size:11px; padding-inline:6px; }
  .module-nav .ui-icon { width:15px; flex-basis:15px; margin-right:4px; }
}
@media (min-width:561px) and (max-width:1199px) {
  .topbar { display:grid; grid-template-columns:1fr auto; gap:10px; }
  .module-nav { grid-row:2; grid-column:1/-1; flex-wrap:wrap; }
  .nav-primary,.nav-groups { flex-wrap:wrap; }
  .topbar .user-menu { grid-row:1; grid-column:2; }
}
@media (max-width:820px) {
  .cards { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .hero { min-height:120px; padding:16px 18px; }
}
/* Tablet/mobile layouts retain touch targets even with a paired mouse. */
@media (pointer:coarse), (max-width:1199px) {
  button,.ui-button,.module-nav button,.nav-group summary,td button,td .ui-button,.account-avatar,[role=tab] { min-height:44px; }
  button,summary { min-width:44px; }
  input,select,textarea { font-size:16px; }
}
@media (max-width:560px) and (orientation:portrait) {
  .page-shell { width:calc(100% - 20px); padding-top:max(8px,env(safe-area-inset-top)); }
  .app { gap:12px; }
  .topbar { display:grid; grid-template-columns:minmax(0,1fr) auto auto; max-height:none; gap:6px; padding:0 0 10px; }
  .topbar #brand-home { min-width:0; max-width:100%; }
  .topbar #brand-home .sirius-brand__constellation { width:28px; height:40px; max-width:none; flex:none; }
  .topbar #brand-home .sirius-brand__wordmark { width:106px; max-width:calc(100% - 34px); }
  .topbar .user-menu { grid-row:1; grid-column:3; }
  #mobile-menu-toggle { grid-row:1; grid-column:2; }
  .module-nav { grid-column:1/-1; grid-row:2; display:block; margin-top:4px; }
  .mobile-shortcuts { gap:6px; }
  .mobile-shortcuts button { font-size:13px; }
  .hero { min-height:112px; padding:12px 10px; background-position:center; }
  .hero h2 { font-size:28px; }
  .hero .section-description { font-size:14px; }
  .panel { padding:12px; border-radius:var(--sirius-radius-md); }
  .cards { grid-template-columns:minmax(0,1fr); }
  .time-filters { grid-template-columns:minmax(0,1fr); }
  .batch-card dl div { grid-template-columns:minmax(0,1fr); gap:2px; }
  .table-wrap { overflow:visible; }
  .table-wrap tr { border-color:var(--sirius-border); background:var(--sirius-secondary-gradient); padding:8px; margin-bottom:10px; }
  .table-wrap td { border-bottom:0; padding:5px 4px; font-size:13px; }
  .table-wrap td::before { font-size:11px; color:var(--sirius-text-muted); font-weight:600; }
  .dialog-heading,.dialog-body { padding:16px; }
  .dialog-heading > div { min-width:0; }
.dialog-heading > button { flex-shrink:0; }
.dialog-heading h2 { overflow-wrap:anywhere; font-size:27px; }
  .sirius-form-panel,fieldset { padding:14px; }
  .sirius-form-panel .repackage-line { grid-template-columns:minmax(0,1fr); }
  .action-dialog,.action-dialog:has(.event-editor),.action-dialog:has(.price-matrix-cards),.action-dialog:has(.price-grid) { width:100%; max-width:100%; margin:0; border-radius:0; max-height:100dvh; }
  .contact-workspace-modal { padding:16px; width:calc(100% - 16px); max-width:100%; }
  .mobile-cart-sheet { border-radius:var(--sirius-radius-lg) var(--sirius-radius-lg) 0 0; }
  .login-card { padding:24px; margin-top:4vh; }
  td button { min-height:44px; }
}
@media (prefers-reduced-motion:reduce) { button,.ui-button { transition:none; } }

/* Account actions: visible mouse, keyboard and touch feedback. */
.user-menu-actions > button { transition:background .15s,border-color .15s,box-shadow .15s; }
.user-menu-actions > button:is(:hover,:focus-visible) { background:var(--sirius-surface-raised); border-color:var(--sirius-bronze); box-shadow:inset 3px 0 var(--sirius-bronze); }
.user-menu-actions > button:active { background:var(--sirius-primary-gradient); color:var(--sirius-on-primary); }
.user-menu-actions > #logout { color:#dfb8a6; background:linear-gradient(135deg,#38231f,#291c19); border-color:#704638; }
.user-menu-actions > #logout:is(:hover,:focus-visible) { background:linear-gradient(135deg,#513029,#3b251f); border-color:#a56d54; box-shadow:inset 3px 0 #a56d54; }
.user-menu-actions > #logout:active { background:#624035; color:#fff1e9; }

/* Shared compact editors and readable basket quantities. */
.editor-compact { max-width: 900px; }
.editor-compact input:not([type=checkbox]):not([type=radio]), .editor-compact select { max-width: 520px; }
.editor-compact fieldset { min-width: 0; margin: 0 0 16px; }
.editor-compact textarea { min-width: 0; width: 100%; }
.editor-compact iframe { color-scheme: light; width: 100%; min-height: 420px; border: 1px solid var(--line); background: white; }
.editor-compact .action-buttons { justify-content: flex-start; }
.recipient-selection { max-height: 340px; overflow: auto; }
.cart-line { padding-block: 18px; margin-block: 8px; border-bottom: 2px solid var(--line); }
.cart-controls { display: grid; gap: 12px; }
.cart-controls .cart-remove { margin-top: 10px; justify-self: start; }
.cart-controls > div > span { display: block; margin-bottom: 6px; font-size: 13px; }
.reference-list { display: grid; gap: 12px; }
.reference-list article { padding: 14px; border: 1px solid var(--line); border-radius: var(--sirius-radius-md); }
.reference-list h4 { margin: 0 0 6px; }
.reference-list small { color: var(--muted); }
.reference-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 12px; }
.template-variables { display: flex; flex-wrap: wrap; gap: 6px; }
@media (min-width: 821px) { [data-pressure-jump] { width: fit-content; justify-self: start; } }

.quantity-stepper input { width: 64px; min-width: 0; text-align: center; }
.cart-line:has(.basket-quantity) { flex-wrap: wrap; }
.cart-line:has(.basket-quantity) > .cart-description { flex-basis: 100%; }
.cart-controls:has(.basket-quantity) { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; width: 100%; margin-left: 0; }
.basket-quantity { min-width: 0; }
.basket-quantity > span { display: block; margin-bottom: 4px; }
.basket-quantity .quantity-stepper { width: fit-content; gap: 2px; padding: 2px; }
.basket-quantity-summary { grid-column: 1 / -1; }
.basket-stock-impact { display: block; margin-top: 4px; color: var(--muted); }

/* Checkout catalogue: one grid width for the pressure panel and product cards. */
.checkout-product-filters.segmented { display: flex; flex-wrap: nowrap; overflow-x: auto; max-width: 100%; gap: 6px; margin: 0 0 12px; padding-bottom: 4px; }
.checkout-product-filters button { flex: 0 0 auto; white-space: nowrap; min-height: 44px; }
.checkout-catalog .pressure-toggle { margin: 0 0 12px; min-height: 44px; }
.checkout-pressure { margin: 0 0 12px; min-width: 0; }
.pressure-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.pressure-heading h3 { margin: 0; }
.checkout-pressure label, .checkout-pressure select { width: 100%; min-width: 0; }
.pressure-offers { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; margin-top: 12px; }
.pressure-offers .detail-card { display: flex; flex-direction: column; gap: 8px; min-width: 0; margin: 0; padding: 12px; overflow-wrap: anywhere; }
.pressure-offers p { margin: 0; }
.pressure-offers [data-grole-fill] { margin-top: auto; }
.checkout-pressure button { min-height: 44px; white-space: normal; }
.checkout-pressure .pressure-offers button { margin: 0; width: 100%; }
.checkout-catalog #sale-products { grid-template-columns: repeat(3,minmax(0,1fr)); }
@media (max-width: 1023px), (orientation: portrait) and (max-width: 1180px) {
    .checkout-catalog #sale-products, .pressure-offers { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .checkout-controls { grid-template-columns: 1fr; }
    .checkout-catalog .sale-card-footer { flex-wrap: wrap; }
    .checkout-catalog .sale-card-copy { padding: 10px; overflow-wrap: anywhere; }
    .checkout-catalog .sale-card-footer { padding: 0 10px 10px; }
    .checkout-catalog .sale-card-footer button { min-width: 44px; min-height: 44px; }
    .checkout-catalog .textile-sizes { min-width: 0; }
}
@media (max-width: 560px) {
    .checkout-catalog .sale-card { grid-template-columns: minmax(0,1fr); grid-template-rows: 100px 1fr auto; }
    .checkout-catalog .sale-card > img, .checkout-catalog .sale-card > .product-placeholder { grid-row: auto; width: 100%; height: 100px; min-height: 0; }
    .checkout-catalog .sale-card-copy strong { font-size: 15px; }
    .checkout-catalog .sale-card-footer { min-width: 0; gap: 8px; }
    .checkout-catalog .sale-card-footer > b { width: 100%; font-size: 13px; }
    .checkout-catalog .quantity-stepper { gap: 0; padding: 0; max-width: 100%; }
    .checkout-catalog .quantity-stepper button { padding-inline: 0; }
    .checkout-catalog .quantity-stepper b { min-width: 24px; padding-inline: 0; }
}
@media (max-width: 380px) { .pressure-offers { grid-template-columns: 1fr; } }
.cart-controls:has(.basket-quantity) > .cart-remove { grid-column: 1 / -1; justify-self: start; }
.editor-compact .action-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
.internal-settings-grid { max-width: 640px; display: grid; gap: 12px; margin-bottom: 16px; }
.internal-settings-grid [data-communication-commercial] { display: contents; }
.internal-settings-grid .detail-card { padding: 10px 0; margin: 0; }
.internal-settings-grid h4 { margin: 0 0 6px; }
.internal-settings-grid p { font-size: 13px; margin: 4px 0; }
.internal-settings-grid form { gap: 8px; }
.internal-settings-grid form > button { justify-self: start; }
.reference-list { margin-top: 14px; }
[data-mail-dashboard] .empty { padding: 12px; text-align: left; }
@media (max-width: 600px) { .editor-compact .action-grid { grid-template-columns: minmax(0,1fr); } }

.editor-compact label:has(> [data-required-mark]) { display: block; }
.editor-compact label:has(> [data-required-mark]) > :is(input,select,textarea) { display: block; width: 100%; margin-top: 7px; }

/* Product PNGs stay transparent; the media surface belongs to the shared UI. */
.sale-card > img,
.catalog-image,
.existing-images img {
    background: var(--sirius-product-media);
}
.catalog-image img {
    background: transparent;
    object-fit: contain;
    object-position: center;
}
.sale-card > img,
.existing-images img {
    object-fit: contain;
    object-position: center;
}

/* Fiche commande guidée : quatre axes, montants toujours visibles, une seule carte « Prochaine étape ». */
.order-flow-strip { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); margin-bottom: 8px; }
.order-flow-strip .flow-axis small { display: block; margin-top: 4px; font-size: 12px; opacity: .8; }
.order-flow-strip [data-metric="billing-condition"] { border-style: dashed; }
.order-flow-amounts { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-bottom: 12px; }
.order-flow-amounts .flow-amount.is-due strong { color: var(--amber-2, var(--ink)); }
.next-step-card { margin: 4px 0 12px; padding: 16px; border: 2px solid var(--amber); border-radius: var(--sirius-radius-md); background: var(--surface-2); display: grid; gap: 10px; }
.next-step-card h4 { margin: 0; font-size: 20px; }
.next-step-card .eyebrow { margin: 0; }
.next-step-card .next-step-hint, .next-step-card .next-step-then { margin: 0; opacity: .85; }
.next-step-card .next-step-body > form, .next-step-card .next-step-body > button { margin: 0; }
.next-step-card .next-step-companions { display: flex; flex-wrap: wrap; gap: 8px; }
.next-step-card[data-restricted] { border-style: dashed; }
.other-actions, .sensitive-actions { margin: 8px 0; border: 1px solid var(--line); border-radius: var(--sirius-radius-sm); padding: 8px 12px; }
.other-actions > summary, .sensitive-actions > summary { cursor: pointer; font-weight: 700; }
.other-actions-body { display: grid; gap: 8px; margin-top: 8px; }
.other-actions-body > details { border-top: 1px solid var(--line); padding-top: 8px; }
.sensitive-actions { border-color: var(--red); }
.sensitive-actions > summary { color: var(--red); }
.sensitive-body { display: grid; gap: 10px; margin-top: 8px; }
@media (max-width: 700px) {
    .order-flow-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .order-flow-strip .flow-axis strong { font-size: 16px; }
    .order-flow-amounts { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
    .order-flow-amounts .metric { padding: 10px; }
    .order-flow-amounts .metric strong { font-size: 15px; }
    .next-step-card { padding: 12px; }
    .next-step-card .next-step-body button, .next-step-card .next-step-companions button { width: 100%; min-height: 44px; }
}

/* Panier : condition de facturation du client professionnel (pastille discrète, absente pour « Standard »). */
.condition-chip { margin: 6px 0 10px; padding: 8px 12px; border: 1px dashed var(--amber); border-radius: var(--sirius-radius-sm); background: var(--surface-2); display: grid; gap: 2px; }
.condition-chip strong { font-size: 14px; }
.condition-chip span { font-size: 13px; opacity: .85; }

/* ==========================================================================
   Design System final — rayons, header compact, états d'interaction.
   Échelle unique : sm 10 (contrôles) · md 14 (cartes, menus) · lg 18 (grands
   conteneurs) · pill 999 (badges). Exceptions : 50 % (avatar), 0 (plein écran).
   ========================================================================== */
:root { --sirius-radius-pill: 999px; --sirius-control-compact: 34px; --sirius-topbar-height: 52px;
  --sirius-hover-surface: linear-gradient(145deg,#20221e,#151713);
  --sirius-pressed-surface: linear-gradient(145deg,#0f110e,#171915);
  --sirius-shadow-pressed: inset 0 1px 3px rgba(0,0,0,.45); }

/* Grands conteneurs : 18 px. */
.topbar,.hero,.panel,.sirius-panel,.login-card,.action-dialog,.contact-workspace-modal,.confirmation-dialog,.twint-dialog,.checkout-cart,.sirius-form-panel.sirius-form-large { border-radius:var(--sirius-radius-lg); }
/* Cartes, sous-panneaux, menus, tableaux : 14 px. */
.metric,.sale-card,.catalog-card,.keg-card,.batch-card,.today-block,.address-list article,.team-card,.mailing-card,.user-card,.stock-gauge,.pack-composer,
.price-matrix-card,.price-period-card,.event-beer-card,.event-beer-balance,.event-payment-confirmation,.order-line,.procurement-need,.detail-card,.condition-chip,
.existing-images article,.recipient-list,.time-filters,.time-breakdown article,.audit-detail pre,.reference-list article,.next-step-card,.other-actions,.sensitive-actions,
.sirius-form-panel,fieldset,.price-reference,.category-edit-row,.checkout-pressure,.event-stock-warning,.event-editor [data-keg-preview],.empty,
.event-price-change,.event-stock-block,.notice,.editor-compact iframe,.mobile-menu-panel:not([hidden]),
.ui-dropdown,.nav-group > div,.user-menu-actions,.client-search [role=listbox],.table-wrap,.table-scroll { border-radius:var(--sirius-radius-md); }
/* Contrôles : 10 px. */
button,.ui-button,a.button-secondary,input,select,textarea,.nav-group summary,.module-nav button,.segmented button,[role=tab],.quantity-stepper,.contact-role-toggles span { border-radius:var(--sirius-radius-sm); }
.account-avatar { border-radius:50%; }
/* Pills : réservées aux badges, statuts, compteurs. */
.pill,.ui-badge,.profile-badge,.event-status,.channel-list span,.today-block > header strong { border-radius:var(--sirius-radius-pill); }
.quantity-stepper input,.quantity-stepper button { border-radius:var(--sirius-radius-sm); }

/* Hero : image inchangée, coins découpés proprement, jamais de menu coupé (aucun dropdown dans le hero). */
.hero { border:1px solid var(--sirius-border); background-clip:padding-box; }
/* Tableaux : conteneur arrondi, lignes internes droites, fond sans débord dans les coins. */
.table-wrap,.table-scroll { border:1px solid var(--sirius-border); background:var(--sirius-surface); overflow-x:auto; overflow-y:hidden; }
.table-wrap > table,.table-scroll > table { border-collapse:collapse; width:100%; }
.table-wrap tbody tr:last-child td,.table-scroll tbody tr:last-child td { border-bottom:0; }
.empty { border:1px dashed var(--sirius-border); background:var(--sirius-surface-soft); padding:22px; }
tbody tr:hover { background:var(--sirius-surface-soft); }

/* Boutons : grammaire unique default / hover / pressed / focus / selected / disabled. Aucun changement de dimension. */
button,.ui-button,a.button-secondary,.nav-group summary,.user-menu-actions > button { transition:border-color .15s,background-color .15s,box-shadow .15s,color .15s; }
button:not(:disabled):not([aria-disabled=true]):not([type=submit]):not(.primary):not(.button-primary):not(.ui-button-primary):not(.button-danger):not(.ui-button-danger):not(.cart-remove):not(.active):not(.ui-button-active):not([aria-selected=true]):not([aria-pressed=true]):hover,button.button-secondary:not(:disabled):not(.active):hover,.ui-button:not(:disabled):not([aria-disabled=true]):not([type=submit]):not(.primary):not(.button-primary):not(.ui-button-primary):not(.button-danger):not(.ui-button-danger):not(.cart-remove):not(.active):not(.ui-button-active):not([aria-selected=true]):not([aria-pressed=true]):hover,a.button-secondary:hover,.nav-group summary:hover { border-color:var(--sirius-bronze-dark); background-image:none; background:var(--sirius-hover-surface); box-shadow:var(--sirius-shadow-control),0 0 0 1px rgba(183,126,66,.18); }
button:not(:disabled):not([aria-disabled=true]):not([type=submit]):not(.primary):not(.button-primary):not(.ui-button-primary):not(.button-danger):not(.ui-button-danger):not(.cart-remove):not(.active):not(.ui-button-active):not([aria-selected=true]):not([aria-pressed=true]):active,button.button-secondary:not(:disabled):not(.active):active,.ui-button:not(:disabled):not([aria-disabled=true]):not([type=submit]):not(.primary):not(.button-primary):not(.ui-button-primary):not(.button-danger):not(.ui-button-danger):not(.cart-remove):not(.active):not(.ui-button-active):not([aria-selected=true]):not([aria-pressed=true]):active,a.button-secondary:active,.nav-group summary:active { transform:none; border-color:var(--sirius-bronze); background:var(--sirius-pressed-surface); box-shadow:var(--sirius-shadow-pressed); }
/* Sélectionné = bronze permanent, jamais confondu avec le survol. */
button[type=submit]:not(.button-secondary):not(:disabled):hover,button.ui-button-primary:not(:disabled):hover,button.primary:not(:disabled):hover,button.button-primary:not(:disabled):hover,
.module-nav button.active:hover,.nav-group summary.ui-button-active:hover,.segmented button.active:hover,[role=tab][aria-selected=true]:hover,.ui-button-active:hover { background:var(--sirius-primary-hover); border-color:var(--sirius-bronze-light); color:var(--sirius-on-primary); }
button[type=submit]:not(.button-secondary):not(:disabled):active,button.ui-button-primary:not(:disabled):active,button.primary:not(:disabled):active,button.button-primary:not(:disabled):active,
.module-nav button.active:active,.nav-group summary.ui-button-active:active,.segmented button.active:active,[role=tab][aria-selected=true]:active,.ui-button-active:active { background:linear-gradient(135deg,#8f6030,#a8733b); border-color:var(--sirius-bronze-dark); box-shadow:var(--sirius-shadow-pressed); color:var(--sirius-on-primary); }
button.button-danger:not(:disabled):hover,button.ui-button-danger:not(:disabled):hover,button.cart-remove:not(:disabled):hover { background:linear-gradient(145deg,#a83a30,#c24c3c); border-color:#d06a5a; color:var(--sirius-on-danger); }
button.button-danger:not(:disabled):active,button.ui-button-danger:not(:disabled):active,button.cart-remove:not(:disabled):active { background:linear-gradient(145deg,#7e2a22,#9b332a); box-shadow:var(--sirius-shadow-pressed); }
button:disabled,button[aria-disabled=true],.ui-button:disabled,a.button-secondary[aria-disabled=true] { background:var(--sirius-surface-raised); color:var(--sirius-text-muted); border-color:var(--sirius-border); opacity:.65; box-shadow:none; cursor:not-allowed; transform:none; }
button:disabled:hover,button[aria-disabled=true]:hover,button:disabled:active,button[aria-disabled=true]:active { background:var(--sirius-surface-raised); border-color:var(--sirius-border); box-shadow:none; }
/* Menus : premier / dernier item suivent le rayon du conteneur, même pressed que le reste. */
.user-menu-actions,.nav-group > div { overflow:hidden; padding:6px; }
.user-menu-actions > button:active { background:var(--sirius-pressed-surface); color:var(--sirius-text); box-shadow:var(--sirius-shadow-pressed); }
.user-menu-actions > #logout { color:var(--sirius-danger-text); background:linear-gradient(135deg,var(--sirius-danger-surface),#291c19); border-color:var(--sirius-danger); }
.user-menu-actions > #logout:is(:hover,:focus-visible) { background:linear-gradient(135deg,#4a2b25,var(--sirius-danger-surface)); border-color:var(--sirius-danger); box-shadow:inset 3px 0 var(--sirius-danger); }
.user-menu-actions > #logout:active { background:#2a1714; color:var(--sirius-danger-text); }
.client-search [role=option]:is(:hover,:focus) { background:var(--sirius-surface-raised); }
.client-search [role=listbox] { overflow:auto; }

/* Header desktop compact (souris uniquement) : ~52 px, contrôles 34 px, logo réduit. */
@media (min-width:1200px) and (hover:hover) and (pointer:fine) {
  .topbar { min-height:var(--sirius-topbar-height); padding:0 12px; gap:10px; align-items:center; border:1px solid var(--sirius-border); background:var(--sirius-panel-gradient); box-shadow:var(--sirius-shadow-soft); }
  .topbar #brand-home img { max-height:34px; }
  .topbar #brand-home .sirius-brand__constellation { width:24px; height:34px; max-height:34px; }
  .topbar #brand-home .sirius-brand__wordmark { width:96px; max-height:30px; }
  .module-nav button,.nav-group summary { min-height:var(--sirius-control-compact); padding:5px 9px; }
  .module-nav .ui-icon { width:15px; height:15px; flex-basis:15px; }
  .account-avatar { width:var(--sirius-control-compact); height:var(--sirius-control-compact); min-height:var(--sirius-control-compact); min-width:var(--sirius-control-compact); }
  .nav-group summary { display:inline-flex; align-items:center; }
}
/* Écrans 1200–1450 px : la bordure et le rembourrage de la topbar ne doivent pas faire déborder la navigation. */
@media (min-width:1200px) and (max-width:1450px) and (hover:hover) and (pointer:fine) {
  .topbar { padding:0 8px; gap:6px; }
  .module-nav { gap:6px; }
  .nav-primary,.nav-groups { gap:3px; }
  .module-nav button,.nav-group summary { padding-inline:5px; }
  .module-nav .ui-icon { margin-right:3px; }
}
/* 1200–1360 px : onglet « Agenda » en plus ; la barre reste sur une ligne même avec une police un peu plus large (marge d'environ 90 px). */
@media (min-width:1200px) and (max-width:1360px) and (hover:hover) and (pointer:fine) {
  .topbar { gap:4px; }
  .module-nav { gap:4px; }
  .nav-primary,.nav-groups { gap:2px; }
  .module-nav button,.nav-group summary { padding-inline:3px; font-size:10.5px; }
  .module-nav .ui-icon { width:14px; flex-basis:14px; margin-right:2px; }
}
/* Tactile / tablette / mobile : cibles >= 44 px, topbar confortable mais arrondie. */
@media (pointer:coarse), (max-width:1199px) {
  .topbar { border:1px solid var(--sirius-border); padding-inline:10px; }
  .table-wrap,.table-scroll { min-height:0; }
}
/* Tactile : les anciens correctifs locaux (36/38/34 px) ne doivent pas passer sous la cible de 44 px. */
@media (pointer:coarse), (max-width:1199px) {
  .today-item button,.sale-card-footer button,.variant-row button,.quantity-stepper button,.cart-remove,.cart-controls .quantity-stepper button { min-height:44px; min-width:44px; }
  .quantity-stepper input[data-basket-input] { min-height:44px; }
  details:not(.nav-group):not(.user-menu) > summary { min-height:44px; padding-block:10px; box-sizing:border-box; }
}
/* Sheets du bas : coins hauts 18 px, collée au bord. Plein écran mobile : droit (exception documentée). */
.mobile-cart-sheet { border-radius:var(--sirius-radius-lg) var(--sirius-radius-lg) 0 0; }
@media (max-width:560px) and (orientation:portrait) {
  .topbar { border-radius:var(--sirius-radius-lg); padding:0 10px 10px; }
  .hero { border-radius:var(--sirius-radius-lg); }
  .table-wrap { border:0; background:transparent; border-radius:0; overflow:visible; }
  .table-wrap tr { border-radius:var(--sirius-radius-md); }
  .action-dialog,.action-dialog:has(.event-editor),.action-dialog:has(.price-matrix-cards),.action-dialog:has(.price-grid) { border-radius:0; }
}
/* Menu mobile : un vrai menu déroulant arrondi, non un panneau carré isolé. */
.mobile-menu-panel:not([hidden]) { background:var(--sirius-surface-raised); border:1px solid var(--sirius-border-bronze); box-shadow:var(--sirius-shadow-soft); padding:10px; }
@media (prefers-reduced-motion:reduce) { button,.ui-button,.nav-group summary,.user-menu-actions > button { transition:none; } }

/* Soirées privées : badge de type et lignes du décompte. */
.event-status-private { background:var(--sirius-info-surface); color:var(--sirius-info-text); }
.private-party-editor [data-event-kind] { display:block; }
.private-party-row { display:flex; flex-wrap:wrap; align-items:end; gap:10px; margin:0 0 10px; padding:10px; border:1px solid var(--sirius-border); border-radius:var(--sirius-radius-sm); }
.private-party-row label { flex:1 1 150px; }
.private-party-row output { flex:0 0 auto; min-width:70px; font-weight:650; }
.private-party-contact [data-contact-results] { display:flex; flex-direction:column; align-items:flex-start; gap:6px; margin:6px 0; }
@media (max-width:640px) { .private-party-row { flex-direction:column; align-items:stretch; } }

/* Liste des événements : deux boutons de création de même taille ; la soirée privée prend le bordeaux de Sirius membres. */
.event-create-actions button { flex:0 0 270px; width:270px; justify-content:center; }
@media (max-width:700px) { .event-create-actions button { flex:1 1 auto; width:100%; } }
button.event-create-party, button.event-create-party:hover { background:#4F1A26; border:1px solid #7A2F40; color:var(--sirius-text); box-shadow:none; background-image:none; }
button.event-create-party:not(:disabled):hover { background:#5E2230; border-color:#9A3F54; }
.event-type { display:inline-flex; align-items:center; padding:2px 8px; border:1px solid var(--sirius-border); border-radius:999px; font-size:11px; font-weight:650; }
.event-type-private { background:#4F1A26; border-color:#7A2F40; color:var(--sirius-text); }

/* Soirées privées : erreur de décompte bien visible (rouge), une ligne par article en défaut. */
.private-party-error { margin:12px 0; padding:12px 14px; border:1px solid var(--sirius-danger); border-radius:var(--sirius-radius-sm); background:var(--sirius-danger-surface); color:var(--sirius-danger-text); font-weight:650; white-space:pre-line; }
.private-party-contact-kind { display:flex; gap:16px; border:0; padding:0; margin:8px 0; }

/* Prix de revient : colonne et indicateurs de la grille Prix. */
.price-cost-cell { border-left:2px solid var(--sirius-border-bronze); min-width:150px; }
.price-cost-cell [data-cost-revert] { margin-top:4px; min-height:32px; padding:4px 8px; font-size:12px; }
.price-cost-cell.is-changed { outline:1px solid var(--sirius-bronze); }

/* Tableau de bord › Gratuités. */
.dashboard-pages { display:flex; gap:8px; margin:0 0 16px; }
.gratuities-controls { grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); align-items:end; }
.gratuities-toolbar { display:flex; flex-wrap:wrap; gap:12px; align-items:center; justify-content:space-between; margin:8px 0 12px; }
.gratuities-table { width:100%; border-collapse:separate; border-spacing:0; }
.gratuities-table th, .gratuities-table td { padding:8px 10px; text-align:right; white-space:nowrap; }
.gratuities-table th:first-child, .gratuities-table td:first-child { text-align:left; }
.gratuities-table thead th { position:sticky; top:0; z-index:2; background:var(--sirius-surface-raised); vertical-align:bottom; }
.gratuities-table thead th small { display:block; font-weight:400; color:var(--sirius-text-muted); }
.gratuities-table th[data-category=offered_clients], .gratuities-table td[data-category=offered_clients] { color:var(--sirius-success-text); }
.gratuities-outside-total { border-left:1px dashed var(--sirius-border); border-right:1px dashed var(--sirius-border); background:rgba(122,47,64,.12); }
.gratuities-total { font-weight:700; border-left:2px solid var(--sirius-border-bronze); }
.gratuities-part th { text-align:left; background:var(--sirius-surface-2); font-size:1.05em; }
.gratuities-beer th { text-align:left; background:var(--sirius-surface-soft); }
.gratuities-format th { font-weight:400; padding-left:24px; }
.gratuities-litres td, .gratuities-litres th, .gratuities-part-total td, .gratuities-part-total th { border-top:1px solid var(--sirius-border); font-weight:700; }
.gratuities-grand-total td, .gratuities-grand-total th { border-top:2px solid var(--sirius-border); font-weight:700; background:var(--sirius-surface-soft, transparent); }
.gratuities-empty td { text-align:left; color:var(--sirius-text-muted); }
