/* Layero "Powered by" footer — generated per-deploy by builder/footer.py.
   The background / foreground colour placeholders are substituted with
   the resolved colours before this file is written into the artifact.
   Served as a same-origin file so it passes a strict style-src 'self'
   CSP (an inline <style> would need 'unsafe-inline').

   Every declaration is !important on purpose: the footer lives in the
   user's light DOM, so a CSS reset on their side would otherwise reach
   in and break the bar. This is not full isolation (a determined
   .layero-footer{display:none} with !important still wins) — that
   tradeoff is accepted; see the architecture audit. */
/* Pin the bar to the bottom of the page. `position:sticky;top:100vh`
   parks it at the bottom of the viewport when the page content is
   shorter than the viewport (no awkward mid-page float), and lets it
   flow normally after the content on taller pages — without wrapping
   the user's DOM or forcing a flex/grid layout on <body>. It needs the
   body to be at least one viewport tall, hence the rule below. Sticky
   pins regardless of sibling order, so it survives SPA frameworks that
   append portal/modal roots to <body> after our bar at runtime. */
.layero-footer{all:revert!important;box-sizing:border-box!important;position:sticky!important;top:100vh!important;z-index:2147483646!important;display:flex!important;width:100%!important;height:52px!important;margin:0!important;background:var(--color-bg, #ffffff)!important;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif!important;opacity:0!important;transition:opacity .45s ease-out!important;animation:layero-footer-in .45s ease-out 4s forwards!important}
/* Guarantee a full-viewport scroll context so the sticky bar above can
   reach the bottom of the viewport on short pages. min-height only grows
   the body, so it can never hide the site's own content. */
body{min-height:100vh!important}
/* Reveal once footer.js fires on window.load (the bar fades in last,
   after the host site has rendered). The 4s animation above is the
   no-JS fallback — if the script is blocked, the bar still appears. */
:root[data-layero-ready] .layero-footer{opacity:1!important;animation:none!important}
@keyframes layero-footer-in{from{opacity:0}to{opacity:1}}
@media (prefers-reduced-motion:reduce){.layero-footer{transition-duration:.01s!important;animation-duration:.01s!important}}
.layero-footer__link{box-sizing:border-box!important;flex:1!important;display:flex!important;align-items:center!important;justify-content:center!important;height:100%!important;padding:0 24px!important;line-height:0!important;color:rgba(17,17,17,0.4)!important;text-decoration:none!important;transition:opacity .15s ease}
.layero-footer__link:hover{opacity:.7}
.layero-footer__logo{height:22px!important;width:auto!important;display:block!important;color:currentColor!important}
@media print{.layero-footer{display:none!important}}

