/* EHFA FAT-02-P3 — execution screens (additive). */
.ehfa-fat-exec-empty,.ehfa-fat-exec-limit,.ehfa-fat-exec-demo{
  margin:0 0 12px;padding:12px 14px;border:1px solid var(--line-soft);border-radius:12px;background:var(--panel2)
}
.ehfa-fat-exec-demo{color:#9a5b00}
.ehfa-fat-exec-row{margin:0 0 12px}
.ehfa-fat-exec-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.ehfa-fat-exec-pending{color:#9a5b00;font-weight:600}

/* Shared FAT navigation tokens — PLC / I/O Verification is the visual baseline.
   Scoped to FAT nav lists only. Does not change :root font-size or execution controls. */
.ehfa-fat-nav-cards{
  --ehfa-fat-nav-gap:6px;
  --ehfa-fat-nav-pad-y:8px;
  --ehfa-fat-nav-pad-x:12px;
  --ehfa-fat-nav-title:16px;
  --ehfa-fat-nav-meta:12px;
  --ehfa-fat-nav-radius:10px;
  display:grid;
  gap:var(--ehfa-fat-nav-gap);
  width:100%;
  max-width:100%;
  min-width:0;
  box-sizing:border-box;
  margin-top:4px
}
.ehfa-fat-nav-cards > .section-card{min-height:0}
.ehfa-fat-nav-cards > h3.section,
.ehfa-fat-nav-heading{
  margin:10px 0 2px;
  font-size:13px;
  font-weight:700;
  line-height:1.25;
  color:var(--orange)
}
.ehfa-fat-nav-meta{margin:0;line-height:1.25}
/* Inline FAT status words reuse existing section-card-result colors. Do not paint cards. */
.ehfa-fat-status-inline.section-card-result{
  display:inline;
  margin:0;
  padding:0;
  border:0;
  background:none;
  box-shadow:none
}
.ehfa-fat-status-inline .section-card-result-label{
  display:inline;
  margin:0;
  font-size:inherit;
  font-weight:700;
  line-height:inherit
}
.ehfa-fat-status-inline.pass .section-card-result-label{color:#6fcf97}
.ehfa-fat-status-inline.fail .section-card-result-label{color:#ef6a6a}
.ehfa-fat-status-inline.incomplete .section-card-result-label{color:var(--orange)}
.ehfa-fat-status-inline.na .section-card-result-label{color:var(--yellow)}
.ehfa-fat-punch-warn{color:var(--orange);font-weight:700}
.ehfa-fat-nav-context{min-width:0;max-width:100%}
.ehfa-fat-nav-scope{
  margin:2px 0 0;
  font-size:var(--ehfa-fat-nav-meta);
  line-height:1.25;
  font-weight:600;
  overflow-wrap:anywhere;
  word-break:break-word
}
.ehfa-fat-nav-trail{
  margin:4px 0 0;
  font-size:var(--ehfa-fat-nav-meta);
  line-height:1.3;
  overflow-wrap:anywhere;
  word-break:break-word
}
.ehfa-fat-nav-trail-link{
  color:inherit;
  text-decoration:underline;
  text-underline-offset:2px
}
.ehfa-fat-nav-trail-leaf{color:inherit}
.ehfa-fat-nav-sep{opacity:.75}

/* FAT left-nav chrome pin — reuse ESP selection model
   (#navPanel:has(.esp-selection-nav){overflow:hidden} + flex-shrink:0 chrome +
   .esp-grid-wrap{flex:1;overflow-y:auto;min-height:0;padding-right:10px}).
   Do not use position:fixed / preview-sticky / scroll listeners.
   List starts below chrome (no overlay). Desktop only — ≤1024px keeps stacked page scroll. */
@media (min-width:1025px){
  #navPanel:has(.ehfa-fat-nav-cards){overflow:hidden}
  #navPanel:has(.ehfa-fat-nav-cards) > .app-branding-panel,
  #navPanel:has(.ehfa-fat-nav-cards) > .nav-back,
  #navPanel:has(.ehfa-fat-nav-cards) > .nav-panel-header,
  #navPanel:has(.ehfa-fat-nav-cards) > .esp-context-line,
  #navPanel:has(.ehfa-fat-nav-cards) > .commissioning-workflow{
    flex-shrink:0
  }
  #navPanel:has(.ehfa-fat-nav-cards) > .section-list.ehfa-fat-nav-cards,
  #navPanel:has(.ehfa-fat-nav-cards) > .ehfa-fat-nav-cards{
    flex:1 1 auto;
    min-height:0;
    overflow-y:auto;
    overflow-x:hidden;
    padding-right:10px;
    align-content:start;
    grid-auto-rows:max-content
  }
  #navPanel:has(.ehfa-fat-nav-cards) > .section-list.ehfa-fat-nav-cards > .section-card,
  #navPanel:has(.ehfa-fat-nav-cards) > .ehfa-fat-nav-cards > .section-card{
    min-height:min-content;
    height:auto;
    flex-shrink:0;
    overflow:visible
  }
}
@media (max-width:1024px){
  #navPanel:has(.ehfa-fat-nav-cards),
  #navPanel:has(.ehfa-fat-nav-context){overflow:visible}
  #navPanel:has(.ehfa-fat-nav-cards) > .section-list.ehfa-fat-nav-cards,
  #navPanel:has(.ehfa-fat-nav-cards) > .ehfa-fat-nav-cards{
    flex:0 0 auto;
    overflow:visible;
    padding-right:0
  }
}

