/* OSF Funding Portal — base styles. The screen layouts keep the design
   template's inline style vocabulary; this file holds globals only. */
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  background: #FFFFFF;
  color: #1A1A1A;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
::selection { background: #1A1A1A; color: #fff; }
input, textarea, select, button { font-family: inherit; }
input:focus, textarea:focus, select:focus { border-color: #1A1A1A !important; outline: none; }
a { color: #5E8DEF; }

.mono { font-family: 'Roboto Mono', ui-monospace, monospace; }

@keyframes spin { to { transform: rotate(360deg); } }
@keyframes fadeUp { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }

.spinner {
  width: 22px; height: 22px;
  border: 2.5px solid #EEEDE7; border-top-color: #1A1A1A;
  border-radius: 50%; display: inline-block;
  animation: spin .8s linear infinite;
}
.boot { min-height: 100vh; display: flex; align-items: center; justify-content: center; }

button:disabled { opacity: .55; cursor: not-allowed !important; }

@media (max-width: 900px) {
  .grid4 { grid-template-columns: 1fr 1fr !important; }
  .grid3 { grid-template-columns: 1fr !important; }
  .grid2 { grid-template-columns: 1fr !important; }
  .pad-lg { padding-left: 22px !important; padding-right: 22px !important; }
  h1 { font-size: 40px !important; }
  .nowrap-h2 { white-space: normal !important; }
}
