/* ────────────────────────────────
   PatriotChat main.css  (global)
   Consolidated 2025-07-29
──────────────────────────────── */

/* ---------- Reset ---------- */
*,
*::before,
*::after { box-sizing: border-box; }

/* ---------- Base colours & font ---------- */
html, body{
  margin:0;
  padding:0;
  font-family:Inter, Roboto, sans-serif;
  background:#0f0f0f;
  color:#eee;
}

/* ---------- Landing page: fill viewport ---------- */
body.full-height{
  display:flex;
  flex-direction:column;
  min-height:100vh;
}

/* Top padding for fixed navbar (56 px) */
body{ padding-top:56px; overflow-x:hidden; }

/* ---------- Main container ---------- */
main{
  flex:1;
  width:100%;
  max-width:960px;
  margin:0 auto;
  padding:0.5rem 1rem;
}

/* Overrides when page explicitly asks ↓ */
main.hero-page{ padding-top:0; margin-top:0; }
main{ padding-top:60px; padding-bottom:2rem; }

/* ---------- Links & buttons ---------- */
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; }

main .btn,
.btn-primary{ display:block; margin:1rem auto; text-align:center; }
.btn-primary{ margin:2rem auto; }            /* bigger spacing for primaries */

/* ---------- Re-usable utilities ---------- */
.hidden{ display:none!important; }
.text-nowrap{ white-space:nowrap; }

/* ---------- Alerts ---------- */
.alert{ padding:.75rem 1rem; border-radius:6px; margin-top:1rem; }
.alert-info{    background:#2c3e50; color:#fff;}
.alert-danger{  background:#c0392b; color:#fff;}
.alert-success{ background:#27ae60; color:#fff;}

/* ---------- Password strength meter ---------- */
.meter{ background:#e5e5e5; border-radius:4px; height:6px; margin-top:6px; }
.meter #fill{ height:100%; width:0; border-radius:4px; transition:width .3s; }

/* ---------- Checkbox layout helpers ---------- */
.form-group.checkbox > label{
  display:inline-flex; align-items:center; gap:.4rem; margin-bottom:0;
}
.form-group.checkbox input[type="checkbox"]{ flex:0 0 auto; }

/* ---------- Registration card ---------- */
.register-card,
.step-card,
.card--registration{
  width:100%; max-width:420px; margin:0 auto;
  padding:1.5rem 1.25rem; box-sizing:border-box;
}
@media(max-width:360px){
  .register-card{ padding:1.25rem 1rem; }
  .form-group input, .form-group select{ font-size:1rem; }
}

/* ---------- Dashboard grid ---------- */
.dashboard .grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:1.5rem; margin-top:2rem;
}
.dashboard .card{
  background:#fff; padding:1.5rem;
  border-radius:8px; box-shadow:0 0 8px rgba(0,0,0,.05);
}

/* ---------- CTA helpers ---------- */
.page-container{ padding-top:64px; padding-bottom:2rem; max-width:1200px; margin:0 auto; }
.cta-button-wrapper{ text-align:center; margin-top:1rem; }
.cta .btn-primary{ display:inline-block; padding:.75rem 1.5rem; font-weight:bold; font-size:1.1rem; }

/* ---------- Cards (dark theme) ---------- */
.card{
  border-radius:10px; padding:1.5rem;
  background-color:#1e1e1e; border:1px solid #333;
  margin-bottom:1.5rem;
}

/* ---------- Images / SVG never overflow ---------- */
img, svg{ max-width:100%; height:auto; }
