:root{
  --red:#c81e1e; --red-600:#dc2626; --blue-600:#2563eb;
  --bg:#f3f4f6; --card:#ffffff; --line:#e5e7eb; --text:#0f172a; --muted:#6b7280;
  --shadow:0 10px 25px rgba(0,0,0,.07); --radius:18px;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:"Inter",system-ui,Arial,sans-serif;background:var(--bg);color:var(--text)}
.container{max-width:1100px;margin:0 auto;padding:0 18px}

.grid-2{display:grid;grid-template-columns:1fr;gap:26px;margin:26px auto}
@media (min-width:980px){ .grid-2{grid-template-columns:1fr 1fr} }
.grid-2--fit{display:grid;grid-template-columns:1fr;gap:12px}
@media (min-width:720px){ .grid-2--fit{grid-template-columns:1fr 1fr} }

/* nav */
.nav{background:var(--red);color:#fff;position:sticky;top:0;z-index:50;box-shadow:var(--shadow)}
.nav__inner{display:flex;align-items:center;justify-content:flex-start;height:62px}
.brand{display:flex;align-items:center;gap:10px;font-weight:700}
.badge{background:#fff1;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:999px}
.brand__name{color:#fff}

/* hero */
.hero{padding:28px 18px; position:relative;}
.hero__card{padding:36px 28px;text-align:center}
.hero__icon{font-size:44px}
.hero__title{margin:.3rem 0;font-size:36px}
.hero__subtitle{color:var(--muted);max-width:660px;margin:0 auto}
.hero__cta{display:flex;gap:16px;justify-content:center;margin-top:18px;flex-wrap:wrap}

/* card */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}
.card__title{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.title__icon{font-size:20px}

/* form */
.field{display:flex;flex-direction:column;gap:6px}
.field label{font-size:.9rem;color:#1f2937;font-weight:600}
.field input, .field select{
  padding:12px 12px;border:1px solid var(--line);border-radius:12px;background:#fff;font-size:15px;outline:none
}
.field input:focus, .field select:focus{border-color:#cbd5e1;box-shadow:0 0 0 3px rgba(59,130,246,.15)}

/* phone combo */
.phone-input{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:12px;background:#fff;overflow:hidden}
.code-select,.code-input,.phone-input input{border:0;outline:none;padding:12px;font-size:15px}
.code-select{background:#f3f4f6;border-right:1px solid var(--line);min-width:110px;font-weight:600}
.code-input{width:90px;background:#fff;border-right:1px solid var(--line)}
.phone-input input#phone{flex:1}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:44px;padding:12px 16px;border-radius:12px;border:none;cursor:pointer;
  text-decoration:none;font-weight:700;transition:transform .04s ease, filter .15s}
.btn:active{transform:translateY(1px)}
.btn--red{background:var(--red-600);color:#fff}
.btn--red:hover{filter:brightness(1.03)}
.btn--blue{background:var(--blue-600);color:#fff}
.btn--blue:hover{filter:brightness(1.03)}
.btn--ghost{background:#f3f4f6;color:#111;font-weight:600}
.btn--full{width:100%;margin-top:12px}

/* list */
.list-card{grid-column:1/-1}
.list__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.pill{background:#dcfce7;color:#065f46;border-radius:999px;padding:6px 12px;font-weight:700;border:1px solid #bbf7d0}
.list{display:flex;flex-direction:column;gap:12px}
.item{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:#fff}
.item__left{display:flex;flex-direction:column;gap:4px}
.item__name{font-weight:700}
.item__meta{color:var(--muted);font-size:.9rem}
.tags{display:flex;gap:8px;margin-top:2px}
.tag{font-size:.75rem;border:1px solid var(--line);border-radius:999px;padding:2px 8px}
.item__actions{display:flex;gap:8px}
@media (max-width:600px){
  .item__actions{flex-wrap:wrap;gap:6px}
  .item__actions .btn{flex:1 1 48%}
}

/* empty */
.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 10px;color:var(--muted);gap:8px}

/* footer */
.footer{background:var(--red);color:#fff;margin-top:36px}
.footer__inner{padding:28px 18px;text-align:center;display:flex;flex-direction:column;gap:8px}
.footer__brand{display:flex;justify-content:center;align-items:center;gap:8px}
.footer__icons{display:flex;justify-content:center;gap:18px;font-size:20px}

/* --- Intro Screen --- */
.intro{position:fixed;inset:0;width:100%;height:100%;overflow:hidden;z-index:9999;display:flex;align-items:center;justify-content:center}
.intro__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.55)}
.intro__overlay{position:relative;z-index:2;text-align:center;color:#fff;display:flex;flex-direction:column;align-items:center;gap:16px;padding:0 20px}
.intro__title{font-size:2rem;font-weight:700}
.intro__subtitle{font-size:1.1rem;color:#e5e7eb}
.intro__btn{padding:14px 28px;border-radius:10px;margin-top:20px}
.intro.fade-out{opacity:0;pointer-events:none;transition:opacity 600ms ease}
.hero {
  position: relative;
  overflow: hidden; 
}

.runner {
  position: absolute;
  top: 0; 
  left: -10%;
  width: 100%;
  pointer-events: none;
  z-index: 3;
 animation: runner-move 10s linear infinite alternate;

}

.runner__img {
  width: 70px;
  height: 70px;
  object-fit: contain;
  filter: drop-shadow(0 4px 8px rgba(0,0,0,0.25));
}


@keyframes runner-move {
  0% { transform: translateX(0); }
  100% { transform: translateX(calc(100vw + 100px)); }
}

.mute-btn{
  position:absolute; right:14px; top:14px; z-index:2;
  background:#f3f4f6; color:#111; border:1px solid #e5e7eb;
  border-radius:12px; padding:8px 12px; font-weight:700; cursor:pointer;
  box-shadow:var(--shadow);
}
.mute-btn:hover{ filter:brightness(.96) }
.modal{ position:fixed; inset:0; display:flex; align-items:center; justify-content:center; background:rgba(0,0,0,.35); z-index:50; }
.modal.hidden{ display:none; }
.modal__box{ background:#fff; width:min(520px,92vw); padding:16px; border-radius:14px; box-shadow:0 12px 30px rgba(0,0,0,.18); }
.modal__actions{ display:flex; gap:8px; justify-content:flex-end; margin-top:10px; }
.chip{ display:inline-block; padding:.2rem .5rem; border-radius:999px; background:#f3f4f6; font-size:.85rem; margin-right:.35rem; }
.chip--muted{ color:#6b7280; }
.donor-card{ display:flex; align-items:center; justify-content:space-between; padding:14px; border:1px solid #eee; border-radius:12px; margin:10px 0; background:#fff; }
.empty{ padding:24px; color:#6b7280; display:flex; gap:10px; align-items:center; }
/* =========================
   ✨ Visual polish upgrades
   (paste at the END of style.css)
   ========================= */

/* --- richer palette --- */
:root{
  --red-700:#b91c1c;
  --blue-700:#1d4ed8;
  --rose-500:#f43f5e;
  --indigo-500:#6366f1;
  --emerald-500:#10b981;
  --amber-500:#f59e0b;
  --surface:#ffffff;
  --tint:#f7f7fb;
}

/* --- cards: softer, float on hover --- */
.card{
  border-radius: 22px;
  border: 1px solid rgba(15,23,42,.06);
  background: linear-gradient(180deg,#fff, #fff8);
  box-shadow:
    0 1px 2px rgba(16,24,40,.04),
    0 10px 18px rgba(2,6,23,.06);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.card:hover{
  transform: translateY(-2px);
  box-shadow:
    0 6px 16px rgba(2,6,23,.08),
    0 14px 30px rgba(2,6,23,.08);
  border-color: rgba(15,23,42,.1);
}

/* --- section titles --- */
.card__title h2{
  font-weight: 800;
  letter-spacing: .2px;
}
.title__icon{
  width: 34px; height: 34px; display:inline-grid; place-items:center;
  border-radius: 10px;
  background: linear-gradient(135deg,#fce7f3,#e0e7ff);
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.04);
}

/* --- inputs: cleaner + glow on focus --- */
.field input, .field select{
  background:#fff;
  border:1px solid rgba(2,6,23,.08);
  transition: border-color .18s ease, box-shadow .18s ease, transform .05s ease;
}
.field input:hover, .field select:hover{
  border-color: rgba(2,6,23,.18);
}
.field input:focus, .field select:focus{
  border-color: var(--indigo-500);
  box-shadow: 0 0 0 3px rgba(99,102,241,.18);
}
.field label{ color:#0b1220 }

/* placeholder tone */
::placeholder{ color:#9aa3b2 }

/* --- phone combo: subtle separation --- */
.phone-input{
  border:1px solid rgba(2,6,23,.08);
  background:#fff;
}
.code-select{ background:#f3f4f9 }
.code-input{ border-right:1px solid var(--line) }

/* --- buttons: juicy gradients, lift on hover --- */
.btn{
  transition: transform .06s ease, filter .2s ease, box-shadow .2s ease, background .2s ease;
}
.btn:focus-visible{
  outline: 3px solid rgba(37,99,235,.35);
  outline-offset: 2px;
  border-radius: 14px;
}
.btn--red{
  background: linear-gradient(135deg,var(--red-600),var(--red-700));
  box-shadow: 0 6px 14px rgba(220,38,38,.25);
}
.btn--red:hover{
  filter: brightness(1.03);
  box-shadow: 0 10px 20px rgba(220,38,38,.28);
}
.btn--blue{
  background: linear-gradient(135deg,var(--blue-600),var(--blue-700));
  box-shadow: 0 6px 14px rgba(37,99,235,.25);
}
.btn--blue:hover{
  filter: brightness(1.03);
  box-shadow: 0 10px 20px rgba(37,99,235,.28);
}
.btn--ghost{
  background: linear-gradient(180deg,#f3f4f6,#eceff3);
  border: 1px solid rgba(2,6,23,.06);
}
.btn:active{ transform: translateY(1px) }

/* --- list items: hoverable cards --- */
.item{
  background: #fff;
  border: 1px solid rgba(2,6,23,.06);
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease, background .2s ease;
}
.item:hover{
  transform: translateY(-2px);
  border-color: rgba(2,6,23,.12);
  box-shadow: 0 10px 18px rgba(2,6,23,.06);
}

/* --- tags: colorful chip for blood group, subtle for phone --- */
.tags .tag:first-child{
  background: linear-gradient(135deg, var(--rose-500), #ef4444);
  color:#fff;
  border-color: transparent;
  font-weight: 700;
}
.tags .tag:last-child{
  background:#f3f4f9;
  color:#334155;
  border-color: rgba(2,6,23,.06);
}

/* --- donor counter pill pop --- */
.pill{
  background: linear-gradient(135deg,#dcfce7,#bbf7d0);
  border:1px solid #86efac;
  color:#065f46;
  box-shadow: inset 0 -1px 0 rgba(255,255,255,.6);
}

/* --- hero buttons spacing tweak --- */
.hero__cta .btn{ min-width: 210px }

/* --- runner a bit smoother --- */
.runner__img{
  filter: drop-shadow(0 6px 12px rgba(0,0,0,.25));
}
@keyframes runner-move{
  0%{ transform: translateX(-8%) }
  100%{ transform: translateX(calc(100vw + 120px)) }
}

/* --- modal slight polish --- */
.modal__box{
  border:1px solid rgba(2,6,23,.06);
  background: linear-gradient(180deg,#fff,#fbfbff);
}

/* --- footer subtle shine --- */
.footer{
  background: linear-gradient(135deg, var(--red-700), var(--red));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.15);
}
/* ==== Clean Light, Colorful Accents (Cards + Inputs + Buttons) ==== */

/* Cards: soft white, subtle gradient ring, smooth hover */
.card{
  background: #fff;
  border: 1px solid #eef1f5;
  border-radius: 20px;
  box-shadow: 0 8px 24px rgba(16,24,40,.06);
  position: relative;
  overflow: hidden;
}
.card::before{
  content:"";
  position:absolute; inset:-1px;
  border-radius:22px;
  pointer-events:none;
  background:
    radial-gradient(1200px 1200px at -10% -10%, rgba(255,99,132,.10), transparent 45%),
    radial-gradient(1200px 1200px at 110% 110%, rgba(59,130,246,.10), transparent 45%);
  z-index:0;
}
.card > *{ position: relative; z-index:1; }
.card:hover{ box-shadow: 0 12px 30px rgba(16,24,40,.10); transform: translateY(-1px); transition: .2s ease; }

/* Titles */
.card__title h2{ color:#0f172a; letter-spacing:.2px; }
.title__icon{
  color:#fff; font-size:18px;
  width:28px; height:28px; display:inline-grid; place-items:center; border-radius:10px;
  background: linear-gradient(135deg,#ef4444,#f97316);
  box-shadow: 0 6px 12px rgba(239,68,68,.25);
}

/* Inputs */
.field label{ color:#334155; font-weight:650; }
.field input, .field select{
  background:#fff;
  border:1px solid #e5e7eb;
  border-radius:12px;
  color:#0f172a;
  transition:border-color .15s, box-shadow .15s;
  box-shadow: 0 1px 0 rgba(16,24,40,.02) inset;
}
.field input::placeholder{ color:#9aa3b2; }
.field input:hover, .field select:hover{ border-color:#d5dae1; }
.field input:focus, .field select:focus{
  border-color:#60a5fa;
  box-shadow: 0 0 0 4px rgba(96,165,250,.20);
  outline: none;
}

/* Country code combo */
.phone-input{ border-color:#e5e7eb; }
.code-select{ background:#f8fafc; }
.code-input{ background:#fff; }

/* Buttons */
.btn{ border:1px solid transparent; }
.btn--red{
  background: linear-gradient(180deg, #ef4444, #dc2626);
  box-shadow: 0 8px 18px rgba(220,38,38,.25);
  color:#fff;
}
.btn--red:hover{ filter:brightness(1.02); transform: translateY(-1px); }
.btn--blue{
  background: linear-gradient(180deg, #2563eb, #1d4ed8);
  box-shadow: 0 8px 18px rgba(37,99,235,.25);
  color:#fff;
}
.btn--blue:hover{ filter:brightness(1.03); transform: translateY(-1px); }
.btn--ghost{
  background:#f1f5f9; color:#0f172a; border-color:#e5e7eb;
}
.btn--ghost:hover{ background:#e9eef6; }

/* Tags in donor list */
.tag{
  background:#f8fafc;
  border:1px solid #e6edf5;
  color:#0f172a;
}
.tag:first-child{ /* blood group chip */
  background:#eef2ff; border-color:#e0e7ff; color:#4338ca; font-weight:700;
}

/* Pill count */
.pill{
  background:#dcfce7; border-color:#bbf7d0; color:#065f46;
  font-weight:800;
}

/* Hero buttons subtle lift */
.hero__cta .btn{ box-shadow: 0 6px 14px rgba(16,24,40,.10); }
.hero__cta .btn:hover{ box-shadow: 0 10px 20px rgba(16,24,40,.14); }

/* Keep overall light background */
body{ background:#f6f8fb; }
/* =============================
   🔴 Heading + Brand Styling
   ============================= */

/* Navbar */
.nav {
  background: linear-gradient(90deg, #b91c1c, #dc2626);
  color: #fff;
  box-shadow: 0 2px 6px rgba(0,0,0,0.15);
}
.brand__name {
  color: #fff;
  font-weight: 700;
  font-size: 1.2rem;
  letter-spacing: .5px;
}

/* Card Headings */
.card__title {
  background: linear-gradient(90deg, #b91c1c, #dc2626);
  padding: 10px 16px;
  border-radius: 14px;
  color: #fff;
  display: flex;
  align-items: center;
  gap: 10px;
  box-shadow: 0 3px 10px rgba(0,0,0,0.15);
}
.card__title h2 {
  color: #fff;
  margin: 0;
  font-weight: 800;
  font-size: 1.1rem;
}

/* Card title icon bubble */
.title__icon {
  background: #fff2;
  border-radius: 8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 6px;
  width: 30px;
  height: 30px;
  font-size: 1rem;
  box-shadow: inset 0 0 4px rgba(255,255,255,0.3);
}

/* Available Donors heading */
.list__header .card__title {
  background: linear-gradient(90deg, #b91c1c, #dc2626);
  border-radius: 14px;
  padding: 10px 16px;
  color: #fff;
  font-weight: 700;
  box-shadow: 0 3px 10px rgba(0,0,0,0.15);
}
.list__header .card__title h2 {
  color: #fff;
}

/* Donor count pill contrast */
.pill {
  background: #fff;
  color: #b91c1c;
  border: 2px solid #fca5a5;
  font-weight: 800;
  box-shadow: 0 2px 6px rgba(0,0,0,0.1);
}
/* === Fix input boxes being cut off / hidden at the right edge === */
.card {
  overflow: visible !important; /* allow input fields to show fully */
  padding: 24px; /* give a little breathing room */
}

/* Make sure grid inside card doesn’t stretch weirdly */
.grid-2--fit {
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}

/* Keep clean modern input look */
.field input,
.field select {
  width: 100%;
  border: 1px solid #d1d5db;
  border-radius: 10px;
  background: #fff;
  padding: 12px 14px;
  font-size: 15px;
  box-shadow: none;
}

.field input:focus,
.field select:focus {
  border-color: #2563eb;
  box-shadow: 0 0 0 2px rgba(37,99,235,0.1);
  outline: none;
}
/* === Final clean & working phone input layout === */
.phone-input {
  display: flex;
  align-items: center;
  border: 1px solid #d1d5db;
  border-radius: 10px;
  background: #fff;
  overflow: hidden;
  width: 100%;
}

.phone-input select {
  border: none;
  background: #f9fafb;
  padding: 12px 8px;
  width: 85px; /* shorter dropdown */
  font-weight: 600;
  border-right: 1px solid #d1d5db;
  outline: none;
}

.phone-input input {
  flex: 1; /* takes full remaining space */
  border: none;
  padding: 12px 14px;
  font-size: 15px;
  outline: none;
  background: #fff;
  color: #0f172a;
}

/* Keep nice focus glow */
.phone-input:focus-within {
  border-color: #2563eb;
  box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.15);
}
/* ===== Message Modal – polished look ===== */
.modal {
  position: fixed; inset: 0;
  display: flex; align-items: center; justify-content: center;
  background: rgba(2,6,23,.45);          /* darker backdrop */
  backdrop-filter: blur(2px);
  z-index: 90;
}
.modal.hidden { display: none; }

/* modal container */
.modal__box{
  width: min(560px, 92vw);
  border-radius: 18px;
  overflow: hidden;                       /* clip header radius */
  background: #fff;
  border: 1px solid #e5e7eb;
  box-shadow:
    0 12px 28px rgba(2,6,23,.18),
    0 2px 6px rgba(2,6,23,.08);
  transform: translateY(6px) scale(.98);
  opacity: 0;
  animation: modal-in .22s ease forwards;
}

/* top bar */
.modal__box h3{
  margin: 0;
  padding: 14px 18px;
  color: #fff;
  font-size: 1.05rem;
  font-weight: 800;
  letter-spacing: .2px;
  background: linear-gradient(90deg, #b91c1c, #2563eb); /* red → blue */
  box-shadow: inset 0 -1px 0 rgba(255,255,255,.25);
}

/* body */
.modal__box form{
  padding: 16px;
  display: grid;
  gap: 12px;
}

.modal__box label{
  display: grid;
  gap: 6px;
  font-weight: 650;
  color: #334155;
  font-size: .95rem;
}

.modal__box input,
.modal__box textarea{
  width: 100%;
  padding: 12px 12px;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  background: #fff;
  font-size: 15px;
  color: #0f172a;
  transition: border-color .15s, box-shadow .15s;
}
.modal__box textarea{ resize: vertical; min-height: 96px; }

.modal__box input::placeholder,
.modal__box textarea::placeholder{ color: #9aa3b2; }

.modal__box input:hover,
.modal__box textarea:hover{ border-color: #d5dae1; }

.modal__box input:focus,
.modal__box textarea:focus{
  outline: 0;
  border-color: #2563eb;
  box-shadow: 0 0 0 4px rgba(37,99,235,.18);
}

/* footer actions */
.modal__actions{
  display: flex;
  gap: 10px;
  justify-content: flex-end;
  padding-top: 4px;
}

/* buttons specifically for modal */
.btn--subtle{
  background: #f1f5f9;
  color: #0f172a;
  border: 1px solid #e5e7eb;
}
.btn--subtle:hover{ background:#e8eef6; }

.btn--primary{
  background: linear-gradient(180deg, #2563eb, #1d4ed8);
  color: #fff;
  border: 1px solid transparent;
  box-shadow: 0 8px 18px rgba(37,99,235,.22);
}
.btn--primary:hover{
  filter: brightness(1.03);
  transform: translateY(-1px);
}

/* little open/close motion */
@keyframes modal-in{
  to { opacity: 1; transform: translateY(0) scale(1); }
}
