/* Shared finishing rules: restrained hierarchy, accessible controls and reading. */
html { scroll-padding-top:1rem; }
body { -webkit-text-size-adjust:100%; }
input,select,textarea,button { font:inherit; }
main.wrap { padding-bottom:1rem; }
.button,.nav-login,.theme-toggle { line-height:1.5; }
.button .ui-icon { width:1.2em;height:1.2em; }
.button.secondary { font-weight:600; }
.button:disabled:hover { background:var(--raised);color:var(--muted); }
.field :is(input,select,textarea):focus-visible { border-color:var(--focus); }
.field:has(.errorlist) :is(input:not([type=checkbox]):not([type=radio]),select,textarea) { border-color:var(--danger); }
.errorlist { border-left:3px solid var(--danger);list-style:none;padding:.55rem .8rem;background:var(--danger-bg);border-radius:0 6px 6px 0; }
.errorlist::before { display:block;margin-bottom:.2rem; }
.field :is(input[type=file]) { line-height:1.6; }
input::file-selector-button { font:inherit;color:var(--text);background:var(--raised);border:1px solid var(--control-line);border-radius:6px;padding:.4rem .65rem;margin-right:.65rem;cursor:pointer; }
summary { cursor:pointer; }
summary:focus-visible { outline:3px solid var(--focus);outline-offset:3px; }
.hero-copy .hero-phase { display:inline-flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--success);margin:.7rem 0 0; }
.hero-phase .ui-icon { width:1.2em;height:1.2em; }
.hero-copy .hero-lead { max-width:35rem; }
.hero-copy .hero-preparation-link { display:inline-flex;align-items:center;gap:.5rem;min-height:44px;font-size:.9375rem;text-underline-offset:.3em; }
.hero-copy .hero-footnote { margin-top:.85rem; }
.hero-copy .hero-login-note { font-size:.875rem;margin:.7rem 0 0;line-height:1.7; }
.launch-notice { display:flex;align-items:center;justify-content:space-between;gap:1.5rem; }
.launch-notice>div { min-width:0; }
.launch-notice p { margin:.35rem 0 0;max-width:70ch; }
.launch-notice .button { flex-shrink:0; }
.site-navigation :is(.nav-login,.theme-toggle,.app-install-button) { white-space:nowrap; }
.project-brand:hover { text-decoration:none; }
.footer-navigation .icon-label { gap:.4rem; }
@media(max-width:700px) {
  .launch-notice { flex-direction:column;align-items:flex-start;gap:1rem; }
  .project-footer { margin-top:2.5rem; }
}
@media(max-width:560px) {
  .hero-copy .hero-actions { gap:.6rem; }
  .hero-copy .hero-actions .button { padding:.65rem .9rem; }
  .hero-copy .hero-phase { font-size:.875rem; }
  .project-masthead { gap:.75rem; }
  .masthead-institution { padding-top:.65rem; }
  .footer-grid { gap:1.25rem; }
  .footer-grid section+section { padding-top:1.1rem; }
}
