.epm-workspace {
  --epm-brand: var(--brand, #9f2444);
  --epm-brand-dark: #7f1734;
  --epm-border: #eadde0;
  --epm-text: #252126;
  --epm-muted: #766b70;
  --epm-soft: #fbf6f7;
  color: var(--epm-text);
  display: grid;
  gap: 14px;
  min-width: 0;
}

.epm-workspace * { box-sizing: border-box; }
.epm-workspace button,
.epm-workspace input,
.epm-workspace select,
.epm-workspace textarea { font: inherit; }
.epm-workspace .sr-only {
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  clip: rect(0, 0, 0, 0);
}

.epm-head,
.epm-card > header {
  align-items: flex-start;
  display: flex;
  gap: 20px;
  justify-content: space-between;
}
.epm-head {
  align-items: center;
  justify-content: flex-end;
  min-height: 40px;
  min-width: 0;
}
.epm-head nav,
.epm-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}
.epm-head button,
.epm-actions button,
.epm-drawer button {
  background: #fff;
  border: 1px solid #decfd3;
  border-radius: 7px;
  color: #4d3e43;
  cursor: pointer;
  min-height: 34px;
  padding: 7px 11px;
}
.epm-head button:hover,
.epm-actions button:hover {
  border-color: var(--epm-brand);
  color: var(--epm-brand);
}
.epm-head button.primary,
.epm-drawer button.primary {
  background: var(--epm-brand);
  border-color: var(--epm-brand);
  color: #fff;
}
.epm-head button.primary:hover,
.epm-drawer button.primary:hover {
  background: var(--epm-brand-dark);
  border-color: var(--epm-brand-dark);
  color: #fff;
}
.epm-head button:focus-visible,
.epm-actions button:focus-visible,
.epm-tabs button:focus-visible,
.epm-drawer button:focus-visible {
  outline: 3px solid rgba(159, 36, 68, .2);
  outline-offset: 2px;
}
.epm-actions button:disabled {
  cursor: not-allowed;
  opacity: .45;
}

