:root{
  --xb-primary:#111827;
  --xb-accent:#ff5a1f;
  --xb-bg:#ffffff;
  --xb-muted:#6b7280;
  --xb-border:#e5e7eb;
  --xb-radius:14px;
}

.xb-modal{
  position:fixed; inset:0; z-index:999999;
  display:flex; align-items:center; justify-content:center;
  padding:16px;
}
.xb-modal[hidden]{ display:none; }

.xb-modal__overlay{
  position:absolute; inset:0;
  background:rgba(17,24,39,.55);
  backdrop-filter:blur(2px);
}

.xb-modal__box{
  position:relative;
  width:100%; max-width:420px;
  background:var(--xb-bg);
  border-radius:18px;
  padding:28px 24px 24px;
  box-shadow:0 30px 80px rgba(0,0,0,.25);
  animation:xbPop .25s ease;
  max-height:92vh; overflow:auto;
}
@keyframes xbPop{
  from{ transform:translateY(12px) scale(.98); opacity:0; }
  to{ transform:none; opacity:1; }
}

.xb-modal__close{
  position:absolute; right:14px; top:12px;
  width:34px; height:34px; border-radius:50%;
  border:1px solid var(--xb-border);
  background:#fff; cursor:pointer; font-size:20px; line-height:1;
  color:var(--xb-muted);
}
.xb-modal__close:hover{ color:#111; }

.xb-modal__box h2{
  margin:0 0 6px;
  font-size:22px; line-height:1.25;
  font-weight:800; letter-spacing:-.2px;
}
.xb-modal__box > p{
  margin:0 0 18px;
  color:var(--xb-muted); font-size:14px;
}

/* 浮动标签 */
.xb-field{ position:relative; margin-bottom:14px; }
.xb-field input{
  width:100%; height:52px;
  padding:22px 14px 8px;
  border:1px solid var(--xb-border);
  border-radius:var(--xb-radius);
  font-size:15px; background:#fafafa;
  outline:none;
  transition:border-color .15s, box-shadow .15s, background .15s;
}
.xb-field label{
  position:absolute; left:15px; top:16px;
  color:var(--xb-muted);
  font-size:14px; pointer-events:none;
  transition:.15s;
}
.xb-field input:focus{
  border-color:var(--xb-accent);
  background:#fff;
  box-shadow:0 0 0 4px rgba(255,90,31,.12);
}
.xb-field input:focus + label,
.xb-field input:not(:placeholder-shown) + label{
  top:8px; font-size:11px; font-weight:600;
  color:var(--xb-accent);
}
.xb-req{ color:#ef4444; }

/* 电话 */
.xb-phone-row{
  display:flex; gap:8px; margin-bottom:14px;
}
.xb-phone-country{
  flex:0 0 110px; height:52px;
  border:1px solid var(--xb-border);
  border-radius:var(--xb-radius);
  background:#fafafa; padding:0 8px; font-size:14px;
}
.xb-phone-number{
  flex:1; height:52px;
  border:1px solid var(--xb-border);
  border-radius:var(--xb-radius);
  padding:0 14px; font-size:15px; background:#fafafa;
}
.xb-phone-number:focus, .xb-phone-country:focus{
  border-color:var(--xb-accent); background:#fff;
  box-shadow:0 0 0 4px rgba(255,90,31,.12);
}

/* 勾选 */
.xb-check{
  display:flex; gap:10px;
  align-items:flex-start;
  font-size:13px; color:#374151;
  margin:10px 0;
  line-height:1.5;
}
.xb-check input{ margin-top:3px; flex-shrink:0; }
.xb-more{
  color:var(--xb-accent);
  text-decoration:underline; font-size:12.5px;
  margin-left:4px;
}
.xb-full{
  display:none;
  margin:6px 0 4px;
  padding:10px 12px;
  background:#f9fafb;
  border:1px solid var(--xb-border);
  border-radius:10px;
  font-size:12px; line-height:1.6;
  color:#4b5563;
}
.xb-full.open{ display:block; max-height:180px; overflow:auto; }

/* 按钮 */
.xb-modal__box button[type=submit]{
  width:100%; height:52px;
  margin-top:8px;
  border:0; border-radius:var(--xb-radius);
  background:var(--xb-accent); color:#fff;
  font-size:16px; font-weight:700; cursor:pointer;
}
.xb-modal__box button[type=submit]:hover{ filter:brightness(.96); }
.xb-modal__box button[type=submit]:disabled{ opacity:.6; cursor:not-allowed; }

.xb-msg{ font-size:13px; margin-top:10px; min-height:18px; }

@media (max-width:480px){
  .xb-modal__box{ padding:22px 18px; }
  .xb-phone-country{ flex-basis:96px; }
}