/* App base: reset, page ground and the few rules hub.css relied on from the
   prototype. Colours come from the hub.css tokens, plus --hb-error below, defined
   here from the brand Alert colour (#ED1D51), darkened for text contrast on light
   and lightened on dark (pending brand-owner confirmation). */
*,*::before,*::after{box-sizing:border-box}
html:root{--hb-strip:0px}  /* the prototype's demo strip does not exist in the app */
html:root{--hb-error:#C8143C}
html:root[data-theme="dark"]{--hb-error:#FF7A95}
html{-webkit-text-size-adjust:100%}
body{margin:0; font-family:var(--hb-font); font-size:16px; line-height:1.55; color:var(--hb-ink); background:var(--hb-paper); -webkit-font-smoothing:antialiased}
h1,h2,h3,p,ul,ol{margin:0}
img,svg{display:block; max-width:100%}
a{color:inherit; text-decoration:none}
button,input,select,textarea{font:inherit; color:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--hb-cyan); outline-offset:2px}
.linkbtn{padding:0; border:0; background:none; color:var(--hb-link); font-weight:600; text-decoration:underline; text-underline-offset:2px}
.hb-wrap{max-width:1040px; margin:0 auto; padding:40px 24px}
@media (max-width:640px){ .hb-wrap{padding:28px 16px} }
.lg-error{margin-top:6px; color:var(--hb-error); font-size:14px; font-weight:600}
.lg-sub.lg-note{font-size:13px}