@media (min-width:1200px){
  .ehfa-fat-nav-cards{gap:var(--ehfa-fat-nav-gap)}
  #detailPanel .ehfa-fat-nav-cards > .section-card,
  #navPanel:has(.section-list.ehfa-fat-nav-cards) .section-list.ehfa-fat-nav-cards > .section-card{
    padding:var(--ehfa-fat-nav-pad-y) var(--ehfa-fat-nav-pad-x);
    min-height:0;
    border-radius:var(--ehfa-fat-nav-radius)
  }
  #detailPanel .ehfa-fat-nav-cards > .section-card h3.section,
  #navPanel:has(.section-list.ehfa-fat-nav-cards) .section-list.ehfa-fat-nav-cards > .section-card h3.section{
    font-size:var(--ehfa-fat-nav-title);
    margin:0 0 2px;
    line-height:1.2;
    overflow-wrap:anywhere;
    word-break:break-word;
    white-space:normal;
    display:block;
    -webkit-line-clamp:unset;
    overflow:visible
  }
  #detailPanel .ehfa-fat-nav-cards > .section-card p,
  #detailPanel .ehfa-fat-nav-cards > .section-card .ehfa-fat-nav-meta,
  #navPanel:has(.section-list.ehfa-fat-nav-cards) .section-list.ehfa-fat-nav-cards > .section-card p,
  #navPanel:has(.section-list.ehfa-fat-nav-cards) .section-list.ehfa-fat-nav-cards > .section-card .section-card-desc{
    margin:0;
    font-size:var(--ehfa-fat-nav-meta);
    line-height:1.2;
    display:block;
    -webkit-line-clamp:unset;
    overflow:visible;
    white-space:normal
  }
  #navPanel:has(.section-list.ehfa-fat-nav-cards) .section-list.ehfa-fat-nav-cards > .section-card .muted{
    margin-top:0;
    font-size:11px;
    line-height:1.2
  }
  #detailPanel .ehfa-fat-nav-cards > .section-card > p,
  #navPanel:has(.section-list.ehfa-fat-nav-cards) .section-list.ehfa-fat-nav-cards > .section-card > p{
    display:inline
  }
  #detailPanel .ehfa-fat-nav-cards > .section-card > p.muted::before,
  #navPanel:has(.section-list.ehfa-fat-nav-cards) .section-list.ehfa-fat-nav-cards > .section-card > p.muted::before{
    content:" · "
  }
  #detailPanel .ehfa-fat-nav-cards > .section-card > p.ehfa-fat-nav-meta,
  #navPanel:has(.section-list.ehfa-fat-nav-cards) .section-list.ehfa-fat-nav-cards > .section-card > p.ehfa-fat-nav-meta{
    display:block
  }
  #navPanel:has(.section-list.ehfa-fat-nav-cards) .section-list.ehfa-fat-nav-cards .section-card-result:not(.ehfa-fat-status-inline),
  #detailPanel .ehfa-fat-nav-cards .section-card-result:not(.ehfa-fat-status-inline){
    margin-top:2px;
    padding-top:2px
  }
  #navPanel:has(.section-list.ehfa-fat-nav-cards) .section-list.ehfa-fat-nav-cards .section-card-result-label,
  #detailPanel .ehfa-fat-nav-cards .section-card-result-label{
    font-size:var(--ehfa-fat-nav-meta);
    line-height:1.2
  }
}

/* 2560 / 4K: stay on the same FAT nav system — do not inherit presentation scale-up */
@media (min-width:2560px){
  .ehfa-fat-nav-cards{
    --ehfa-fat-nav-gap:8px;
    --ehfa-fat-nav-pad-y:10px;
    --ehfa-fat-nav-title:17px
  }
}

/* After compact-density min-height:0 — keep natural card height inside the FAT scroller.
   Grid + overflow:auto + min-height:0 was compressing rows below content. */
@media (min-width:1025px){
  #navPanel:has(.section-list.ehfa-fat-nav-cards) > .section-list.ehfa-fat-nav-cards,
  #navPanel:has(.ehfa-fat-nav-cards) > .ehfa-fat-nav-cards{
    grid-auto-rows:max-content
  }
  #navPanel:has(.section-list.ehfa-fat-nav-cards) > .section-list.ehfa-fat-nav-cards > .section-card,
  #navPanel:has(.ehfa-fat-nav-cards) > .ehfa-fat-nav-cards > .section-card{
    min-height:min-content;
    height:auto;
    flex-shrink:0;
    overflow:visible
  }
}