.epm-boundary {
  align-items: center;
  background: #fff8ee;
  border: 1px solid #f0d9b9;
  border-radius: 9px;
  display: grid;
  font-size: 12px;
  gap: 8px 18px;
  grid-template-columns: minmax(240px, auto) minmax(0, 1fr);
  padding: 11px 14px;
}
.epm-boundary b { color: #8c5114; }
.epm-boundary span { color: #765f4a; line-height: 1.55; }
.epm-boundary > div { display: grid; gap: 3px; }
.epm-boundary small { color: #9b744f; }

.epm-kpis {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.epm-kpis article {
  align-items: center;
  background: #fff;
  border: 1px solid var(--epm-border);
  border-radius: 10px;
  box-shadow: 0 5px 16px rgba(80, 45, 55, .035);
  display: flex;
  gap: 12px;
  padding: 14px 16px;
}
.epm-kpis article > i {
  align-items: center;
  background: #f8e8ec;
  border-radius: 50%;
  color: var(--epm-brand);
  display: flex;
  flex: 0 0 40px;
  font-style: normal;
  font-weight: 900;
  height: 40px;
  justify-content: center;
  width: 40px;
}
.epm-kpis article > div { display: grid; gap: 2px; min-width: 0; }
.epm-kpis article.ok > i { background: #e9f7ef; color: #248453; }
.epm-kpis article.mapping > i { background: #fff2dd; color: #c77916; }
.epm-kpis article.warn > i { background: #fff0f1; color: #bd2d49; }
.epm-kpis span { color: var(--epm-muted); font-size: 12px; }
.epm-kpis b { color: #35272c; font-size: 24px; }
.epm-kpis small { color: #94888c; }
.epm-kpis article.warn b { color: #c77916; }

.epm-tabs {
  border-bottom: 1px solid #ead9dc;
  display: flex;
  gap: 4px;
}
.epm-tabs button {
  background: transparent;
  border: 0;
  border-bottom: 2px solid transparent;
  color: var(--epm-muted);
  cursor: pointer;
  padding: 9px 15px;
}
.epm-tabs button:hover { color: var(--epm-brand); }
.epm-tabs button.active {
  border-bottom-color: var(--epm-brand);
  color: var(--epm-brand);
  font-weight: 800;
}

.epm-filter-bar {
  align-items: center;
  background: #fff;
  border: 1px solid var(--epm-border);
  border-radius: 10px;
  display: grid;
  gap: 8px;
  grid-template-columns: minmax(250px, 1.5fr) repeat(5, minmax(108px, .65fr)) auto auto;
  padding: 11px;
}
.epm-filter-bar label { min-width: 0; }
.epm-filter-bar input,
.epm-filter-bar select {
  background: #fff;
  border: 1px solid #e2d7da;
  border-radius: 7px;
  color: #4d4346;
  height: 36px;
  min-width: 0;
  padding: 0 10px;
  width: 100%;
}
.epm-filter-bar input:focus,
.epm-filter-bar select:focus {
  border-color: #c88698;
  outline: 3px solid rgba(159, 36, 68, .1);
}
.epm-search { position: relative; }
.epm-search input { padding-right: 38px; }
.epm-search button {
  background: transparent;
  border: 0;
  color: var(--epm-brand);
  cursor: pointer;
  height: 34px;
  position: absolute;
  right: 1px;
  top: 1px;
  width: 36px;
}
.epm-exception-filter,
.epm-filter-reset {
  background: #fff;
  border: 1px solid #decfd3;
  border-radius: 7px;
  color: #6f4f58;
  cursor: pointer;
  height: 36px;
  padding: 0 11px;
  white-space: nowrap;
}
.epm-exception-filter.active {
  background: #fff1f3;
  border-color: var(--epm-brand);
  color: var(--epm-brand);
  font-weight: 800;
}
.epm-filter-reset { border-color: transparent; color: #8a7d82; }

.epm-card {
  background: #fff;
  border: 1px solid var(--epm-border);
  border-radius: 10px;
  box-shadow: 0 5px 16px rgba(80, 45, 55, .035);
  min-width: 0;
  overflow: hidden;
}
.epm-card > header {
  border-bottom: 1px solid #f0e7e9;
  padding: 15px 17px;
}
.epm-card > header > small { color: #8a7d82; flex: 0 0 auto; }
.epm-card h2 { font-size: 16px; margin: 0 0 4px; }
.epm-card header p {
  color: var(--epm-muted);
  font-size: 13px;
  line-height: 1.55;
  margin: 0;
}

.epm-table-wrap { overflow: auto; }
.epm-table-wrap table {
  border-collapse: collapse;
  min-width: 1280px;
  width: 100%;
}
.epm-table-wrap th {
  background: #fcf7f8;
  border-bottom: 1px solid #eee2e5;
  color: #62565b;
  font-size: 11px;
  font-weight: 800;
  padding: 10px 12px;
  text-align: left;
}
.epm-table-wrap td {
  border-bottom: 1px solid #f0e8ea;
  font-size: 12px;
  padding: 12px;
  vertical-align: top;
}
.epm-table-wrap tbody tr:hover td { background: #fffafb; }
.epm-table-wrap tbody tr.has-exception td:first-child { box-shadow: inset 3px 0 #d4556c; }
.epm-table-wrap td b,
.epm-table-wrap td strong {
  color: #41383c;
  display: block;
  max-width: 320px;
}
.epm-table-wrap td small {
  color: #8a7d82;
  display: block;
  margin-top: 4px;
}
.epm-warn-text {
  color: #b9650d;
  font-style: normal;
  font-weight: 800;
}

.epm-product-cell { align-items: center; display: flex; gap: 9px; min-width: 210px; }
.epm-product-cell > img,
.epm-product-cell > i {
  align-items: center;
  background: #f8ecef;
  border: 1px solid #eee0e4;
  border-radius: 7px;
  color: var(--epm-brand);
  display: flex;
  flex: 0 0 42px;
  font-style: normal;
  font-weight: 900;
  height: 42px;
  justify-content: center;
  object-fit: cover;
  width: 42px;
}
.epm-product-cell > div { min-width: 0; }
.epm-sale-status {
  background: #f2f0f1;
  border-radius: 6px;
  color: #6f6568;
  display: inline-flex;
  padding: 4px 8px;
  white-space: nowrap;
}
.epm-sale-status.is-active { background: #e9f7ef; color: #248453; }

.epm-chip,
.epm-check {
  background: #f5edef;
  border-radius: 999px;
  color: #785f67;
  display: inline-flex;
  font-size: 11px;
  font-style: normal;
  padding: 3px 8px;
}
.epm-chip.is-positive,
.epm-check.pass { background: #e9f7ef; color: #248453; }
.epm-chip.is-warn { background: #fff3df; color: #a86718; }
.epm-chip.is-risk { background: #fff0f1; color: #b82845; }
.epm-check.blocked { background: #fff2e6; color: #b9650d; }

.epm-table-footer {
  align-items: center;
  border-top: 1px solid #f0e8ea;
  color: #7d7075;
  display: flex;
  justify-content: space-between;
  padding: 10px 13px;
}
.epm-table-footer nav { align-items: center; display: flex; gap: 8px; }
.epm-table-footer button {
  background: #fff;
  border: 1px solid #e2d7da;
  border-radius: 6px;
  color: #5f5055;
  cursor: pointer;
  min-height: 30px;
  padding: 5px 10px;
}
.epm-table-footer button:disabled { cursor: not-allowed; opacity: .45; }
.epm-table-footer b { color: var(--epm-brand); }

.epm-empty,
.epm-loading,
.epm-error {
  color: #8a7d82;
  padding: 34px;
  text-align: center;
}
.epm-error {
  background: #fff7f7;
  border: 1px solid #efc9c9;
  border-radius: 10px;
  color: #a64a4a;
  display: grid;
  gap: 6px;
}

.epm-label-types {
  border-bottom: 1px solid #f0e7e9;
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  padding: 12px 16px;
}
.epm-label-types article {
  background: var(--epm-soft);
  border: 1px solid var(--epm-border);
  border-radius: 8px;
  padding: 10px;
}
.epm-label-types b,
.epm-label-types small { display: block; }
.epm-label-types small { color: #8a7d82; margin-top: 3px; }

.epm-drawer-backdrop {
  background: rgba(35, 23, 27, .38);
  display: flex;
  inset: 0;
  justify-content: flex-end;
  position: fixed;
  z-index: 80;
}
.epm-drawer {
  background: #fff;
  box-shadow: -14px 0 34px rgba(64, 34, 43, .18);
  display: flex;
  flex-direction: column;
  height: 100%;
  width: min(620px, 94vw);
}
.epm-drawer > header {
  align-items: flex-start;
  border-bottom: 1px solid #eee2e5;
  display: flex;
  justify-content: space-between;
  padding: 19px 20px;
}
.epm-drawer > header span {
  color: var(--epm-brand);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .13em;
}
.epm-drawer h2 { font-size: 19px; margin: 4px 0; }
.epm-drawer header p { color: var(--epm-muted); margin: 0; }
.epm-drawer > form {
  display: flex;
  flex: 1;
  flex-direction: column;
  min-height: 0;
}
.epm-drawer main {
  display: grid;
  gap: 13px;
  overflow: auto;
  padding: 18px 20px;
}
.epm-drawer label {
  color: #675b60;
  display: grid;
  font-size: 12px;
  gap: 6px;
}
.epm-drawer input,
.epm-drawer select,
.epm-drawer textarea {
  background: #fff;
  border: 1px solid #e2d7da;
  border-radius: 7px;
  color: #40363a;
  padding: 9px 10px;
  width: 100%;
}
.epm-drawer input:focus,
.epm-drawer select:focus,
.epm-drawer textarea:focus {
  border-color: #c88698;
  outline: 3px solid rgba(159, 36, 68, .12);
}
.epm-form-grid {
  display: grid;
  gap: 12px;
  grid-template-columns: 1fr 1fr;
}
.epm-form-note {
  background: var(--epm-soft);
  border: 1px solid var(--epm-border);
  border-radius: 8px;
  padding: 12px 13px;
}
.epm-form-note b { color: var(--epm-brand-dark); }
.epm-form-note p {
  color: var(--epm-muted);
  font-size: 12px;
  line-height: 1.55;
  margin: 4px 0 0;
}
.epm-drawer footer {
  border-top: 1px solid #eee2e5;
  display: flex;
  gap: 8px;
  justify-content: flex-end;
  padding: 13px 20px;
}

.epm-detail-drawer { width: min(720px, 96vw); }
.epm-detail-drawer > main { align-content: start; }
.epm-detail-error {
  background: #fff7f7;
  color: #a64a4a;
  display: grid;
  gap: 5px;
  margin: 18px 20px;
  padding: 14px;
}
.epm-detail-product {
  align-items: center;
  display: flex;
  gap: 13px;
  padding: 2px 0 4px;
}
.epm-detail-product > img,
.epm-detail-product > i {
  align-items: center;
  background: #f8ecef;
  border: 1px solid #eadde0;
  border-radius: 9px;
  color: var(--epm-brand);
  display: flex;
  flex: 0 0 68px;
  font-size: 22px;
  font-style: normal;
  font-weight: 900;
  height: 68px;
  justify-content: center;
  object-fit: cover;
  width: 68px;
}
.epm-detail-product > div { min-width: 0; }
.epm-detail-product h3 { font-size: 17px; margin: 0; }
.epm-detail-product p { color: #83767a; margin: 5px 0 8px; }
.epm-detail-product > div > div { display: flex; flex-wrap: wrap; gap: 6px; }
.epm-detail-section {
  background: #fff;
  border: 1px solid var(--epm-border);
  border-radius: 9px;
  overflow: hidden;
}
.epm-detail-section > header {
  align-items: center;
  background: #fffafb;
  border-bottom: 1px solid #f0e7e9;
  display: flex;
  gap: 10px;
  justify-content: space-between;
  padding: 11px 13px;
}
.epm-detail-section > header h3 { font-size: 14px; margin: 0; }
.epm-detail-section > header small { color: #8a7d82; }
.epm-detail-section > p {
  color: #84777b;
  font-size: 12px;
  line-height: 1.55;
  margin: 0;
  padding: 0 13px 12px;
}
.epm-detail-section dl {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0;
  padding: 4px 13px 10px;
}
.epm-detail-section dl > div { border-bottom: 1px dashed #eee4e7; padding: 9px 6px; }
.epm-detail-section dt { color: #8a7d82; font-size: 11px; margin-bottom: 3px; }
.epm-detail-section dd { color: #43383c; font-size: 12px; font-weight: 700; margin: 0; overflow-wrap: anywhere; }
.epm-platform-skus { display: flex; flex-wrap: wrap; gap: 7px; padding: 0 13px 12px; }
.epm-platform-skus > span {
  background: #fbf6f7;
  border: 1px solid #eadde0;
  border-radius: 7px;
  display: grid;
  gap: 2px;
  padding: 7px 9px;
}
.epm-platform-skus small { color: #8a7d82; }
.epm-mapping-flow {
  align-items: stretch;
  display: grid;
  gap: 8px;
  grid-template-columns: 1fr auto 1fr auto 1fr;
  padding: 12px 13px 10px;
}
.epm-mapping-flow > div {
  background: #fbf6f7;
  border: 1px solid #eadde0;
  border-radius: 8px;
  display: grid;
  gap: 4px;
  min-width: 0;
  padding: 9px;
}
.epm-mapping-flow > div small { color: #8a7d82; }
.epm-mapping-flow > div b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.epm-mapping-flow > i { align-items: center; color: var(--epm-brand); display: flex; font-style: normal; }
.epm-difference-table { display: grid; padding: 6px 13px 10px; }
.epm-difference-table > div {
  display: grid;
  gap: 8px;
  grid-template-columns: minmax(90px, .55fr) minmax(0, 1fr) minmax(0, 1fr);
}
.epm-difference-table > div > * { border-bottom: 1px solid #f0e7e9; font-size: 12px; padding: 8px 5px; overflow-wrap: anywhere; }
.epm-difference-table > .head > * { background: #fcf7f8; color: #6d5f64; font-size: 11px; }
.epm-detail-empty { color: #8a7d82; font-size: 12px; padding: 18px 13px; text-align: center; }
.epm-timeline { display: grid; padding: 5px 13px 12px; }
.epm-timeline article {
  display: grid;
  gap: 9px;
  grid-template-columns: 14px minmax(0, 1fr);
  padding: 9px 0;
  position: relative;
}
.epm-timeline article:not(:last-child)::after {
  background: #e5d8dc;
  bottom: -5px;
  content: "";
  left: 5px;
  position: absolute;
  top: 20px;
  width: 1px;
}
.epm-timeline article > i {
  background: #b9adb1;
  border: 3px solid #f5edef;
  border-radius: 50%;
  height: 11px;
  margin-top: 3px;
  position: relative;
  width: 11px;
  z-index: 1;
}
.epm-timeline article > i.ok { background: #2d9b64; border-color: #e5f5ec; }
.epm-timeline article > i.risk { background: #c6314d; border-color: #ffe8ec; }
.epm-timeline article > div { display: grid; gap: 2px; min-width: 0; }
.epm-timeline article span,
.epm-timeline article small { color: #8a7d82; font-size: 11px; line-height: 1.45; }

.epm-preparation-drawer { width: min(960px, 98vw); }
.epm-preparation-drawer > main { align-content: start; background: #fbf7f8; }
.epm-prep-hero {
  align-items: center;
  background: linear-gradient(135deg, #fff 0%, #fff6f8 100%);
  border: 1px solid #eadce0;
  border-radius: 11px;
  display: grid;
  gap: 16px;
  grid-template-columns: auto minmax(0, 1fr) auto;
  padding: 16px;
}
.epm-prep-hero.ready { background: linear-gradient(135deg, #fff 0%, #f3fbf6 100%); border-color: #cfe8d9; }
.epm-prep-ring {
  align-items: center;
  background: conic-gradient(var(--epm-brand) calc(var(--progress) * 1%), #f0e4e7 0);
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  height: 82px;
  justify-content: center;
  position: relative;
  width: 82px;
}
.epm-prep-ring::before { background: #fff; border-radius: 50%; content: ""; inset: 7px; position: absolute; }
.epm-prep-ring b,
.epm-prep-ring small { position: relative; z-index: 1; }
.epm-prep-ring b { color: var(--epm-brand-dark); font-size: 18px; }
.epm-prep-ring small { color: #8b7e83; font-size: 10px; }
.epm-prep-hero > div:nth-child(2) { min-width: 0; }
.epm-prep-hero > div:nth-child(2) > span { color: #9b7d86; font-size: 10px; letter-spacing: .08em; }
.epm-prep-hero h3 { color: #3e3236; font-size: 18px; margin: 5px 0; }
.epm-prep-hero p { color: #7f7176; line-height: 1.55; margin: 0; }
.epm-prep-section { overflow: visible; }
.epm-prep-checklist { display: grid; gap: 8px; grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 12px; }
.epm-prep-checklist article {
  align-items: center;
  background: #fff;
  border: 1px solid #eee3e6;
  border-radius: 8px;
  display: grid;
  gap: 9px;
  grid-template-columns: 26px minmax(0, 1fr) auto;
  padding: 10px;
}
.epm-prep-checklist article > i {
  align-items: center;
  background: #fff0e2;
  border-radius: 50%;
  color: #c47420;
  display: flex;
  font-style: normal;
  font-weight: 900;
  height: 24px;
  justify-content: center;
  width: 24px;
}
.epm-prep-checklist article.complete > i { background: #e7f6ed; color: #278454; }
.epm-prep-checklist article > div { display: grid; gap: 3px; min-width: 0; }
.epm-prep-checklist article small { color: #897b80; line-height: 1.4; }
.epm-prep-checklist article > span { color: #bd7022; font-size: 11px; }
.epm-prep-checklist article.complete > span { color: #278454; }
.epm-preflight-list { display: grid; gap: 9px; padding: 12px; }
.epm-preflight-list > article { border: 1px solid #eee3e6; border-radius: 8px; overflow: hidden; }
.epm-preflight-list > article > header {
  align-items: center;
  background: #fffafb;
  display: flex;
  justify-content: space-between;
  padding: 10px 11px;
}
.epm-preflight-list > article > header > div { display: grid; gap: 3px; }
.epm-preflight-list > article > header small { color: #887a7f; }
.epm-preflight-plan {
  display: grid;
  gap: 1px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  padding: 1px 0;
}
.epm-preflight-plan span { background: #fbf6f7; color: #8a7d82; display: grid; font-size: 10px; gap: 3px; padding: 8px 10px; }
.epm-preflight-plan b { color: #55484d; font-size: 11px; overflow-wrap: anywhere; }
.epm-preflight-blockers { display: flex; flex-wrap: wrap; gap: 6px; padding: 9px 10px 10px; }
.epm-preflight-blockers span { background: #fff1e5; border-radius: 999px; color: #a9611c; font-size: 10px; padding: 4px 7px; }
.epm-preflight-blockers span.provider_handoff { background: #f3edf9; color: #73508e; }
.epm-preflight-blockers span.live_execution_approval { background: #fff0f2; color: #ad3f55; }
.epm-preflight-blockers span.complete { background: #e9f7ef; color: #257b50; }
.epm-prep-contract-grid { display: grid; gap: 12px; grid-template-columns: 1.45fr 1fr; padding: 12px; }
.epm-prep-contract-grid h4 { color: #594b50; font-size: 12px; margin: 0 0 8px; }
.epm-field-contract { border: 1px solid #eee3e6; border-radius: 8px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); overflow: hidden; }
.epm-field-contract > span { display: grid; gap: 2px; padding: 8px 9px; position: relative; }
.epm-field-contract > span:nth-child(4n+2),
.epm-field-contract > span:nth-child(4n+3) { background: #fcf8f9; }
.epm-field-contract b { font-size: 11px; padding-right: 35px; }
.epm-field-contract small { color: #8a7d82; font-size: 9px; overflow-wrap: anywhere; }
.epm-field-contract em { color: #9b8d92; font-size: 9px; font-style: normal; position: absolute; right: 8px; top: 8px; }
.epm-policy-list { display: grid; gap: 7px; }
.epm-policy-list > span { align-items: center; border: 1px solid #eee3e6; border-radius: 8px; display: grid; gap: 7px; grid-template-columns: 25px minmax(0, 1fr); padding: 9px; }
.epm-policy-list i { align-items: center; background: var(--epm-soft); border-radius: 50%; color: var(--epm-brand); display: flex; font-style: normal; font-weight: 800; grid-row: span 2; height: 23px; justify-content: center; width: 23px; }
.epm-policy-list b { font-size: 11px; }
.epm-policy-list small { color: #8a7d82; font-size: 10px; }
.epm-runtime-contract { background: #fffafb; border-top: 1px solid #eee3e6; display: flex; flex-wrap: wrap; gap: 7px 14px; padding: 10px 12px; }
.epm-runtime-contract b { color: var(--epm-brand-dark); }
.epm-runtime-contract span { color: #7f7176; font-size: 11px; }
.epm-dependency-grid { display: grid; gap: 8px; grid-template-columns: repeat(3, minmax(0, 1fr)); padding: 12px; }
.epm-dependency-grid article { align-items: center; border: 1px solid #eee3e6; border-radius: 8px; display: grid; gap: 8px; grid-template-columns: 26px minmax(0, 1fr); padding: 9px; }
.epm-dependency-grid article > i { align-items: center; background: #f3edf9; border-radius: 6px; color: #73508e; display: flex; font-size: 10px; font-style: normal; height: 25px; justify-content: center; }
.epm-dependency-grid article > div { display: grid; gap: 3px; }
.epm-dependency-grid b { font-size: 11px; }
.epm-dependency-grid small { color: #8a7d82; font-size: 10px; line-height: 1.35; }

@media (max-width: 1100px) {
  .epm-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .epm-boundary { grid-template-columns: 1fr; }
  .epm-label-types { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .epm-filter-bar { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .epm-filter-bar .epm-search { grid-column: span 2; }
  .epm-dependency-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 720px) {
  .epm-head nav {
    flex-wrap: nowrap;
    justify-content: flex-start;
    overflow-x: auto;
    width: 100%;
  }
  .epm-head button { flex: 0 0 auto; }
  .epm-kpis,
  .epm-label-types,
  .epm-form-grid { grid-template-columns: 1fr; }
  .epm-filter-bar { grid-template-columns: 1fr; }
  .epm-filter-bar .epm-search { grid-column: auto; }
  .epm-table-footer { align-items: flex-start; flex-direction: column; gap: 8px; }
  .epm-detail-section dl { grid-template-columns: 1fr; }
  .epm-mapping-flow { grid-template-columns: 1fr; }
  .epm-mapping-flow > i { justify-content: center; transform: rotate(90deg); }
  .epm-prep-hero { grid-template-columns: auto minmax(0, 1fr); }
  .epm-prep-hero > .epm-chip { grid-column: 1 / -1; justify-self: start; }
  .epm-prep-checklist,
  .epm-prep-contract-grid,
  .epm-dependency-grid,
  .epm-field-contract,
  .epm-preflight-plan { grid-template-columns: 1fr; }
  .epm-preparation-drawer footer { flex-wrap: wrap; }
}
