html {
  font-size: 14px;
}

:root { --hub-navy:#111936; --hub-purple:#7657ff; --hub-cyan:#25c7d9; --hub-bg:#f4f6fb; }
body { background:var(--hub-bg); color:#1b2440; display:flex; flex-direction:column; min-height:100vh; }
body > .container.pb-5 { flex:1 0 auto; }
.footer { flex-shrink:0; padding:0.75rem 0; }
.hub-nav { background:linear-gradient(110deg,var(--hub-navy),#29205f); box-shadow:0 5px 24px #17204b35; }
.navbar-brand span { color:var(--hub-cyan); }
.hub-card { background:#fff; border:0; border-radius:1rem; box-shadow:0 8px 30px #1a275015; }
.hero { color:#fff; background:linear-gradient(135deg,var(--hub-navy),var(--hub-purple)); border-radius:1.3rem; padding:clamp(1.5rem,5vw,3.5rem); }
.stat { border-left:4px solid var(--hub-purple); }
.btn-primary { background:var(--hub-purple); border-color:var(--hub-purple); }
.answer-btn { min-height:72px; text-align:left; font-size:1.05rem; border-radius:.8rem; }
.timer { width:86px;height:86px;border-radius:50%;display:grid;place-items:center;background:var(--hub-navy);color:#fff;font-size:1.7rem;font-weight:700; }
.podium { font-size:2rem; }
.table { --bs-table-bg:transparent; }
.form-control,.form-select { min-height:44px; }
@media (max-width:576px) { .hero { border-radius:0; margin-left:-12px; margin-right:-12px; } }

@media (min-width: 768px) {
  html {
    font-size: 16px;
  }
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

html {
  position: relative;
  min-height: 100%;
}

body { margin-bottom:0; }

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
  color: var(--bs-secondary-color);
  text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
  text-align: start;
}
