.waivers-hero{
  padding:2rem 0 1rem;
}

.waivers-hero h1{
  font-size:clamp(2rem, 4vw, 2.6rem);
  margin-bottom:.4rem;
}

.waivers-hero p{
  color:var(--text-200);
  max-width:720px;
}

.waiver-notice{
  padding:1rem 1.25rem;
  margin-bottom:1.5rem;
  border-radius:14px;
  background:rgba(255,87,51,.08);
  border:1px solid rgba(255,87,51,.3);
  color:var(--text);
  font-weight:600;
}

.waiver-grid{
  display:grid;
  gap:1.5rem;
}

.waiver-card{
  background:linear-gradient(180deg, rgba(255,255,255,.04), rgba(0,0,0,.22));
  border-radius:16px;
  border:1px solid rgba(255,255,255,.08);
  padding:1.25rem;
  box-shadow:0 16px 40px rgba(0,0,0,.35);
  display:grid;
  gap:1rem;
}

.waiver-card__header{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:1rem;
}

.waiver-title{
  margin:0 0 .2rem;
  font-size:1.3rem;
}

.waiver-meta{
  margin:0;
  color:var(--text-200);
  font-size:.9rem;
}

.waiver-submeta{
  margin:.35rem 0 0;
  color:var(--text-200);
  font-size:.9rem;
}

.waiver-body{
  background:rgba(255,255,255,.03);
  border:1px solid rgba(255,255,255,.08);
  border-radius:14px;
  padding:1rem;
  max-height:340px;
  overflow:auto;
}

.waiver-text{
  margin:0;
  white-space:pre-wrap;
  font-family:inherit;
  color:var(--text);
  font-size:.95rem;
}

.waiver-check{
  display:flex;
  gap:.6rem;
  align-items:flex-start;
  font-weight:600;
}

.waiver-field{
  display:flex;
  flex-direction:column;
  gap:.4rem;
}

.waiver-label{
  font-weight:600;
}

.waiver-field input{
  padding:.65rem .8rem;
  border-radius:10px;
  border:1px solid var(--bg-300);
  background:var(--bg);
  color:var(--text);
}

.signature-pad{
  border-radius:14px;
  border:1px solid rgba(255,255,255,.12);
  padding:.75rem;
  background:rgba(255,255,255,.02);
}

.guardian-section{
  border-radius:14px;
  border:1px solid rgba(255,255,255,.12);
  padding:.85rem;
  background:rgba(255,255,255,.03);
  display:grid;
  gap:.75rem;
}

.guardian-title{
  font-weight:700;
}

.signature-pad--guardian{
  background:rgba(255,255,255,.06);
}

.signature-pad__header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:.5rem;
  font-weight:600;
}

.signature-canvas{
  width:100%;
  height:160px;
  background:#fff;
  border-radius:10px;
  touch-action:none;
}

.waiver-actions{
  display:flex;
  gap:.75rem;
  flex-wrap:wrap;
  align-items:center;
}

.waiver-msg{
  margin:0;
  color:var(--text-200);
  font-size:.9rem;
}

.status-pill--ok{
  background:rgba(122,223,156,.16);
  border-color:rgba(122,223,156,.45);
}

.status-pill--warn{
  background:rgba(255,206,107,.18);
  border-color:rgba(255,206,107,.5);
}

.status-pill--bad{
  background:rgba(255,107,94,.18);
  border-color:rgba(255,107,94,.5);
}

.waiver-modal{
  position:fixed;
  inset:0;
  display:grid;
  place-items:center;
  z-index:2000;
}

.waiver-modal__backdrop{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.55);
}

.waiver-modal__panel{
  position:relative;
  background:var(--bg);
  color:var(--text);
  border-radius:16px;
  padding:1.25rem;
  width:min(860px, 92vw);
  max-height:84vh;
  overflow:auto;
  box-shadow:0 20px 40px rgba(0,0,0,.4);
}

.waiver-modal__header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:1rem;
  margin-bottom:.75rem;
}

.waiver-modal__meta{
  color:var(--text-200);
  font-size:.9rem;
  display:grid;
  gap:.2rem;
  margin-bottom:1rem;
}

.waiver-modal__body{
  white-space:pre-wrap;
  font-family:inherit;
  background:var(--bg-200);
  padding:1rem;
  border-radius:12px;
  border:1px solid var(--bg-300);
}

@media (min-width: 900px){
  .waiver-card{
    padding:1.5rem;
  }
}
