
.visit-booking-picker{
  display:grid;
  gap:10px;
  padding:16px;
  border:1px solid #dbe4ee;
  border-radius:14px;
  background:#fbfcfe;
}
.visit-picker-grid{
  display:grid;
  grid-template-columns:1.25fr 1fr 1fr;
  gap:12px;
}
.visit-availability-status{
  min-height:22px;
  color:#5e6f85;
  font-size:.92rem;
}
.visit-availability-status[data-state="loading"]::before{
  content:"";
  display:inline-block;
  width:13px;
  height:13px;
  margin-right:7px;
  vertical-align:-2px;
  border:2px solid #cad5df;
  border-top-color:#24735a;
  border-radius:50%;
  animation:visit-spin .8s linear infinite;
}
.visit-availability-status[data-state="ready"]{color:#2d6a52}
.visit-availability-status[data-state="empty"]{color:#8a5a19}
.visit-availability-status[data-state="error"]{color:#a43a32}
.visit-submit-status{
  padding:12px 14px;
  border:1px solid #bfd8cd;
  border-radius:12px;
  background:#edf7f3;
  color:#245c48;
  font-weight:700;
  line-height:1.5;
}
.visit-submit-button{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:9px;
}
.visit-submit-spinner{
  width:16px;
  height:16px;
  border:2px solid rgba(255,255,255,.45);
  border-top-color:#fff;
  border-radius:50%;
  animation:visit-spin .75s linear infinite;
}
@keyframes visit-spin{to{transform:rotate(360deg)}}

.visit-complete-card{max-width:800px;margin:0 auto}
.visit-complete-highlight{
  display:grid;
  grid-template-columns:1.1fr 1fr .65fr;
  gap:10px;
  margin:18px 0;
}
.visit-complete-highlight>div{
  display:grid;
  gap:5px;
  padding:13px;
  border:1px solid #cfe0d8;
  border-radius:12px;
  background:#f3f9f6;
}
.visit-complete-highlight span{font-size:.82rem;color:#64748b}
.visit-complete-highlight strong{font-size:1.02rem;color:#173f32}
.visit-complete-list{margin:0;display:grid;gap:0}
.visit-complete-list>div{
  display:grid;
  grid-template-columns:190px minmax(0,1fr);
  gap:16px;
  padding:10px 4px;
  border-bottom:1px solid #e5e7eb;
}
.visit-complete-list dt{font-weight:700;color:#475569}
.visit-complete-list dd{margin:0;overflow-wrap:anywhere}
.visit-complete-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}
@media(max-width:700px){
  .visit-picker-grid{grid-template-columns:1fr}
  .visit-complete-highlight{grid-template-columns:1fr}
  .visit-complete-list>div{grid-template-columns:1fr;gap:3px}
  .visit-complete-actions{grid-template-columns:1fr}
}
