/* Backend-owned view styles (Forge). Loaded after Nova's app.css/report.css on server-rendered pages; every rule is scoped
   to markup generated in lib/* (report, free scan, forgot/reset, contact, deletion), never to Nova's layout chrome. */
/* :where() = zero specificity, so Nova's report.css (.btn-pdf, .results-header) always wins; these are the fallback.
   Download PDF report: primary action, 44px target, visible focus, never fixed/overlaying content. */
:where(.report-actions){display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:12px 0 4px}
:where(.btn-pdf){display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;box-sizing:border-box;padding:10px 18px;border-radius:8px;border:2px solid #0b4f5c;background:#0b4f5c;color:#fff;font-weight:700;font-size:1rem;line-height:1.2;text-decoration:none;text-align:center}
:where(.btn-pdf):hover{background:#073a44;border-color:#073a44;color:#fff}
:where(.btn-pdf):focus-visible{outline:3px solid #111;outline-offset:3px;box-shadow:0 0 0 6px #fff}
.fg-link{display:inline-flex;align-items:center;min-height:44px;padding:0 4px;box-sizing:border-box}
@media (prefers-reduced-motion:no-preference){:where(.btn-pdf){transition:background-color .15s,border-color .15s}}
@media (max-width:480px){:where(.btn-pdf){width:100%}}
/* Report: long URLs and code wrap; tables scroll inside a labelled region; readable chips; 44px disclosure targets. */
.fg-report,.fg-report main{overflow-wrap:anywhere}
.fg-report img,.fg-report svg{max-width:100%;height:auto}
.fg-report pre{white-space:pre-wrap;word-break:break-word;max-width:100%}
.fg-report code{word-break:break-word}
.fg-report .tablewrap{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch}
.fg-report .tablewrap:focus-visible{outline:3px solid #111;outline-offset:2px}
.fg-report .sev-chip,.fg-report th .sev-chip{font-size:.75rem}
.fg-report details>summary{min-height:44px;box-sizing:border-box;padding:10px 0;cursor:pointer}
.fg-report .issue a,.fg-report .scope a,.fg-report td a{overflow-wrap:anywhere}
.fg-report .small a[href^="http"]{display:inline-flex;align-items:center;min-height:44px}
.fg-report td a{display:inline-block;padding:12px 0}
/* Forms generated in lib/* (free scan, forgot/reset, deletion): 44px fields and buttons. */
.free-scan-form input:not([type=checkbox]):not([type=radio]),.fg-form input:not([type=checkbox]):not([type=radio]),.free-scan-form button,.fg-form button{min-height:44px;box-sizing:border-box;max-width:100%}
.free-scan-form .chk,.fg-form .chk{min-height:44px;display:flex;gap:8px;align-items:flex-start}
.fg-contact a[href^="mailto:"]{display:inline-flex;align-items:center;min-height:44px;overflow-wrap:anywhere}
/* Breadcrumb "Home" link was 39px wide (mobile-audit needs 44x44). Nova: fold into app.css "Guides" block if you prefer. */
.crumbs a{min-width:44px}

/* Web report chrome (lib/render.js reportChrome): skip link + shared nav. Zero specificity so report.css wins. */
:where(.fg-skip){position:absolute;left:-999px;top:8px;background:#0e2a2f;color:#fff;padding:8px 14px;border-radius:8px;z-index:100}
:where(.fg-skip):focus{left:8px;color:#fff}
:where(.fg-site-header){border-bottom:1px solid #d9e1e2;margin:0 0 16px;padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}
:where(.fg-site-header nav){display:flex;flex-wrap:wrap;align-items:center;gap:2px 16px;min-height:56px}
:where(.fg-site-header .brand){margin:0}
:where(.fg-site-header a, .fg-navbtn){display:inline-flex;align-items:center;min-height:44px;white-space:nowrap}
:where(.fg-sp){flex:1}
:where(.fg-inline){display:inline;margin:0}
:where(.fg-navbtn){padding:0 14px;border-radius:8px;border:2px solid #0b4f5c;background:#fff;color:#0b4f5c;font:inherit;font-weight:600;text-decoration:none;cursor:pointer}
:where(.fg-site-header a):focus-visible, :where(.fg-navbtn):focus-visible{outline:3px solid #111;outline-offset:2px}
