/* ===== REGISTRATION MODAL ===== */
.modal{
  position:fixed;inset:0;z-index:200;
  display:flex;align-items:center;justify-content:center;
  opacity:0;pointer-events:none;
  transition:opacity .3s ease;
}
.modal.active{opacity:1;pointer-events:all}
.modal__overlay{
  position:absolute;inset:0;
  background:rgba(20,20,64,.55);
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
}
.modal__panel{
  position:relative;z-index:1;
  width:100%;max-width:520px;max-height:90vh;
  overflow-y:auto;
  background:var(--white);
  border-radius:var(--radius);
  box-shadow:0 30px 80px rgba(20,20,64,.18);
  padding:40px 36px 36px;
  transform:translateY(20px) scale(.97);
  transition:transform .35s var(--ease-out-expo);
}
.modal__summaries{
  display:flex;flex-direction:column;gap:0;
}
.modal.active .modal__panel{transform:translateY(0) scale(1)}
.modal__close{
  position:absolute;top:16px;right:16px;
  width:32px;height:32px;border-radius:var(--radius-xs);
  display:flex;align-items:center;justify-content:center;
  background:rgba(20,20,64,.04);color:var(--indigo);
  font-size:18px;line-height:1;
  transition:background .2s;
  cursor:pointer;border:none;
}
.modal__close:hover{background:rgba(20,20,64,.1)}
.modal__title{
  font-family:var(--font-heading);font-weight:800;
  font-size:22px;color:var(--indigo);margin-bottom:24px;
}

/* Plan summary */
.plan-summary{
  background:rgba(38,55,244,.04);
  border:1px solid rgba(38,55,244,.1);
  border-radius:var(--radius-sm);
  padding:18px 20px;margin-bottom:24px;
}
.plan-summary__title{
  font-family:var(--font-heading);font-weight:700;
  font-size:14px;color:var(--indigo);margin-bottom:2px;
}
.plan-summary__sub{
  font-size:13px;font-weight:400;color:rgba(20,20,64,.55);
  margin-bottom:10px;
}
.plan-summary ul{
  list-style:none;display:flex;flex-direction:column;gap:5px;
}
.plan-summary li{
  font-size:13px;font-weight:300;line-height:1.6;
  color:rgba(20,20,64,.65);padding-left:16px;position:relative;
}
.plan-summary li::before{
  content:'✓';position:absolute;left:0;top:0;
  color:var(--system-blue);font-weight:500;font-size:12px;
}

/* Billing summary */
.billing-summary{
  background:rgba(232,255,100,.12);
  border:1px solid rgba(232,255,100,.25);
  border-radius:var(--radius-sm);
  padding:18px 20px;margin-bottom:24px;
}
.billing-summary__title{
  font-family:var(--font-heading);font-weight:700;
  font-size:14px;color:var(--indigo);margin-bottom:10px;
}
.billing-summary ul{
  list-style:none;display:flex;flex-direction:column;gap:5px;
}
.billing-summary li{
  font-size:13px;font-weight:300;line-height:1.6;
  color:rgba(20,20,64,.65);padding-left:16px;position:relative;
}
.billing-summary li::before{
  content:'•';position:absolute;left:0;top:0;
  color:var(--indigo);font-weight:700;
}

/* Form fields */
.modal .form-row{
  display:grid;grid-template-columns:1fr 1fr;gap:16px;
}
.modal .form-group{
  display:flex;flex-direction:column;gap:6px;
  margin-bottom:16px;
}
.modal .form-group label{
  font-family:var(--font-heading);font-weight:700;font-size:13px;
  text-transform:uppercase;letter-spacing:1.5px;
  color:var(--indigo);
}
.modal .form-group input[type="text"],
.modal .form-group input[type="email"]{
  width:100%;padding:14px 16px;
  border:1px solid rgba(20,20,64,.12);
  border-radius:var(--radius-sm);
  font-family:var(--font-body);font-size:15px;font-weight:400;
  color:var(--indigo);background:var(--white);
  transition:border-color .2s,box-shadow .2s;
  outline:none;
}
.modal .form-group input::placeholder{color:rgba(20,20,64,.3);font-weight:300}
.modal .form-group input:focus{
  border-color:var(--system-blue);
  box-shadow:0 0 0 3px rgba(38,55,244,.08);
}
.modal .form-group input.error{
  border-color:var(--burnt-orange);
  box-shadow:0 0 0 3px rgba(223,109,78,.1);
}
.modal .form-group input.error:focus{
  border-color:var(--burnt-orange);
  box-shadow:0 0 0 3px rgba(223,109,78,.15);
}
.modal .form-error{
  font-size:13px;font-weight:400;color:var(--burnt-orange);
  min-height:18px;
}

/* Consent checkbox */
.modal .consent-row{
  display:flex;align-items:flex-start;gap:10px;
  margin-bottom:20px;
}
.modal .consent-row input[type="checkbox"]{
  width:18px;height:18px;margin-top:2px;
  accent-color:var(--system-blue);flex-shrink:0;
}
.modal .consent-row label{
  font-size:13px;font-weight:300;line-height:1.6;
  color:rgba(20,20,64,.6);cursor:pointer;
}

/* Actions */
.modal__actions{
  display:flex;gap:12px;justify-content:flex-end;
  padding-top:8px;
}

/* Loading */
.modal__loading{
  text-align:center;padding:40px 20px;display:none;
}
.modal__spinner{
  width:36px;height:36px;border-radius:50%;
  border:3px solid rgba(38,55,244,.12);
  border-top-color:var(--system-blue);
  animation:modalSpin .7s linear infinite;
  margin:0 auto 16px;
}
@keyframes modalSpin{to{transform:rotate(360deg)}}
.modal__loading p{
  font-size:15px;font-weight:400;color:rgba(20,20,64,.55);
}

/* Success */
.modal__success{
  text-align:center;padding:40px 20px;display:none;
}
.modal__success-icon{
  width:56px;height:56px;border-radius:50%;
  background:rgba(34,197,94,.1);color:#16a34a;
  display:flex;align-items:center;justify-content:center;
  font-size:28px;font-weight:500;
  margin:0 auto 16px;
}
.modal__success h3{
  font-weight:700;font-size:20px;color:var(--indigo);margin-bottom:8px;
}
.modal__success p{
  font-size:15px;font-weight:300;line-height:1.75;
  color:rgba(20,20,64,.6);max-width:360px;margin:0 auto;
}

/* General error */
.modal__error{
  display:none;
  background:rgba(223,109,78,.08);
  border:1px solid rgba(223,109,78,.2);
  border-radius:var(--radius-sm);
  padding:14px 18px;margin-bottom:16px;
}
.modal__error p{
  font-size:14px;font-weight:400;color:var(--burnt-orange);
  margin:0;
}

/* Desktop — wider two-column layout */
@media(min-width:740px){
  .modal__panel{max-width:720px;padding:40px 44px 36px}
  .modal__summaries{
    flex-direction:row;gap:20px;
  }
  .modal__summaries .plan-summary,
  .modal__summaries .billing-summary{flex:1;min-width:0}
}

/* Mobile */
@media(max-width:560px){
  .modal__panel{padding:28px 20px 24px;margin:0 12px}
  .modal .form-row{grid-template-columns:1fr}
  .modal__actions{flex-direction:column-reverse}
  .modal__actions .btn{width:100%;justify-content:center}
}
