.app-header-nav{margin-left:auto;flex-shrink:0;position:relative;display:flex;align-items:center;gap:10px;padding-right:12px}
.app-nav-desktop{display:flex;align-items:center;flex-wrap:nowrap;gap:6px;white-space:nowrap}
.app-nav-mobile{display:none!important;position:relative;margin-left:0}
.app-top-nav-link{width:auto;margin:0;padding:8px 14px;border:1px solid var(--line-soft);border-radius:14px;background:var(--panel2);color:#fff;font-size:12px;font-weight:600;line-height:1.2;text-align:center;cursor:pointer;transition:color .15s ease,border-color .15s ease,background .15s ease,box-shadow .15s ease;box-sizing:border-box;white-space:nowrap}
.app-top-nav-link:hover:not(.active){color:#fff;background:var(--panel3);border-color:rgba(255,116,22,.45);transform:none;box-shadow:none}
.app-top-nav-link.active{color:#fff!important;background:var(--orange)!important;border-color:var(--orange)!important;font-weight:800;box-shadow:0 0 0 1px var(--orange),0 4px 16px rgba(255,116,22,.45)}
.app-role-badge{margin:0;padding:7px 12px;border-color:rgba(255,116,22,.35);background:rgba(255,116,22,.08);color:var(--orange);font-size:11px;font-weight:700;letter-spacing:.02em;cursor:pointer;max-width:160px;overflow:hidden;text-overflow:ellipsis}
.app-role-badge:hover{background:rgba(255,116,22,.14);border-color:rgba(255,116,22,.5)}
.app-mobile-menu-btn{width:auto;margin:0;padding:8px 12px;border:1px solid var(--line-soft);border-radius:10px;background:var(--panel2);color:var(--text);font-size:12px;font-weight:600;line-height:1.2;cursor:pointer;white-space:nowrap}
.app-mobile-menu-btn:hover{border-color:rgba(255,116,22,.45);background:rgba(255,116,22,.06)}
.app-mobile-menu-btn[aria-expanded="true"]{border-color:var(--orange);background:rgba(255,116,22,.10);color:var(--orange)}
.app-mobile-menu-panel{display:none!important;position:absolute;top:calc(100% + 8px);right:0;min-width:188px;padding:6px;border:1px solid var(--line);border-radius:14px;background:var(--panel);box-shadow:0 12px 32px rgba(0,0,0,.35);z-index:120}
.app-mobile-menu-panel.is-open{display:block!important}
.app-mobile-menu-item{display:block;width:100%;margin:0;padding:10px 12px;border:none;border-radius:9px;background:transparent;color:var(--text);font-size:13px;font-weight:600;text-align:left;cursor:pointer;line-height:1.3}
.app-mobile-menu-item:hover{background:rgba(255,116,22,.08);color:var(--orange)}
.app-mobile-menu-item.active{color:#fff;background:var(--orange);font-weight:700}
.app-mobile-menu-item-logout{color:var(--muted);margin-top:2px;border-top:1px solid var(--line-soft);border-radius:0 0 9px 9px;padding-top:12px}
.app-mobile-menu-item-logout:hover{color:#ef5350;background:rgba(239,83,80,.08)}
@media(max-width:640px){
  .app-nav-desktop{display:none!important}
  .app-nav-mobile{display:block!important}
  header.app-header-branded{align-items:center;flex-direction:row;flex-wrap:nowrap}
  .app-role-badge{max-width:120px;font-size:10px;padding:6px 10px}
}
.reports-builder{display:flex;flex-direction:column;gap:8px;flex:1;min-height:0;overflow-x:hidden;overflow-y:auto;padding:0 2px 4px 0}
.reports-builder-field{display:flex;flex-direction:column;align-items:stretch;gap:6px;min-width:0;margin:0;padding:0;background:transparent;border:none}
.reports-builder-label{display:block;font-size:12px;font-weight:600;color:var(--muted);margin:0;line-height:1.2;flex-shrink:0}
.reports-builder select,.reports-builder input[type="text"]{width:100%;box-sizing:border-box;background:var(--bg-deep);border:1px solid var(--line);border-radius:9px;color:var(--text);padding:8px 10px;font-size:13px}
.reports-builder select:disabled{opacity:.55;cursor:not-allowed}
.reports-format-field{min-width:0}
.reports-format-options{display:flex;flex-direction:row;align-items:stretch;gap:6px;width:100%;min-width:0}
.reports-format-card{position:relative;flex:1 1 0;min-width:0;width:auto;height:84px;min-height:84px;max-height:84px;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:8px 4px;margin:0;border:1px solid var(--line-soft);border-radius:12px;background:var(--panel2);color:var(--text);text-align:center;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease;user-select:none;box-sizing:border-box}
.reports-format-card:hover:not(.is-disabled){border-color:rgba(255,116,22,.45);background:rgba(255,116,22,.05)}
.reports-format-card.is-selected{border-color:var(--orange);background:rgba(255,116,22,.10);box-shadow:0 0 0 1px rgba(255,116,22,.38),0 0 14px rgba(255,116,22,.18)}
.reports-format-card.is-disabled{opacity:.55;cursor:not-allowed;background:var(--bg-deep);border-style:dashed;border-color:var(--line)}
.reports-format-card.is-disabled .reports-format-card-title{color:var(--muted)}
.reports-format-card.is-disabled .reports-format-card-desc{color:var(--muted);opacity:.9}
.reports-format-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.reports-format-card-title{display:block;width:100%;font-size:12px;font-weight:800;letter-spacing:.05em;color:var(--orange);line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.reports-format-card-desc{display:block;width:100%;font-size:9px;font-weight:500;color:var(--muted);line-height:1.2;padding:0 1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.reports-format-card-status{display:inline-block;margin-top:1px;padding:2px 6px;border-radius:999px;font-size:8px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;line-height:1.2;white-space:nowrap;flex-shrink:0}
.reports-format-card-status.is-enabled{color:var(--green);background:rgba(76,175,80,.12);border:1px solid rgba(76,175,80,.28)}
.reports-format-card-status.is-soon{color:var(--muted);background:rgba(255,255,255,.04);border:1px solid var(--line-soft)}
.reports-format-card.is-disabled .reports-format-card-status.is-soon{color:var(--muted);opacity:1}
#navPanel:has(.reports-builder){display:flex;flex-direction:column;overflow:hidden;min-height:0;flex:1}
#navPanel:has(.reports-builder)>.nav-back,#navPanel:has(.reports-builder)>.nav-panel-header,#navPanel:has(.reports-builder)>.app-branding-panel{flex-shrink:0}
.nav-panel:has(.reports-builder){max-height:540px;overflow:hidden}
.reports-generate-row{margin-top:4px;flex-shrink:0}
.reports-generate-row .btn{width:100%;margin-top:0}
.reports-status-msg{margin-top:10px;font-size:12px;line-height:1.4}
.reports-status-msg.error{color:var(--red)}
.reports-status-msg.ok{color:var(--green)}
.reports-preview-shell{display:flex;flex-direction:column;gap:12px;min-height:0;max-height:496px;height:100%}
.reports-preview-header{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;justify-content:space-between;flex-shrink:0}
.reports-preview-status{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.reports-preview-status-ok{font-size:12px;font-weight:600;color:var(--green)}
.reports-preview-status-error{font-size:12px;color:var(--red)}
.reports-preview-download-again{padding:0;border:none;background:none;font-size:12px;font-weight:500;color:var(--muted);text-decoration:underline;cursor:pointer}
.reports-preview-download-again:hover{color:var(--orange)}
.reports-preview-meta{font-size:11px;margin-left:auto}
.reports-preview-empty{padding:24px 12px;text-align:center}
.reports-preview-frame{flex:1;min-height:200px;max-height:100%;border:1px solid var(--line-soft);border-radius:14px;background:#fff;color:#111;overflow:auto}
.reports-preview-frame .ehfa-report{padding:24px}
.ehfa-report{font-family:Segoe UI,system-ui,sans-serif;font-size:13px;line-height:1.45;color:#1a1a1a}
.ehfa-report-cover{text-align:center;padding:28px 20px 32px;border-bottom:2px solid #e8e8e8;margin-bottom:24px}
.ehfa-report-cover .ehfa-report-brand{font-size:11px;font-weight:700;letter-spacing:.14em;color:#ff7416;text-transform:uppercase}
.ehfa-report-cover .ehfa-report-project{font-size:26px;font-weight:800;margin:8px 0 4px;color:#111}
.ehfa-report-cover .ehfa-report-type{font-size:16px;font-weight:600;color:#444;margin-bottom:20px}
.ehfa-report-meta-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 20px;text-align:left;max-width:520px;margin:0 auto}
.ehfa-report-meta-item label{display:block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#888;margin-bottom:2px}
.ehfa-report-meta-item span{font-size:13px;font-weight:600;color:#222}
.ehfa-report-section{margin-bottom:22px}
.ehfa-report-section h3{font-size:15px;font-weight:700;margin:0 0 10px;color:#111;border-bottom:1px solid #e0e0e0;padding-bottom:6px}
.ehfa-report-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin-bottom:16px}
.ehfa-report-summary-card{border:1px solid #e0e0e0;border-radius:8px;padding:10px;text-align:center;background:#fafafa}
.ehfa-report-summary-card .count{font-size:22px;font-weight:800;line-height:1.1}
.ehfa-report-summary-card .label{font-size:10px;font-weight:700;text-transform:uppercase;color:#666;margin-top:4px}
.ehfa-report-summary-card.is-verified .count{color:#1a8f3c}
.ehfa-report-summary-card.is-missing .count{color:#d32f2f}
.ehfa-report-summary-card.is-na .count{color:#c9a000}
.ehfa-report-summary-card.is-open .count{color:#666}
.ehfa-report-summary-card.is-spare .count{color:#888}
.ehfa-report-overall{font-size:14px;font-weight:700;padding:10px 14px;border-radius:8px;margin-bottom:18px}
.ehfa-report-overall.pass{background:#e8f5e9;color:#1b5e20;border:1px solid #a5d6a7}
.ehfa-report-overall.incomplete{background:rgba(255,116,22,.12);color:var(--orange);border:1px solid rgba(255,116,22,.45);box-shadow:0 0 14px rgba(255,116,22,.14)}
.ehfa-report-overall.fail{background:#ffebee;color:#b71c1c;border:1px solid #ef9a9a}
.ehfa-report-result{font-weight:800;letter-spacing:.03em}
.ehfa-report-result.pass{color:#1b5e20}
.ehfa-report-result.incomplete{color:var(--orange)}
.ehfa-report-result.fail{color:#b71c1c}
.ehfa-report-result.not-recorded{color:#777;font-weight:700}
.ehfa-report-result.not-performed{color:#777;font-weight:700}
.ehfa-report-subtitle{font-size:13px;font-weight:700;margin:16px 0 8px;color:var(--orange)}
.ehfa-report-section-intro{font-size:12px;color:var(--muted);margin:-4px 0 12px;line-height:1.45}
.ehfa-cabinet-protocol{margin-bottom:24px;padding-bottom:12px}
.ehfa-cabinet-protocol-page-break{page-break-before:always;margin-top:28px;padding-top:20px;border-top:2px solid #e8e8e8}
.ehfa-report-page-break{page-break-before:always;margin-top:28px;padding-top:20px;border-top:2px solid #e8e8e8}
.ehfa-cabinet-protocol-intro{margin-top:0;margin-bottom:16px}
.ehfa-cabinet-protocol-cabinet{font-size:16px;font-weight:700;color:#ff7416;margin:0 0 14px;padding-bottom:8px;border-bottom:2px solid #ff7416;line-height:1.3}
.ehfa-report-esp-tag{font-size:12px;font-weight:700;color:#666;margin:0 0 8px;letter-spacing:.04em}
.ehfa-cabinet-protocol-section{margin-bottom:16px}
.ehfa-cabinet-protocol-section-title{font-size:13px;font-weight:700;margin:0 0 8px;color:#222}
.ehfa-protocol-meta-table th{width:110px;font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:#666;background:#fafafa}
.ehfa-protocol-summary-table th{font-size:10px}
.ehfa-protocol-items-table{margin-top:8px}
.ehfa-report-table{width:100%;border-collapse:collapse;font-size:12px;margin-bottom:12px}
.ehfa-report-table th,.ehfa-report-table td{border:1px solid #ddd;padding:7px 9px;text-align:left;vertical-align:top}
.ehfa-vacuum-results-table th{width:140px;font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:#666;background:#fafafa}
.ehfa-vacuum-summary-table{font-size:10px}
.ehfa-vacuum-summary-table th{font-size:9px}
.ehfa-vacuum-executive-block{margin:14px 0 18px;padding:12px 14px;border:1px solid #e8e8e8;border-radius:10px;background:#fffbf7}
.ehfa-vacuum-executive-result{margin:0 0 10px;font-size:13px}
.ehfa-vacuum-executive-table th{width:140px;font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:#666;background:#fafafa}
.ehfa-cabinet-summary-block{margin-bottom:18px;padding:12px 14px;border:1px solid #e8e8e8;border-radius:10px;background:#fafafa}
.ehfa-cabinet-summary-title{font-size:14px;font-weight:700;color:#ff7416;margin:0 0 8px}
.ehfa-cabinet-summary-overall{margin:0;font-size:12px}
.ehfa-cabinet-summary-overall-bottom{margin-top:12px}
.ehfa-cabinet-summary-table th{font-size:9px}
.ehfa-executive-section-table th{font-size:9px}
.ehfa-traceability-table,.ehfa-plc-io-table{font-size:10px}
.ehfa-traceability-table th,.ehfa-plc-io-table th{font-size:8px}
.ehfa-report-table th{background:#f3f3f3;font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:#555}
.ehfa-device-records-table{font-size:11px}
.ehfa-device-records-table th{font-size:9px}
.ehfa-report-status{display:inline-block;padding:2px 8px;border-radius:999px;font-size:10px;font-weight:700;text-transform:uppercase}
.ehfa-report-status.verified{background:#e8f5e9;color:#1b5e20}
.ehfa-report-status.missing{background:#ffebee;color:#b71c1c}
.ehfa-report-status.not_applicable{background:#fff8e1;color:#8a6d00}
.ehfa-report-status.unselected{background:#f5f5f5;color:#555}
.ehfa-report-status.spare{background:#eceff1;color:#546e7a}
.ehfa-report-stage{display:inline-block;padding:2px 7px;border-radius:999px;font-size:9px;font-weight:700;text-transform:uppercase;white-space:nowrap}
.ehfa-report-stage.done{background:#e8f5e9;color:#1b5e20}
.ehfa-report-stage.partial{background:rgba(255,116,22,.14);color:#c45a00}
.ehfa-report-stage.pending{background:#f5f5f5;color:#666}
.ehfa-report-stage.not_applicable{background:#eceff1;color:#546e7a}
.ehfa-report-stage.missing{background:#ffebee;color:#b71c1c}
.ehfa-report-esp-heading{font-size:14px;font-weight:700;color:#ff7416;margin:18px 0 8px}
.ehfa-certification-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 16px;margin:16px 0 20px}
.ehfa-certification-meta label{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:#666;margin-bottom:2px}
.ehfa-certification-meta span{font-size:13px;font-weight:600;color:#1a1a1a}
.ehfa-certification-final-label{margin:18px 0 8px;text-align:center;font-size:12px;font-weight:700;letter-spacing:.12em;color:#666}
.ehfa-certification-final{font-size:42px;line-height:1.1;text-align:center;padding:18px 12px;margin:0 0 14px}
.ehfa-certification-message{text-align:center;max-width:640px;margin:0 auto 18px;color:#444}
.ehfa-signature-page .ehfa-signature-block{margin:22px 0 8px}
.ehfa-signature-role{font-size:13px;font-weight:700;margin-bottom:14px}
.ehfa-signature-line{border-bottom:1px solid #aaa;height:28px;margin-bottom:6px}
.ehfa-signature-date-line{border-bottom:1px solid #aaa;width:180px;height:18px;margin:10px 0 4px}
.ehfa-signature-caption{font-size:10px;color:#666}
.ehfa-signature-footer{margin-top:28px;font-size:11px}
@media print{
  body *{visibility:hidden}
  .ehfa-report,.ehfa-report *{visibility:visible}
  .ehfa-report{position:absolute;left:0;top:0;width:100%}
  .reports-preview-toolbar{display:none}
}
