/**
 * VistaRinse action buttons. Ready-to-serve CSS: no Tailwind runtime or build required.
 * Opt-in only: tabs, calendar cells, navigation and vendor controls are not buttons.
 * Layout owners retain widths, margins and grid placement. Explicit admin selectors
 * outrank the older generic button rules without global !important overrides.
 */
:root {
 --btn-primary-bg:#076eb2; --btn-primary-hover:#05578e; --btn-primary-active:#044775;
 --btn-primary-ink:#fff; --btn-secondary-bg:#edf3f8; --btn-secondary-hover:#dce8f2;
 --btn-secondary-active:#cddfed; --btn-secondary-ink:#142d43; --btn-line:#afc3d5;
 --btn-outline-ink:#065f99; --btn-outline-hover:#e7f3fd; --btn-outline-active:#d1e9fa;
 --btn-danger-bg:#b4233b; --btn-danger-hover:#951d31; --btn-danger-active:#7c1729;
 --btn-danger-ink:#fff; --btn-focus:#076eb2; --btn-danger-focus:#b4233b;
 --btn-radius:10px; --btn-shadow:0 2px 6px rgb(6 43 70 / .14);
}
html[data-theme="dark"], html.dark:not([data-theme="light"]) {
 --btn-secondary-bg:#1b354b; --btn-secondary-hover:#294a64; --btn-secondary-active:#345a76;
 --btn-secondary-ink:#eef7ff; --btn-line:#66849d; --btn-outline-ink:#9cddff;
 --btn-outline-hover:#1b354b; --btn-outline-active:#294a64;
 --btn-focus:#79d2ff; --btn-danger-focus:#ffa3b3; --btn-shadow:0 2px 6px rgb(0 0 0 / .22);
}
@media (prefers-color-scheme:dark) {
 html:not([data-theme]):not(.light) {
  --btn-secondary-bg:#1b354b; --btn-secondary-hover:#294a64; --btn-secondary-active:#345a76;
  --btn-secondary-ink:#eef7ff; --btn-line:#66849d; --btn-outline-ink:#9cddff;
  --btn-outline-hover:#1b354b; --btn-outline-active:#294a64;
  --btn-focus:#79d2ff; --btn-danger-focus:#ffa3b3; --btn-shadow:0 2px 6px rgb(0 0 0 / .22);
 }
}
/* Low-specificity defaults let variants and local token overrides compose cleanly. */
:where(.btn) {
 --btn-bg:var(--btn-secondary-bg); --btn-hover:var(--btn-secondary-hover);
 --btn-active:var(--btn-secondary-active); --btn-ink:var(--btn-secondary-ink);
 --btn-border:var(--btn-line); --btn-ring:var(--btn-focus); --btn-rest-shadow:none;
}
.btn-primary {
 --btn-bg:var(--btn-primary-bg); --btn-hover:var(--btn-primary-hover);
 --btn-active:var(--btn-primary-active); --btn-ink:var(--btn-primary-ink);
 --btn-border:var(--btn-primary-bg); --btn-rest-shadow:var(--btn-shadow);
}
.btn-secondary {
 --btn-bg:var(--btn-secondary-bg); --btn-hover:var(--btn-secondary-hover);
 --btn-active:var(--btn-secondary-active); --btn-ink:var(--btn-secondary-ink);
 --btn-border:var(--btn-line);
}
.btn-outline {
 --btn-bg:transparent; --btn-hover:var(--btn-outline-hover);
 --btn-active:var(--btn-outline-active); --btn-ink:var(--btn-outline-ink);
 --btn-border:var(--btn-outline-ink);
}
.btn-danger {
 --btn-bg:var(--btn-danger-bg); --btn-hover:var(--btn-danger-hover);
 --btn-active:var(--btn-danger-active); --btn-ink:var(--btn-danger-ink);
 --btn-border:var(--btn-danger-bg); --btn-ring:var(--btn-danger-focus);
 --btn-rest-shadow:var(--btn-shadow);
}
.btn, #vp-editor .vp-draft-action.btn.btn, :is(button,a,input).btn.btn,
.unified-admin :is(.studio,.studio-dialog,.permanent-delete-dialog,.login-form) :is(button,a,input).btn {
 box-sizing:border-box; display:inline-flex; align-items:center; justify-content:center;
 gap:8px; min-width:0; max-width:100%; min-height:44px; height:auto;
 padding:10px 16px; border:1px solid var(--btn-border); border-radius:var(--btn-radius);
 font-family:inherit; font-size:14px; font-weight:650; line-height:1.4; letter-spacing:.01em;
 text-align:center; text-decoration:none; text-transform:none; white-space:normal;
 overflow-wrap:anywhere; vertical-align:middle; background:var(--btn-bg); color:var(--btn-ink);
 box-shadow:var(--btn-rest-shadow); cursor:pointer; touch-action:manipulation;
 transform:none; filter:none;
 transition:background-color 200ms ease-in-out,border-color 200ms ease-in-out,
  color 200ms ease-in-out,box-shadow 200ms ease-in-out,transform 120ms ease-out;
}
:is(button,a,input).btn:hover:not(:disabled):not([aria-disabled="true"]):not([aria-busy="true"]),
.unified-admin :is(.studio,.studio-dialog,.permanent-delete-dialog,.login-form) :is(button,a,input).btn:hover:not(:disabled):not([aria-disabled="true"]):not([aria-busy="true"]) {
 background:var(--btn-hover); border-color:var(--btn-border); color:var(--btn-ink);
 box-shadow:var(--btn-shadow); transform:none; filter:none;
}
:is(button,a,input).btn:active:not(:disabled):not([aria-disabled="true"]):not([aria-busy="true"]),
.unified-admin :is(.studio,.studio-dialog,.permanent-delete-dialog,.login-form) :is(button,a,input).btn:active:not(:disabled):not([aria-disabled="true"]):not([aria-busy="true"]) {
 background:var(--btn-active); box-shadow:inset 0 1px 3px rgb(0 0 0 / .18); transform:translateY(1px);
}
:is(button,a,input).btn:focus-visible,
.unified-admin :is(.studio,.studio-dialog,.permanent-delete-dialog,.login-form) :is(button,a,input).btn:focus-visible {
 outline:2px solid var(--btn-ring); outline-offset:3px;
}
:is(button,a,input).btn:is(:disabled,[aria-disabled="true"]),
.unified-admin :is(.studio,.studio-dialog,.permanent-delete-dialog,.login-form) :is(button,a,input).btn:is(:disabled,[aria-disabled="true"]) {
 opacity:.5; cursor:not-allowed; background:var(--btn-bg); color:var(--btn-ink);
 border-color:var(--btn-border); box-shadow:none; transform:none; filter:none;
}
.btn[aria-busy="true"] { cursor:progress; }
.btn.btn-block, :is(button,a,input).btn.btn-block,
.unified-admin :is(.studio,.studio-dialog,.permanent-delete-dialog,.login-form) :is(button,a,input).btn.btn-block { width:100%; }
.btn.btn-icon-only { min-width:44px; padding-inline:10px; }
.btn > svg, .btn > .btn-icon { width:18px; height:18px; flex:0 0 auto; }
.btn > .btn-label { min-width:0; }
.btn[hidden], .btn [hidden] { display:none!important; }
.btn-spinner {
 display:inline-block; width:16px; height:16px; flex:0 0 auto;
 border:2px solid currentColor; border-right-color:transparent; border-radius:50%;
 animation:vr-button-spin 800ms linear infinite;
}
@keyframes vr-button-spin { to { transform:rotate(360deg); } }
@media (prefers-reduced-motion:reduce) {
 :is(button,a,input).btn,
 .unified-admin :is(.studio,.studio-dialog,.permanent-delete-dialog,.login-form) :is(button,a,input).btn {
  transition:none; transform:none!important;
 }
 .btn-spinner { animation:none; }
}
@media (forced-colors:active) {
 :is(button,a,input).btn,
 .unified-admin :is(.studio,.studio-dialog,.permanent-delete-dialog,.login-form) :is(button,a,input).btn {
  forced-color-adjust:auto; background:ButtonFace; color:ButtonText; border-color:ButtonText;
  box-shadow:none; --btn-bg:ButtonFace; --btn-hover:ButtonFace; --btn-active:ButtonFace;
  --btn-ink:ButtonText; --btn-border:ButtonText; --btn-ring:Highlight;
 }
 :is(button,a,input).btn:is(:disabled,[aria-disabled="true"]) { color:GrayText; border-color:GrayText; }
}

