/* WPFinnity BR-1.0C — Enterprise Component Polish
 * Shared, token-driven finishing layer. Loaded last so legacy components gain
 * consistent interaction, accessibility and visual states without route changes.
 */

:root{
  --wpf-component-border:var(--wpf-color-border);
  --wpf-component-border-hover:color-mix(in srgb,var(--wpf-color-primary) 30%,var(--wpf-color-border));
  --wpf-component-surface:var(--wpf-color-surface,#fff);
  --wpf-component-muted:var(--wpf-color-surface-muted,#f7f9fc);
  --wpf-component-transition:box-shadow var(--wpf-motion-fast) var(--wpf-ease-standard),transform var(--wpf-motion-fast) var(--wpf-ease-standard),border-color var(--wpf-motion-fast) var(--wpf-ease-standard),background-color var(--wpf-motion-fast) var(--wpf-ease-standard),color var(--wpf-motion-fast) var(--wpf-ease-standard);
}

/* Buttons */
:where(.btn-primary,.btn-secondary,.btn-danger,.exec-btn,.embedded-ai-context-action,.embedded-ai-context-chat,.onb-button){
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:var(--wpf-control-height-md);padding:10px 16px;
  border-radius:var(--wpf-radius-md);font-weight:700;line-height:1.2;
  text-decoration:none;cursor:pointer;transition:var(--wpf-component-transition);
  -webkit-tap-highlight-color:transparent;
}
:where(.btn-primary,.exec-btn--primary,.onb-button){
  border:1px solid transparent;background:var(--wpf-gradient-brand);color:#fff;
  box-shadow:0 8px 18px rgba(55,82,210,.18);
}
:where(.btn-primary,.exec-btn--primary,.onb-button):hover{transform:translateY(-1px);box-shadow:0 12px 24px rgba(55,82,210,.24);filter:none}
:where(.btn-secondary,.exec-btn--secondary,.exec-btn--neutral){
  border:1px solid var(--wpf-component-border);background:var(--wpf-component-surface);color:var(--wpf-color-ink);
  box-shadow:var(--wpf-shadow-xs,0 1px 2px rgba(15,23,42,.04));
}
:where(.btn-secondary,.exec-btn--secondary,.exec-btn--neutral):hover{border-color:var(--wpf-component-border-hover);background:var(--wpf-component-muted);transform:translateY(-1px)}
:where(.btn-danger,.exec-btn--danger){border:1px solid color-mix(in srgb,var(--wpf-color-danger) 28%,transparent);background:color-mix(in srgb,var(--wpf-color-danger) 8%,#fff);color:var(--wpf-color-danger);box-shadow:none}
:where(.btn-danger,.exec-btn--danger):hover{background:var(--wpf-color-danger);color:#fff;border-color:var(--wpf-color-danger);transform:translateY(-1px)}
:where(.btn-primary,.btn-secondary,.btn-danger,.exec-btn,.onb-button):disabled,
:where(.btn-primary,.btn-secondary,.btn-danger,.exec-btn,.onb-button)[aria-disabled="true"]{opacity:.52;cursor:not-allowed;transform:none;box-shadow:none;filter:saturate(.55)}
:where(.btn-primary,.btn-secondary,.btn-danger,.exec-btn,.onb-button):focus-visible{outline:3px solid color-mix(in srgb,var(--wpf-color-primary) 24%,transparent);outline-offset:2px}

/* Cards and panels */
:where(.exec-card,.enterprise-panel,.metric-card,.client-preview-card,.client-activity-card,.client-directory-card,.reports-panel,.fleet-panel,.integration-kpis article,.card){
  border-color:var(--wpf-component-border);border-radius:var(--wpf-radius-lg);
  box-shadow:var(--wpf-shadow-soft);background:var(--wpf-component-surface);
  transition:var(--wpf-component-transition);
}
:where(.exec-card,.enterprise-panel,.metric-card,.client-preview-card,.client-activity-card,.client-directory-card,.reports-panel,.fleet-panel,.integration-kpis article):hover{
  border-color:var(--wpf-component-border-hover);box-shadow:var(--wpf-shadow-medium);
}
:where(.exec-card,.enterprise-panel,.metric-card) > :where(header,.card-header,.exec-section-head):first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}

/* Form controls */
:where(input:not([type="checkbox"]):not([type="radio"]),select,textarea){
  min-height:var(--wpf-control-height-md);border:1px solid var(--wpf-component-border);
  border-radius:var(--wpf-radius-md);background:#fff;color:var(--wpf-color-ink);
  padding:10px 12px;font:inherit;box-shadow:inset 0 1px 2px rgba(15,23,42,.025);
  transition:var(--wpf-component-transition);
}
:where(input:not([type="checkbox"]):not([type="radio"]),select,textarea):hover{border-color:color-mix(in srgb,var(--wpf-color-primary) 20%,var(--wpf-component-border))}
:where(input:not([type="checkbox"]):not([type="radio"]),select,textarea):focus{border-color:var(--wpf-color-primary);box-shadow:0 0 0 4px color-mix(in srgb,var(--wpf-color-primary) 13%,transparent);outline:none}
:where(input,select,textarea):disabled{background:var(--wpf-component-muted);color:var(--wpf-color-muted);cursor:not-allowed}
:where(label){font-weight:650;color:var(--wpf-color-ink)}
:where(.field,.enterprise-form label,.member-edit-form label){gap:7px}

/* Native checkbox/radio controls */
:where(input[type="checkbox"],input[type="radio"]){accent-color:var(--wpf-color-primary);width:17px;height:17px}

/* Tables and data grids */
:where(.enterprise-table,.fleet-table,.delivery-table,.inventory-table,.commerce-table-wrap table,.eds-data-grid table){border-collapse:separate;border-spacing:0;width:100%}
:where(.enterprise-table,.fleet-table,.delivery-table,.inventory-table,.commerce-table-wrap table,.eds-data-grid table) thead th{
  background:var(--wpf-component-muted);color:var(--wpf-color-muted);font-size:11px;font-weight:800;letter-spacing:.045em;text-transform:uppercase;
  border-bottom:1px solid var(--wpf-component-border);
}
:where(.enterprise-table,.fleet-table,.delivery-table,.inventory-table,.commerce-table-wrap table,.eds-data-grid table) tbody tr{transition:background-color var(--wpf-motion-fast) var(--wpf-ease-standard)}
:where(.enterprise-table,.fleet-table,.delivery-table,.inventory-table,.commerce-table-wrap table,.eds-data-grid table) tbody tr:hover{background:color-mix(in srgb,var(--wpf-color-primary) 3%,#fff)}
:where(.enterprise-table,.fleet-table,.delivery-table,.inventory-table,.commerce-table-wrap table,.eds-data-grid table) :where(th,td){padding-top:13px;padding-bottom:13px}
:where(.enterprise-table-wrap,.delivery-table-wrap,.commerce-table-wrap,.table-scroll){border-radius:var(--wpf-radius-lg);scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--wpf-color-primary) 28%,transparent) transparent}

/* Badges and statuses */
:where(.enterprise-badge,.status-badge,.fleet-status,.badge,.scope-pills span){
  display:inline-flex;align-items:center;gap:6px;min-height:25px;padding:4px 9px;
  border-radius:var(--wpf-radius-pill);font-size:11px;font-weight:750;line-height:1.1;white-space:nowrap;
}

/* Dropdowns / action menus */
:where(.member-actions-menu,[role="menu"],.dropdown-menu){
  border:1px solid var(--wpf-component-border);border-radius:var(--wpf-radius-lg);
  background:#fff;box-shadow:var(--wpf-shadow-elevated);padding:7px;
}
:where(.member-actions-menu,[role="menu"],.dropdown-menu) :where(a,button,[role="menuitem"]){
  width:100%;min-height:38px;display:flex;align-items:center;gap:9px;padding:8px 10px;
  border:0;border-radius:var(--wpf-radius-sm);background:transparent;color:var(--wpf-color-ink);text-align:left;text-decoration:none;
}
:where(.member-actions-menu,[role="menu"],.dropdown-menu) :where(a,button,[role="menuitem"]):hover{background:var(--wpf-component-muted)}

/* Modal polish */
:where(.modal,.member-modal,.dialog-panel,[role="dialog"]){
  border:1px solid var(--wpf-component-border);border-radius:var(--wpf-radius-xl);
  background:#fff;box-shadow:var(--wpf-shadow-elevated);
}
:where(.member-modal-head,.modal-header){padding:20px 22px;border-bottom:1px solid var(--wpf-component-border)}
:where(.modal-footer,.member-secondary-actions){padding:16px 22px;border-top:1px solid var(--wpf-component-border);background:var(--wpf-component-muted)}

/* Empty, loading and alert states */
:where(.empty-state,.exec-empty){border:1px dashed color-mix(in srgb,var(--wpf-color-primary) 23%,var(--wpf-component-border));border-radius:var(--wpf-radius-lg);background:color-mix(in srgb,var(--wpf-color-primary) 2%,#fff);padding:32px;text-align:center}
:where(.notice,.exec-alert,.onb-alert){border-radius:var(--wpf-radius-md);border:1px solid transparent;padding:12px 14px;font-weight:600}
.wpf-skeleton{position:relative;overflow:hidden;background:#e9edf4;border-radius:var(--wpf-radius-sm);color:transparent!important}
.wpf-skeleton::after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.68),transparent);animation:wpf-skeleton 1.35s infinite}
@keyframes wpf-skeleton{to{transform:translateX(100%)}}

/* Keyboard and reduced-motion quality */
:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:3px solid color-mix(in srgb,var(--wpf-color-primary) 24%,transparent);outline-offset:2px}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

@media(max-width:720px){
  :where(.btn-primary,.btn-secondary,.btn-danger,.exec-btn,.onb-button){min-height:46px}
  :where(.enterprise-table,.fleet-table,.delivery-table,.inventory-table) :where(th,td){padding-top:11px;padding-bottom:11px}
  :where(.modal,.member-modal,.dialog-panel,[role="dialog"]){border-radius:var(--wpf-radius-lg)}
}
