html {
  font-size: 14px;
}

@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: 60px;
}

/* Patch 2 public/mobile additions */
.page-shell{padding-block:1rem;}
.page-header{display:flex;justify-content:space-between;align-items:end;gap:1rem;}
.page-subtitle{color:#64748b;max-width:780px;}
.surface-card{background:#fff;border-radius:1.25rem;box-shadow:0 10px 30px rgba(15,23,42,.06);border:1px solid rgba(148,163,184,.12);}
.empty-state{padding:1.25rem 1rem;border:1px dashed #cbd5e1;border-radius:1rem;background:#fff;color:#64748b;text-align:center;}
.public-card-image{width:100%;height:220px;object-fit:cover;display:block;}
.detail-hero-image{width:100%;max-height:420px;object-fit:cover;display:block;}
.status-badge{display:inline-flex;align-items:center;padding:.4rem .7rem;border-radius:999px;background:#e2e8f0;color:#0f172a;font-size:.8rem;font-weight:600;}
.status-badge.alt{background:#dbeafe;color:#1d4ed8;}
.rich-content{line-height:1.75;color:#1f2937;}
.rich-content p:last-child{margin-bottom:0;}
.search-form .form-control,.search-form .btn{min-height:44px;}
.project-meta span{display:inline-flex;align-items:center;}
@media (max-width: 991.98px){.page-header{align-items:start;}.site-navbar .navbar-collapse{padding-top:.75rem;}.navbar-menu-scroll{padding-bottom:1rem;}}
@media (max-width: 575.98px){.public-card-image{height:200px;}.detail-hero-image{max-height:260px;}.surface-card{border-radius:1rem;}.page-shell{padding-block:.5rem;}}
