/* ===================== request-portal.theme.css (scoped to .rq-portal) ===================== */
/* Uses your site tokens; does not leak globally. */
.rq-portal {
  /* pull from global tokens; provide safe fallbacks */
  --sand: var(--sand, #f4e5d6);
  --sage: var(--sage, #8a9d91);
  --driftwood: var(--driftwood, #6b5743);
  --teal: var(--teal, #3d6f72);
  --coral: var(--coral, #d78973);
  --ink: var(--ink, #1b2a2e);
  --cloud: var(--cloud, #f8f7f5);
  --pale-gray: var(--pale-gray, #e9edf0);
  --offwhite: var(--offwhite, #fffaf5);

  --radius-sm: var(--radius-sm, 10px);
  --radius: var(--radius, 16px);
  --shadow-xs: var(--shadow-xs, 0 2px 8px rgba(0,0,0,.06));
  --shadow: var(--shadow, 0 8px 24px rgba(0,0,0,.08));

  color: var(--ink);
  background: var(--cloud);
  font-family: "Merriweather", serif;
}

/* Headings inside the portal */
.rq-portal h1,.rq-portal h2,.rq-portal h3,.rq-portal h4,.rq-portal h5,.rq-portal h6{
  font-family:"Raleway", system-ui, -apple-system, Segoe UI, Roboto, Arial;
  color:var(--driftwood);
}
.rq-portal h3{ color: var(--teal); }

/* Cards & panels */
.rq-portal .card{
  background:#fff; border:1px solid #eee; border-radius:var(--radius-sm);
  padding:16px; box-shadow:var(--shadow-xs);
}
.rq-portal .panel{
  background:var(--offwhite); border:1px solid #f0e7de;
  border-radius:var(--radius-sm); padding:16px;
}
.rq-portal .muted{ color:#57696d; }

/* Badge + action row under calendar */
.rq-portal .tp2-badge{
  display:inline-flex; align-items:center; gap:.5ch;
  padding:6px 10px; border-radius:999px; font-family:"Raleway"; font-weight:700;
  background:#eef2f6; color:#324a5a; border:1px solid #d6e0ea; font-size:.9rem;
}
.rq-portal .tp2-ghost{
  background:transparent; color:var(--teal); border:1px solid var(--teal);
  padding:8px 12px; border-radius:999px; font-family:"Raleway"; font-weight:700; cursor:pointer;
}
.rq-portal .tp2-cta{
  background:var(--coral); color:#fff; border:1px solid transparent;
  padding:8px 12px; border-radius:999px; font-family:"Raleway"; font-weight:700; cursor:pointer;
}
.rq-portal .tp2-cta[disabled]{ opacity:.6; cursor:not-allowed; }

/* Form */
.rq-portal .form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media (max-width:720px){ .rq-portal .form-grid{ grid-template-columns:1fr; } }
.rq-portal label{ font-family:"Raleway"; font-weight:600; color:#3a4a4e; }
.rq-portal .in{
  width:100%; padding:12px 14px; border-radius:12px;
  border:1px solid #e3e3e3; background:#fff; font-family:"Merriweather";
}
.rq-portal .in:focus{ outline:2px solid var(--teal); outline-offset:2px; }

/* Modal (matches site feel) */
.rq-portal .modal.hidden{ display:none!important; }
.rq-portal .modal{ position:fixed; inset:0; display:flex; align-items:center; justify-content:center; z-index:1000; }
.rq-portal .modal-backdrop{ position:absolute; inset:0; background:rgba(0,0,0,.45); }
.rq-portal .modal-card{
  position:relative; background:#fff; width:min(720px,92vw); max-height:90vh; overflow:auto;
  border-radius:var(--radius); box-shadow:var(--shadow);
  padding:16px;
}
.rq-portal .modal-title{ margin:0 0 8px 0; font:700 20px/1.3 "Raleway", system-ui; color:var(--teal); }
.rq-portal .modal-body{ display:flex; flex-direction:column; gap:12px; }
.rq-portal .modal-actions{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:14px; }

/* Modal primary button = site primary (coral) */
.rq-portal .primary{
  background:var(--coral); color:#fff; border:1px solid transparent;
  padding:10px 16px; border-radius:999px; font-family:"Raleway"; font-weight:700; cursor:pointer;
}
.rq-portal .primary[disabled]{ opacity:.6; cursor:not-allowed; }

/* Policies checkbox text */
.rq-portal .agree-cluster{ font-size:.95rem; color:#57696d; }
.rq-portal .agree-cluster input{ margin-right:6px; }

/* Calendar “🚫” mark on disabled days — scoped */
.rq-portal #rqCalendar .tp2-day.is-disabled::after{
  content:"🚫"; position:absolute; bottom:4px; left:6px; font-size:14px;
}

/* Smaller tweaks for mobile */
@media (max-width: 640px){
  .rq-portal .tp2-badge{ font-size:.82rem; padding:4px 8px; }
  .rq-portal .primary, .rq-portal .tp2-cta { padding:8px 12px; }
}

/* Ensure the green CTA is visible and on-brand */
.rq-portal .tp2-cta{
  background: var(--coral, #d78973) !important;
  color: #ffffff !important;
  border: 1px solid transparent !important;
  box-shadow: var(--shadow-xs, 0 2px 8px rgba(0,0,0,.06));
}
.rq-portal .tp2-cta:hover{
  filter: brightness(.97);
}
.rq-portal .tp2-cta[disabled]{
  opacity: .6; cursor: not-allowed;
}


/* ============================================================================================= */
