*{box-sizing:border-box}html,body{height:100%}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Arial,sans-serif;margin:0;background:#f6f7fb;color:#0a0a0a}
.container{max-width:980px;margin:0 auto;padding:20px}
header h1{margin:0 0 8px}
.card{background:#fff;border:1px solid #e6e6ef;border-radius:16px;padding:16px;margin:16px 0;box-shadow:0 1px 2px rgba(0,0,0,.04)}
.grid.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.grid.three{display:grid;grid-template-columns:180px 1fr 1fr;gap:12px}
@media(max-width:720px){.grid.two{grid-template-columns:1fr}.grid.three{grid-template-columns:1fr}}
label{display:block;font-weight:600;margin:8px 0}
label.inline{display:flex;gap:8px;align-items:center;font-weight:600}
input[type=text],input[type=date],input[type=email],input[type=tel],select,textarea{width:100%;padding:10px 12px;border-radius:12px;border:1px solid #dcdce6;outline:none}
input:focus,select:focus,textarea:focus{border-color:#6e77ff;box-shadow:0 0 0 3px rgba(110,119,255,.15)}
.days{display:flex;flex-wrap:wrap;gap:10px}
.days label{font-weight:500;border:1px solid #ddd;border-radius:999px;padding:6px 10px;background:#fafafa}
#map{height:360px;border-radius:12px;overflow:hidden;border:1px solid #e6e6ef;margin:8px 0 12px}
select[multiple]{min-height:140px}
.consent{display:flex;gap:8px;align-items:flex-start;font-weight:600}
.actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
button{background:#6e77ff;color:#fff;border:none;border-radius:12px;padding:12px 18px;font-weight:700;cursor:pointer}
button.secondary{background:#fff;color:#333;border:1px solid #cfd3ff}
button.small{padding:8px 12px;border-radius:10px;font-weight:700}
button:disabled{opacity:.6;cursor:not-allowed}
#status{margin:0;color:#333}
.links{margin:8px 0 0 16px}
.hidden{display:none}
.stepper{list-style:none;display:flex;gap:12px;padding:0;margin:6px 0 0}
.stepper li{padding:6px 10px;border-radius:999px;border:1px solid #dcdce6;background:#fff;color:#555;font-weight:600}
.stepper li.active{background:#6e77ff;color:#fff;border-color:#6e77ff}
.review-grid{display:grid;grid-template-columns:1fr;gap:12px}
.review-grid .cardish{border:1px solid #ececf4;border-radius:12px;padding:12px;background:#fafbff}
.review-grid h3{margin:0 0 8px;font-size:1rem}
.review-grid dl{display:grid;grid-template-columns:auto 1fr;gap:6px 12px;margin:0}
.review-grid dt{font-weight:700;color:#555}
.review-grid dd{margin:0}
@media(min-width:860px){.review-grid{grid-template-columns:1fr 1fr}}
#ts-container{margin-left:auto}
.notice{border:1px solid #e6e6ef;background:#f7f8ff;color:#2a2a5a;border-radius:12px;padding:12px;margin:12px 0}
.notice.success{background:#f3fff6;color:#0a5322;border-color:#bfe5c6}
.notice.warn{background:#fff8e1;color:#5a4300;border-color:#ffe2a0}
.smallmuted{color:#666;font-size:.92rem}
#verifiedEmail{font-weight:700}
#status.loading::after {
    content: "";
    display: inline-block;
    width: 1em;
    height: 1em;
    margin-left: 0.5em;
    border: 2px solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
}

@keyframes spin {
    to {
        transform: rotate(360deg);
    }
}

/* === Progressive address layout === */
.address-block .hint { font-weight:500; color:#666; margin-left:6px; font-size:.9rem; }

.address-lookup-row {
  display: grid;
  grid-template-columns: 1fr 1fr auto;
  gap: 12px;
  align-items: end;
  margin-top: 8px;
}

.address-lookup-actions {
  margin-top: 6px;
}

.linkish {
  background: none;
  border: none;
  padding: 0;
  color: #6e77ff;
  font-weight: 700;
  cursor: pointer;
}

#addressResults {
  margin-top: 10px;
  width: 100%;
  max-height: 230px;
  overflow: auto;
  border: 1px solid #dcdce6;
  border-radius: 12px;
  padding: 8px 10px;
  background: #fff;
  font-size: 0.98rem;
}

#findAddressBtn { height: 40px; padding: 8px 14px; }

#addressFields .grid.two { margin-top: 10px; }