/* Shared contextual contract. Only managed action buttons are normalized.
 * Important declarations are restricted to appearance/inner geometry so older
 * module selectors cannot override the contract. Widths, margins, flex and grid
 * placement stay with the owning view. Navigation and vendor widgets are exempt.
 */
:root {
 --btn-success-bg:#16744c;--btn-success-hover:#105b3b;--btn-success-active:#0c482e;
 --btn-success-ink:#fff;--btn-warning-bg:#f5c454;--btn-warning-hover:#eab638;
 --btn-warning-active:#daa528;--btn-warning-ink:#523900;
 --btn-ghost-bg:transparent;--btn-ghost-hover:var(--btn-outline-hover);
 --btn-ghost-active:var(--btn-outline-active);--btn-ghost-ink:var(--btn-outline-ink);
}
html[data-theme="dark"],html.dark:not([data-theme="light"]) {
 --btn-warning-bg:#594417;--btn-warning-hover:#73571c;--btn-warning-active:#846422;
 --btn-warning-ink:#ffe2a3;
}
@media(prefers-color-scheme:dark) {
 html:not([data-theme]):not(.light){--btn-warning-bg:#594417;--btn-warning-hover:#73571c;--btn-warning-active:#846422;--btn-warning-ink:#ffe2a3;}
}
.btn-success {--btn-bg:var(--btn-success-bg);--btn-hover:var(--btn-success-hover);--btn-active:var(--btn-success-active);--btn-ink:var(--btn-success-ink);--btn-border:var(--btn-success-bg);--btn-rest-shadow:var(--btn-shadow);}
.btn-warning {--btn-bg:var(--btn-warning-bg);--btn-hover:var(--btn-warning-hover);--btn-active:var(--btn-warning-active);--btn-ink:var(--btn-warning-ink);--btn-border:var(--btn-warning-bg);--btn-rest-shadow:none;}
.btn-ghost {--btn-bg:var(--btn-ghost-bg);--btn-hover:var(--btn-ghost-hover);--btn-active:var(--btn-ghost-active);--btn-ink:var(--btn-ghost-ink);--btn-border:transparent;--btn-rest-shadow:none;}
.btn-secondary,.btn-outline {--btn-rest-shadow:none;}
:is(button,a,input).btn[data-vr-button="action"] {
 --btn-min-height:44px;--btn-pad-y:10px;--btn-pad-x:16px;--btn-font-size:14px;
 box-sizing:border-box!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;
 gap:8px!important;min-width:0;max-width:100%;min-height:var(--btn-min-height)!important;height:auto!important;
 padding:var(--btn-pad-y) var(--btn-pad-x)!important;border:1px solid var(--btn-border)!important;
 border-radius:var(--btn-radius)!important;background:var(--btn-bg)!important;color:var(--btn-ink)!important;
 font-family:inherit!important;font-size:var(--btn-font-size)!important;font-weight:650!important;line-height:1.4!important;
 letter-spacing:.01em!important;text-align:center!important;text-decoration:none!important;text-transform:none!important;
 white-space:normal;overflow-wrap:anywhere;vertical-align:middle;box-shadow:var(--btn-rest-shadow)!important;
 cursor:pointer;touch-action:manipulation;transform:none!important;filter:none!important;
 transition:background-color 200ms ease-in-out,border-color 200ms ease-in-out,color 200ms ease-in-out,box-shadow 200ms ease-in-out,transform 120ms ease-out!important;
}
:is(button,a,input).btn[data-vr-button="action"].btn-sm {--btn-min-height:32px;--btn-pad-y:6px;--btn-pad-x:10px;--btn-font-size:12px;}
:is(button,a,input).btn[data-vr-button="action"].btn-xs {--btn-min-height:28px;--btn-pad-y:4px;--btn-pad-x:8px;--btn-font-size:11px;}
:is(button,a,input).btn[data-vr-button="action"].btn-icon-only {min-width:var(--btn-min-height);--btn-pad-x:10px;}
:is(button,a,input).btn[data-vr-button="action"]:hover:not(:disabled):not([aria-disabled="true"]):not([aria-busy="true"]) {
 background:var(--btn-hover)!important;border-color:var(--btn-border)!important;color:var(--btn-ink)!important;
 box-shadow:var(--btn-shadow)!important;transform:none!important;filter:none!important;
}
:is(button,a,input).btn[data-vr-button="action"]:active:not(:disabled):not([aria-disabled="true"]):not([aria-busy="true"]) {
 background:var(--btn-active)!important;box-shadow:inset 0 1px 3px rgb(0 0 0 / .18)!important;transform:translateY(1px)!important;
}
:is(button,a,input).btn[data-vr-button="action"]:is(:disabled,[aria-disabled="true"]) {
 opacity:.5!important;cursor:not-allowed!important;box-shadow:none!important;transform:none!important;
 background:var(--btn-bg)!important;color:var(--btn-ink)!important;border-color:var(--btn-border)!important;
}
:is(button,a,input).btn[data-vr-button="action"][aria-busy="true"] {cursor:progress!important;transform:none!important;box-shadow:none!important;}
:is(button,a,input)[data-vr-button]:focus-visible {outline:2px solid var(--btn-ring,var(--btn-focus))!important;outline-offset:3px!important;}
:is(button,a,input).btn[data-vr-button="action"]>svg {width:18px;height:18px;flex-shrink:0;}
/* Menus use the same semantic colors, but retain compact left-aligned rows. */
:is(button,a,input).btn[data-vr-button="action"][data-vr-button-menu] {
 background:transparent!important;box-shadow:none!important;border-color:transparent!important;
 justify-content:flex-start!important;text-align:left!important;
 color:var(--btn-secondary-ink)!important;
}
:is(button,a,input).btn[data-vr-button-menu].btn-danger {color:var(--btn-danger-bg)!important;}
html[data-theme="dark"] :is(button,a,input).btn[data-vr-button-menu].btn-danger {color:#ffa3b3!important;}
:is(button,a,input).btn[data-vr-button-menu]:hover:not(:disabled):not([aria-disabled="true"]):not([aria-busy="true"]) {
 background:var(--btn-outline-hover)!important;color:var(--btn-outline-ink)!important;box-shadow:none!important;
}
.btn[data-vr-button][hidden] {display:none!important;}
@media(prefers-reduced-motion:reduce) {
 :is(button,a,input).btn[data-vr-button="action"] {transition:none!important;transform:none!important;}
}
@media(forced-colors:active) {
 :is(button,a,input).btn[data-vr-button="action"] {forced-color-adjust:auto;background:ButtonFace!important;color:ButtonText!important;border-color:ButtonText!important;box-shadow:none!important;}
 :is(button,a,input).btn[data-vr-button="action"]:is(:disabled,[aria-disabled="true"]) {color:GrayText!important;border-color:GrayText!important;}
 :is(button,a,input).btn[data-vr-button="action"]:hover:not(:disabled) {background:Highlight!important;color:HighlightText!important;}
}

/* Crew assignment choices are field controls, not centered call-to-action labels.
   Only alignment changes; shared action colors, padding and focus remain intact. */
:is(.cal-employee-picker,.mw-employee-picker) button:is(.cal-employee-trigger,.mw-employee-trigger,.cal-employee-option,[role=option]),
:is(.cal-employee-picker,.mw-employee-picker) button.btn[data-vr-button="action"]:is(.cal-employee-trigger,.mw-employee-trigger,.cal-employee-option,[role=option]){
 text-align:left!important;justify-content:flex-start!important;
}
:is(.cal-employee-picker,.mw-employee-picker) :is(.cal-employee-selected,[data-wizard-employee-selected]){
 flex:1 1 auto;min-width:0;justify-content:flex-start;text-align:left;
}
.cal-employee-picker .cal-employee-name,.mw-employee-picker [data-wizard-employee-selected]>span{
 text-align:left;
}

/* Refresh inherits its actual toolbar's geometry, including compact rows.
   Color variants, loading animations and disabled state are not overridden. */
:is(button,a,input)[data-vr-refresh-align],:is(button,a,input).btn[data-vr-button][data-vr-refresh-align]{
 box-sizing:border-box!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;
 min-height:var(--vr-refresh-min-height)!important;
 padding:var(--vr-refresh-pad-y) var(--vr-refresh-pad-x)!important;
 font-size:var(--vr-refresh-font-size)!important;line-height:var(--vr-refresh-line-height)!important;
}
:is(button,a,input)[data-vr-refresh-row],:is(button,a,input).btn[data-vr-button][data-vr-refresh-row]{
 box-sizing:border-box!important;height:var(--vr-refresh-height)!important;min-height:var(--vr-refresh-height)!important;
 align-self:center!important;vertical-align:middle!important;
}
:is(button,a,input)[data-vr-refresh-align]>:is(svg,.btn-icon),:is(button,a,input).btn[data-vr-button][data-vr-refresh-align]>:is(svg,.btn-icon){
 width:var(--vr-refresh-icon-size)!important;height:var(--vr-refresh-icon-size)!important;flex:0 0 auto;
}
