/* The registration rail follows confirmed service state. */
.tl-registration-aside { position:sticky; top:116px; align-self:start; }
.tl-progress-intro { max-width:32ch; margin:11px 0 0; color:var(--muted); font-size:11px; line-height:1.75; }
.tl-registration-steps { list-style:none; margin:25px 0 0; padding:0; display:grid; gap:9px; }
.tl-registration-step { position:relative; display:grid; grid-template-columns:34px minmax(0,1fr); gap:13px; padding:14px 14px 15px; border:1px solid transparent; border-radius:6px; transition:background-color .22s ease,border-color .22s ease,box-shadow .22s ease; }
.tl-step-marker { display:flex; align-items:center; justify-content:center; width:32px; height:32px; margin-top:2px; border:1px solid rgba(187,177,151,.2); border-radius:50%; color:#99988e; font-family:var(--font-display,Georgia,serif); font-size:15px; }
.tl-step-state { display:block; margin-bottom:4px; color:#898b83; font-size:8px; font-weight:600; letter-spacing:1.7px; text-transform:uppercase; }
.tl-registration-step h3 { margin:0; color:#c7c6ba; font-size:12px; font-weight:500; line-height:1.55; }
.tl-registration-step p { margin:6px 0 0; color:var(--muted); font-size:10px; line-height:1.75; }
.tl-registration-step.is-current { background:linear-gradient(110deg,rgba(184,154,96,.12),rgba(184,154,96,.025)); border-color:rgba(192,162,106,.42); box-shadow:0 0 23px rgba(181,145,76,.06),inset 2px 0 rgba(215,186,127,.8); }
.tl-registration-step.is-current .tl-step-marker { color:#f2d999; border-color:rgba(222,189,118,.7); background:rgba(194,158,87,.12); box-shadow:0 0 14px rgba(201,163,89,.14); }
.tl-registration-step.is-current .tl-step-state { color:#d9bc7f; }
.tl-registration-step.is-current h3 { color:#f1e7ce; }
.tl-registration-step.is-current p { color:#bbb8aa; }
.tl-registration-step.is-complete .tl-step-marker { color:#b1b6a5; border-color:rgba(160,171,143,.3); background:rgba(151,164,130,.06); font-family:inherit; font-size:14px; }
.tl-registration-step.is-complete h3 { color:#b2b3aa; }
.tl-registration-step.is-complete .tl-step-state { color:#a1a69a; }
.tl-email-receipt { display:flex; gap:13px; align-items:flex-start; padding:16px; margin:23px 0; border:1px solid rgba(163,176,143,.18); border-radius:5px; background:rgba(139,151,122,.045); }
.tl-email-receipt > span { color:#b4bfa3; font-size:16px; }
.tl-email-receipt strong { display:block; color:#b5baac; font-size:11px; font-weight:500; }
.tl-email-receipt p { margin:6px 0 0; color:#969e91; font-size:11px; line-height:1.65; overflow-wrap:anywhere; }
.tl-email-receipt input[readonly] { width:100%; min-height:34px; margin:7px 0 0; padding:6px 9px; color:#a7afa0; border-color:rgba(150,160,134,.2); background:rgba(31,37,30,.25); font-size:12px; }
.tl-email-receipt > div { min-width:0; flex:1; }
.tl-wait-actions { display:flex; align-items:center; flex-wrap:wrap; gap:16px 22px; margin:22px 0 13px; }
.tl-wait-actions .btn { min-height:45px; }
.tl-wait-status { padding-top:15px; border-top:1px solid rgba(184,165,121,.12); color:var(--muted); font-size:11px; line-height:1.8; }
.tl-success .tl-next-note { max-width:38ch; margin:15px auto 0; color:var(--muted); font-size:11px; line-height:1.8; }
@media (max-width:900px) { .tl-registration-step { padding:12px 9px; gap:10px; } }
@media (max-width:680px) {
  .tl-registration-aside { position:static; order:-1; padding-top:0; }
  .tl-registration-aside .tl-side-heading h2,.tl-registration-aside .tl-side-note,.tl-registration-aside .tl-progress-intro { display:none; }
  .tl-registration-aside .tl-side-heading { margin-bottom:0; }
  .tl-registration-steps { display:flex; gap:5px; margin-top:12px; overflow-x:auto; padding:0 0 8px; scroll-snap-type:x proximity; }
  .tl-registration-step { min-width:107px; flex:1 0 107px; display:flex; align-items:flex-start; flex-direction:column; gap:8px; padding:11px 10px; scroll-snap-align:start; }
  .tl-registration-step h3 { font-size:10px; line-height:1.5; }
  .tl-registration-step p { display:none; }
  .tl-step-state { font-size:7px; letter-spacing:.9px; }
  .tl-step-marker { width:26px; height:26px; font-size:12px; }
  .tl-wait-actions { align-items:flex-start; flex-direction:column; gap:17px; }
}
@media (prefers-reduced-motion:reduce) { .tl-registration-step { transition:none; } }
