/* PMD_ADMIN_CONTROL_LANGUAGE_R29
 * Reference authority: Create Table R32-R40, Inventory R28.
 * Exactly one design token vocabulary for management action roles; do NOT
 * homogenize button semantics, tap targets, POS product grids or KDS states.
 * All selectors are opt-in via presentation-only R29 data attributes.
 */
:root {
  --pmd-control-r29-radius:14px;
  --pmd-control-r29-field-radius:16px;
  --pmd-control-r29-green:#075c47;
  --pmd-control-r29-green-dark:#064b3c;
  --pmd-control-r29-blue-line:#c9dce8;
  --pmd-control-r29-ink:#14384a;
  --pmd-control-r29-primary:linear-gradient(180deg,#0b765e 0%,#075c47 100%);
  --pmd-control-r29-primary-shadow:0 9px 20px rgba(7,92,71,.15),inset 0 1px 0 rgba(255,255,255,.16);
  --pmd-control-r29-calm-shadow:0 2px 7px rgba(32,64,54,.035);
}

/* Presentation is assigned only to semantic actions. Leave their exact
 * width, layout, disabled state, value, JS event handlers and focus order.
 * :is() raises specificity for management surfaces with older !important
 * declarations; a portal fallback handles dialogs attached directly to body.
 */
html body.pmd-admin-controls-r29-ready [data-pmd-admin-action-r29],
html body.pmd-admin-controls-r29-ready
:is(#pmd-dashboard-lab,#pmd-settings-center,#pmd-menu-manager-main,#pmd-shifts-root,#pmd-team-access,#pmd-finance-page,#pmd-devices-page,#pmd-quick-setup,.main-container,.pmd-main,.modal,dialog,[role="dialog"])
[data-pmd-admin-action-r29] {
  box-sizing:border-box!important;
  border-radius:var(--pmd-control-r29-radius)!important;
  font-family:inherit!important;
  font-weight:800!important;
  letter-spacing:normal!important;
  text-transform:none!important;
  text-decoration:none!important;
  text-shadow:none!important;
  -webkit-tap-highlight-color:transparent;
  transform:none!important;
  transition:none!important;
  animation:none!important;
}

/* Save / Create / Confirm: exact Create Table jade gradient, white type,
 * and inner highlight. It is NOT the old black/green 90deg Admin gradient.
 */
html body.pmd-admin-controls-r29-ready [data-pmd-admin-action-r29="primary"],
html body.pmd-admin-controls-r29-ready
:is(#pmd-dashboard-lab,#pmd-settings-center,#pmd-menu-manager-main,#pmd-shifts-root,#pmd-team-access,#pmd-finance-page,#pmd-devices-page,#pmd-quick-setup,.main-container,.pmd-main,.modal,dialog,[role="dialog"])
[data-pmd-admin-action-r29="primary"] {
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  vertical-align:middle!important;
  gap:7px!important;
  min-height:40px!important;
  padding:7px 16px!important;
  border:1px solid var(--pmd-control-r29-green-dark)!important;
  border-radius:var(--pmd-control-r29-radius)!important;
  background:var(--pmd-control-r29-primary)!important;
  background-color:var(--pmd-control-r29-green)!important;
  background-image:var(--pmd-control-r29-primary)!important;
  color:#fff!important;
  box-shadow:var(--pmd-control-r29-primary-shadow)!important;
  font-size:12px!important;
  font-weight:820!important;
  line-height:1.2!important;
  white-space:normal!important;
  cursor:pointer;
}
/* input[type=submit] cannot be flex containers in all browsers. */
html body.pmd-admin-controls-r29-ready input:is([type="submit"],[type="button"])[data-pmd-admin-action-r29="primary"] {
  display:inline-block!important;
}
html body.pmd-admin-controls-r29-ready [data-pmd-admin-action-r29="primary"]:hover:not(:disabled):not([aria-disabled="true"]) {
  background:linear-gradient(180deg,#086c56 0%,#064b3c 100%)!important;
  background-image:linear-gradient(180deg,#086c56 0%,#064b3c 100%)!important;
  border-color:#064b3c!important;
}
html body.pmd-admin-controls-r29-ready [data-pmd-admin-action-r29="primary"]:active:not(:disabled) {
  background:var(--pmd-control-r29-green-dark)!important;
  background-image:none!important;
  box-shadow:inset 0 1px 4px rgba(0,0,0,.12)!important;
}

/* Save-labelled actions get the same diskette silhouette as Create Table.
 * CSS-only pseudo element: preserve exact button inner HTML and event links.
 */
html body.pmd-admin-controls-r29-ready
:is(button,a)[data-pmd-admin-action-r29="primary"][data-pmd-admin-action-icon-r29="save"]::before {
  content:"";
  display:inline-block;
  flex:0 0 16px;
  box-sizing:border-box;
  width:16px;
  height:16px;
  margin:0;
  padding:0;
  background:transparent 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='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 4h11l3 3v13H5z'/%3E%3Cpath d='M8 4v6h8V4M8 20v-6h8v6'/%3E%3C/svg%3E") center/16px 16px no-repeat;
}

/* Quiet, Cancel, Back and neutral toolbar actions: exact white Table family. */
html body.pmd-admin-controls-r29-ready [data-pmd-admin-action-r29="secondary"],
html body.pmd-admin-controls-r29-ready
:is(#pmd-dashboard-lab,#pmd-settings-center,#pmd-menu-manager-main,#pmd-shifts-root,#pmd-team-access,#pmd-finance-page,#pmd-devices-page,#pmd-quick-setup,.main-container,.pmd-main,.modal,dialog,[role="dialog"])
[data-pmd-admin-action-r29="secondary"] {
  min-height:40px!important;
  padding:7px 14px!important;
  border:1px solid var(--pmd-control-r29-blue-line)!important;
  border-radius:var(--pmd-control-r29-radius)!important;
  background:rgba(255,255,255,.95)!important;
  background-image:none!important;
  color:var(--pmd-control-r29-ink)!important;
  font-size:12px!important;
  font-weight:800!important;
  line-height:1.2!important;
  box-shadow:var(--pmd-control-r29-calm-shadow)!important;
  cursor:pointer;
}
html body.pmd-admin-controls-r29-ready [data-pmd-admin-action-r29="secondary"]:hover:not(:disabled) {
  border-color:#9fc7ba!important;
  background:#f5fbf8!important;
  background-image:none!important;
}

/* Destructive actions should NEVER look like green Save. */
html body.pmd-admin-controls-r29-ready [data-pmd-admin-action-r29="danger"],
html body.pmd-admin-controls-r29-ready
:is(#pmd-dashboard-lab,#pmd-settings-center,#pmd-menu-manager-main,#pmd-shifts-root,#pmd-team-access,#pmd-finance-page,#pmd-devices-page,#pmd-quick-setup,.main-container,.pmd-main,.modal,dialog,[role="dialog"])
[data-pmd-admin-action-r29="danger"] {
  min-height:40px!important;
  padding:7px 14px!important;
  border:1px solid #e3a0a9!important;
  border-radius:var(--pmd-control-r29-radius)!important;
  background:#fff7f8!important;
  background-image:none!important;
  color:#a22b39!important;
  box-shadow:none!important;
  font-size:12px!important;
  font-weight:800!important;
  cursor:pointer;
}
html body.pmd-admin-controls-r29-ready [data-pmd-admin-action-r29="danger"]:hover:not(:disabled) {
  background:#ffecef!important;
  border-color:#d87988!important;
}

/* Segmented, filters and choices: white at rest; selected uses the SAME
 * jade gradient as Save, while retaining original .active/.is-active state.
 */
html body.pmd-admin-controls-r29-ready [data-pmd-admin-action-r29="choice"],
html body.pmd-admin-controls-r29-ready
:is(#pmd-dashboard-lab,#pmd-settings-center,#pmd-menu-manager-main,#pmd-shifts-root,#pmd-team-access,#pmd-finance-page,#pmd-devices-page,#pmd-quick-setup,.main-container,.pmd-main,.modal,dialog,[role="dialog"])
[data-pmd-admin-action-r29="choice"] {
  min-height:40px!important;
  padding:6px 12px!important;
  border:1px solid var(--pmd-control-r29-blue-line)!important;
  border-radius:var(--pmd-control-r29-radius)!important;
  background:rgba(255,255,255,.95)!important;
  background-image:none!important;
  color:var(--pmd-control-r29-ink)!important;
  box-shadow:none!important;
  font-size:12px!important;
  font-weight:800!important;
  cursor:pointer;
}
html body.pmd-admin-controls-r29-ready
[data-pmd-admin-action-r29="choice"]:is(.is-active,.active,[aria-pressed="true"],[aria-selected="true"],[data-state="active"],[data-selected="true"]) {
  border-color:var(--pmd-control-r29-green-dark)!important;
  background:var(--pmd-control-r29-primary)!important;
  background-image:var(--pmd-control-r29-primary)!important;
  color:#fff!important;
  box-shadow:var(--pmd-control-r29-primary-shadow)!important;
}

/* Legacy buttons can gain .is-active after an AJAX/class toggle without
 * being recreated. The selected state should still match Table features. */
html body.pmd-admin-controls-r29-ready
[data-pmd-admin-action-r29="secondary"]:is(.is-active,.active,[aria-pressed="true"],[aria-selected="true"]) {
  border-color:var(--pmd-control-r29-green-dark)!important;
  background:var(--pmd-control-r29-primary)!important;
  background-image:var(--pmd-control-r29-primary)!important;
  color:#fff!important;
  box-shadow:var(--pmd-control-r29-primary-shadow)!important;
}

/* Toolbar icon-only buttons: same soft square visual shell without changing
 * their functional hit area, width or DOM positioning.
 */
html body.pmd-admin-controls-r29-ready [data-pmd-admin-action-r29="icon"] {
  border:1px solid var(--pmd-control-r29-blue-line)!important;
  border-radius:14px!important;
  background:rgba(255,255,255,.95)!important;
  background-image:none!important;
  color:#14384a!important;
  box-shadow:var(--pmd-control-r29-calm-shadow)!important;
}
html body.pmd-admin-controls-r29-ready [data-pmd-admin-action-r29="icon"]:hover:not(:disabled) {
  background:#f4fbf8!important;
  border-color:#9fc7ba!important;
}

html body.pmd-admin-controls-r29-ready [data-pmd-admin-action-r29]:focus-visible {
  outline:2px solid rgba(47,134,111,.58)!important;
  outline-offset:2px!important;
}
html body.pmd-admin-controls-r29-ready
[data-pmd-admin-action-r29]:is(:disabled,[aria-disabled="true"],.disabled) {
  opacity:.48!important;
  cursor:not-allowed!important;
  box-shadow:none!important;
}

/* Native <select> may have square WebKit corners regardless of CSS radius.
 * Normalize CLOSED controls only; opened option list remains OS-native.
 * Never touch enhanced selectize/select2, multiple selects, or date controls.
 */
html body.pmd-admin-controls-r29-ready
select[data-pmd-admin-select-r29="1"] {
  box-sizing:border-box!important;
  min-height:40px!important;
  border:1px solid var(--pmd-control-r29-blue-line)!important;
  border-radius:var(--pmd-control-r29-field-radius)!important;
  -webkit-border-radius:var(--pmd-control-r29-field-radius)!important;
  -webkit-appearance:none!important;
  -moz-appearance:none!important;
  appearance:none!important;
  background-color:rgba(255,255,255,.96)!important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23075c47' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m7 10 5 5 5-5'/%3E%3C/svg%3E")!important;
  background-repeat:no-repeat!important;
  background-size:18px 18px!important;
  background-position:right 13px center!important;
  background-clip:padding-box!important;
  color:#102a43!important;
  padding-inline-end:40px!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.96)!important;
  overflow:hidden!important;
  text-overflow:ellipsis;
  color-scheme:light!important;
}
html[dir="rtl"] body.pmd-admin-controls-r29-ready
select[data-pmd-admin-select-r29="1"],
html body.pmd-admin-controls-r29-ready [dir="rtl"] select[data-pmd-admin-select-r29="1"] {
  background-position:left 13px center!important;
}
html body.pmd-admin-controls-r29-ready
select[data-pmd-admin-select-r29="1"]:focus-visible {
  border-color:rgba(52,139,111,.48)!important;
  outline:2px solid rgba(47,134,111,.40)!important;
  outline-offset:1px!important;
}

/* R29 direct fix: the R26 high-priority selector and browser-native dropdown
 * appearance occasionally defeat R28 rounded fields. This even works when
 * the generic R29 JS classifier is skipped by Inventory's R28 authority.
 */
html body.pmd-menu-manager-page
#pmd-inventory-v1.pmd-inv-r26-ready.pmd-inv-r27-ready.pmd-inv-r28-ready
.pmd-inv-r27-native
.pmd-inv-r25-overlay.pmd-inv-r26-refined
.pmd-inv-r25-sheet select:not([multiple]):not([size]) {
  box-sizing:border-box!important;
  width:100%!important;
  min-height:48px!important;
  height:48px!important;
  border:1px solid #c9dce8!important;
  border-radius:16px!important;
  -webkit-border-radius:16px!important;
  -webkit-appearance:none!important;
  -moz-appearance:none!important;
  appearance:none!important;
  background-color:rgba(255,255,255,.96)!important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23075c47' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m7 10 5 5 5-5'/%3E%3C/svg%3E")!important;
  background-repeat:no-repeat!important;
  background-position:right 13px center!important;
  background-size:18px 18px!important;
  background-clip:padding-box!important;
  padding:8px 40px 8px 13px!important;
  color:#102a43!important;
  font-family:inherit!important;
  font-size:14px!important;
  font-weight:700!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.96)!important;
  overflow:hidden!important;
}
html[dir="rtl"] body.pmd-menu-manager-page
#pmd-inventory-v1.pmd-inv-r26-ready.pmd-inv-r27-ready.pmd-inv-r28-ready
.pmd-inv-r27-native
.pmd-inv-r25-overlay.pmd-inv-r26-refined
.pmd-inv-r25-sheet select:not([multiple]):not([size]) {
  background-position:left 13px center!important;
  padding:8px 13px 8px 40px!important;
}
html body.pmd-menu-manager-page
#pmd-inventory-v1.pmd-inv-r26-ready.pmd-inv-r27-ready.pmd-inv-r28-ready
.pmd-inv-r27-native
.pmd-inv-r25-overlay.pmd-inv-r26-refined
.pmd-inv-r25-sheet select:not([multiple]):not([size]):focus-visible {
  border-color:#79bda8!important;
  box-shadow:0 0 0 3px rgba(47,134,111,.12)!important;
  outline:none!important;
}

/* Standalone POS/KDS consume the shared tokens, but operational controls
 * aren't tagged. The actual stock/order button dimensions stay authoritative.
 */
@media(prefers-reduced-motion:reduce) {
  html body.pmd-admin-controls-r29-ready [data-pmd-admin-action-r29],
  html body.pmd-admin-controls-r29-ready select[data-pmd-admin-select-r29] {
    animation:none!important;
    transition:none!important;
  }
}
