/**
 * IPA UI Standardization 1.0
 * Public interface primitives and compatibility layer.
 */
:root{
  --ipa-ui-control-h:46px;
  --ipa-ui-control-h-sm:36px;
  --ipa-ui-control-h-lg:52px;
  --ipa-ui-radius:8px;
  --ipa-ui-radius-lg:12px;
  --ipa-ui-focus:0 0 0 3px rgba(56,130,246,.22);
  --ipa-ui-shadow:0 8px 24px rgba(7,27,52,.08);
}

/* Typography and rhythm */
.ipa-ds :where(h1,h2,h3,h4,h5,h6){color:var(--ipa-color-navy-900);text-wrap:balance}
.ipa-ds :where(p,li,dd){line-height:1.65}
.ipa-ds :where(small,.ipa-meta,.entry-meta){font-size:.8125rem;color:var(--ipa-color-muted)}

/* Unified buttons */
.ipa-ds :where(.ipa-button,.ipa-ds-button,button,input[type="submit"],input[type="button"],input[type="reset"],.wp-element-button){
  min-height:var(--ipa-ui-control-h);
  width:auto;
  max-width:100%;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.625rem;
  padding:0 1.25rem;
  border:1px solid var(--ipa-color-navy-900);
  border-radius:var(--ipa-ui-radius);
  font-family:var(--ipa-font-sans);
  font-size:.8125rem;
  font-weight:800;
  line-height:1;
  letter-spacing:.075em;
  text-transform:uppercase;
  text-decoration:none;
  white-space:nowrap;
  cursor:pointer;
  transition:background-color .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease,transform .18s ease;
}
.ipa-ds :where(.ipa-button,.ipa-ds-button,button,input[type="submit"],.wp-element-button){background:var(--ipa-color-navy-900);color:#fff!important}
.ipa-ds :where(.ipa-button,.ipa-ds-button,button,input[type="submit"],.wp-element-button):hover{background:var(--ipa-color-navy-800);border-color:var(--ipa-color-navy-800);color:#fff!important;transform:translateY(-1px)}
.ipa-ds :where(.ipa-button,.ipa-ds-button,button,input[type="submit"],input[type="button"],input[type="reset"],.wp-element-button):focus-visible{outline:0;box-shadow:var(--ipa-ui-focus)}
.ipa-ds :where(.ipa-button,.ipa-ds-button,button,input):disabled,
.ipa-ds :where(.ipa-button,.ipa-ds-button)[aria-disabled="true"]{opacity:.45;pointer-events:none;transform:none}
.ipa-ds :where(.ipa-button.ghost,.ipa-ds-button--ghost,.is-style-outline>.wp-element-button){background:transparent;color:var(--ipa-color-gold-600)!important;border-color:var(--ipa-color-gold-500)}
.ipa-ds :where(.ipa-button.ghost,.ipa-ds-button--ghost,.is-style-outline>.wp-element-button):hover{background:var(--ipa-color-gold-500);color:var(--ipa-color-navy-900)!important;border-color:var(--ipa-color-gold-500)}
.ipa-ds .ipa-button--tertiary{min-height:auto;padding:.25rem 0;border:0;background:transparent;color:var(--ipa-color-navy-900)!important;text-transform:none;letter-spacing:0}
.ipa-ds .ipa-button--tertiary:hover{background:transparent;color:var(--ipa-color-gold-600)!important;transform:none}
.ipa-ds .ipa-button--small{min-height:var(--ipa-ui-control-h-sm);padding:0 .875rem;font-size:.75rem}
.ipa-ds .ipa-button svg,.ipa-ds .ipa-ds-button svg{width:16px!important;height:16px!important;flex:0 0 16px;stroke-width:1.8}

/* Hero CTA correction: compact, wider, balanced */
.ipa-ds .ipa-hero .ipa-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.ipa-ds .ipa-hero .ipa-actions>.ipa-button{
  min-width:190px!important;
  width:auto!important;
  height:48px!important;
  min-height:48px!important;
  padding:0 22px!important;
  border-radius:8px!important;
  overflow:hidden;
}
.ipa-ds .ipa-hero .ipa-hero-primary-button{justify-content:space-between!important}
.ipa-ds .ipa-hero .ipa-hero-primary-button .ipa-button-label{display:block!important;visibility:visible!important;opacity:1!important;position:static!important;transform:none!important;clip:auto!important;white-space:nowrap!important}
.ipa-ds .ipa-hero .ipa-hero-primary-button svg{width:16px!important;height:16px!important;margin:0!important;transform:none!important}

/* Forms */
.ipa-ds :where(input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]),select,textarea){
  width:100%;
  min-height:var(--ipa-ui-control-h);
  padding:.72rem .875rem;
  border:1px solid var(--ipa-color-line);
  border-radius:var(--ipa-ui-radius);
  background:#fff;
  color:var(--ipa-color-ink);
  font:500 .9375rem/1.35 var(--ipa-font-sans);
  transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease;
}
.ipa-ds textarea{min-height:132px;resize:vertical}
.ipa-ds :where(input,select,textarea)::placeholder{color:#98a2b3}
.ipa-ds :where(input,select,textarea):focus{outline:0;border-color:var(--ipa-color-navy-800);box-shadow:var(--ipa-ui-focus)}
.ipa-ds :where(input,select,textarea):disabled{background:#f2f4f7;color:#98a2b3;cursor:not-allowed}
.ipa-ds :where(label,.ipa-form-label){display:block;margin-bottom:.42rem;font-size:.8125rem;font-weight:750;color:var(--ipa-color-navy-900)}
.ipa-ds .ipa-field-help{margin-top:.35rem;font-size:.75rem;color:var(--ipa-color-muted)}
.ipa-ds .ipa-field-error{margin-top:.35rem;font-size:.75rem;color:var(--ipa-color-danger)}
.ipa-ds .has-error :where(input,select,textarea),.ipa-ds :where(input,select,textarea)[aria-invalid="true"]{border-color:var(--ipa-color-danger)}
.ipa-ds input[type="checkbox"],.ipa-ds input[type="radio"]{width:17px;height:17px;accent-color:var(--ipa-color-navy-900)}

/* Cards and panels */
.ipa-ds :where(.ipa-ds-card,.ipa-sidebar-card,.ipa-module-card,.ipa-card,.ipa-panel){border:1px solid var(--ipa-color-line);border-radius:var(--ipa-ui-radius-lg);background:#fff;box-shadow:0 4px 16px rgba(7,27,52,.045)}
.ipa-ds :where(.ipa-ds-card,.ipa-sidebar-card,.ipa-module-card,.ipa-card,.ipa-panel):hover{box-shadow:var(--ipa-ui-shadow)}
.ipa-ds .ipa-card-header{padding:1rem 1.25rem;border-bottom:1px solid var(--ipa-color-line)}
.ipa-ds .ipa-card-body{padding:1.25rem}
.ipa-ds .ipa-card-footer{padding:1rem 1.25rem;border-top:1px solid var(--ipa-color-line);background:#fbfcfd}

/* Tables */
.ipa-ds .ipa-table-wrap,.ipa-ds .wp-block-table{overflow-x:auto;border:1px solid var(--ipa-color-line);border-radius:var(--ipa-ui-radius-lg);background:#fff}
.ipa-ds :where(table,.ipa-table){width:100%;border-collapse:collapse;font-size:.875rem}
.ipa-ds :where(table,.ipa-table) th{padding:.8rem 1rem;background:#f6f8fa;border-bottom:1px solid var(--ipa-color-line);color:var(--ipa-color-navy-900);font-size:.72rem;font-weight:800;letter-spacing:.06em;text-align:left;text-transform:uppercase}
.ipa-ds :where(table,.ipa-table) td{padding:.85rem 1rem;border-bottom:1px solid var(--ipa-color-line);vertical-align:middle}
.ipa-ds :where(table,.ipa-table) tr:last-child td{border-bottom:0}
.ipa-ds :where(table,.ipa-table) tbody tr:hover{background:#fbfcfd}

/* Badges, states and alerts */
.ipa-ds .ipa-badge{display:inline-flex;align-items:center;gap:.35rem;padding:.28rem .55rem;border-radius:999px;background:#eef2f6;color:var(--ipa-color-navy-900);font-size:.7rem;font-weight:800;line-height:1.2}
.ipa-ds .ipa-badge--success{background:#eaf7f1;color:var(--ipa-color-success)}
.ipa-ds .ipa-badge--warning{background:#fff6df;color:#996515}
.ipa-ds .ipa-badge--danger{background:#fff0f0;color:var(--ipa-color-danger)}
.ipa-ds .ipa-badge--info{background:#edf5ff;color:#2769a8}
.ipa-ds :where(.ipa-alert,.ipa-ds-alert){padding:1rem 1.1rem;border:1px solid #b8d8fb;border-left:4px solid #3882f6;border-radius:var(--ipa-ui-radius);background:#f2f8ff}
.ipa-ds .ipa-alert--success{border-color:#9dd8bd;border-left-color:var(--ipa-color-success);background:#effaf5}
.ipa-ds .ipa-alert--warning{border-color:#f3ce83;border-left-color:#d99720;background:#fff8e9}
.ipa-ds .ipa-alert--danger{border-color:#f3aaaa;border-left-color:var(--ipa-color-danger);background:#fff3f3}

/* Tabs */
.ipa-ds .ipa-tabs{display:flex;gap:1.25rem;overflow-x:auto;border-bottom:1px solid var(--ipa-color-line)}
.ipa-ds .ipa-tab{position:relative;padding:.8rem 0;border:0;background:transparent;color:var(--ipa-color-muted)!important;font-size:.8125rem;font-weight:750;white-space:nowrap}
.ipa-ds .ipa-tab:hover,.ipa-ds .ipa-tab[aria-selected="true"],.ipa-ds .ipa-tab.is-active{color:var(--ipa-color-navy-900)!important}
.ipa-ds .ipa-tab[aria-selected="true"]::after,.ipa-ds .ipa-tab.is-active::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--ipa-color-gold-500)}

/* Breadcrumb and pagination */
.ipa-ds :where(.ipa-breadcrumb,.breadcrumbs){display:flex;flex-wrap:wrap;align-items:center;gap:.45rem;color:var(--ipa-color-muted);font-size:.78rem}
.ipa-ds :where(.ipa-breadcrumb,.breadcrumbs) a{color:var(--ipa-color-navy-900)}
.ipa-ds :where(.nav-links,.ipa-pagination){display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}
.ipa-ds :where(.nav-links,.ipa-pagination) :where(a,span){min-width:36px;height:36px;display:inline-grid;place-items:center;padding:0 .55rem;border:1px solid var(--ipa-color-line);border-radius:6px;background:#fff;color:var(--ipa-color-navy-900);font-size:.78rem;font-weight:700}
.ipa-ds :where(.nav-links,.ipa-pagination) :where(.current,a:hover){border-color:var(--ipa-color-gold-500);background:var(--ipa-color-gold-500);color:var(--ipa-color-navy-900)}

/* Accordion/details */
.ipa-ds details{border-bottom:1px solid var(--ipa-color-line)}
.ipa-ds details>summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 0;color:var(--ipa-color-navy-900);font-weight:750;cursor:pointer;list-style:none}
.ipa-ds details>summary::-webkit-details-marker{display:none}
.ipa-ds details>summary::after{content:"+";font-size:1.25rem;color:var(--ipa-color-gold-600)}
.ipa-ds details[open]>summary::after{content:"−"}
.ipa-ds details>*:not(summary){padding-bottom:1rem}

/* Progress */
.ipa-ds progress{width:100%;height:8px;border:0;border-radius:999px;overflow:hidden;background:#e9edf1}
.ipa-ds progress::-webkit-progress-bar{background:#e9edf1}.ipa-ds progress::-webkit-progress-value{background:linear-gradient(90deg,var(--ipa-color-navy-900),var(--ipa-color-gold-500))}.ipa-ds progress::-moz-progress-bar{background:linear-gradient(90deg,var(--ipa-color-navy-900),var(--ipa-color-gold-500))}

/* Modal/dialog */
.ipa-ds dialog{max-width:min(520px,calc(100% - 32px));padding:0;border:1px solid var(--ipa-color-line);border-radius:var(--ipa-ui-radius-lg);box-shadow:0 24px 80px rgba(7,27,52,.24)}
.ipa-ds dialog::backdrop{background:rgba(7,27,52,.58);backdrop-filter:blur(2px)}
.ipa-ds .ipa-modal-header,.ipa-ds .ipa-modal-body,.ipa-ds .ipa-modal-footer{padding:1.25rem}.ipa-ds .ipa-modal-header{border-bottom:1px solid var(--ipa-color-line)}.ipa-ds .ipa-modal-footer{display:flex;justify-content:flex-end;gap:.75rem;border-top:1px solid var(--ipa-color-line)}

/* Tooltips */
.ipa-ds [data-tooltip]{position:relative}.ipa-ds [data-tooltip]::after{content:attr(data-tooltip);position:absolute;z-index:30;left:50%;bottom:calc(100% + 9px);transform:translate(-50%,4px);max-width:240px;padding:.55rem .7rem;border-radius:6px;background:var(--ipa-color-navy-900);color:#fff;font-size:.72rem;line-height:1.35;white-space:normal;opacity:0;visibility:hidden;pointer-events:none;transition:.16s ease}.ipa-ds [data-tooltip]:hover::after,.ipa-ds [data-tooltip]:focus-visible::after{opacity:1;visibility:visible;transform:translate(-50%,0)}

/* Navigation and sidebar consistency */
.ipa-ds .main-navigation a,.ipa-ds .ipa-sidebar a{font-weight:650}
.ipa-ds .ipa-sidebar-card>h2,.ipa-ds .ipa-sidebar-card>h3,.ipa-ds .ipa-widget-title,.ipa-ds .ipa-ds-widget-title{font-family:var(--ipa-font-serif);font-size:1.32rem;line-height:1.2;color:var(--ipa-color-navy-900);text-transform:none;letter-spacing:0}

/* Responsive */
@media(max-width:640px){
  .ipa-ds .ipa-hero .ipa-actions{display:grid;grid-template-columns:1fr;gap:10px}
  .ipa-ds .ipa-hero .ipa-actions>.ipa-button{width:100%!important;min-width:0!important}
  .ipa-ds :where(.ipa-button,.ipa-ds-button,button,input[type="submit"],.wp-element-button){white-space:normal;text-align:center}
}
@media(prefers-reduced-motion:reduce){.ipa-ds *{transition:none!important;scroll-behavior:auto!important}}
