    :root {
      --care-primary: #30308c;
      --care-primary-2: #3d42b7;
      --care-red: #ff1d13;
      --care-panel: #2f3188;
      --shadow-card: 0 22px 60px rgba(0, 0, 0, .22);
      --bg: #f4f6fb;
      --card: #ffffff;
      --text: #171923;
      --muted: #667085;
      --field-bg: #ffffff;
      --field-border: #d6d9e0;
      --field-text: #171923;
      --field-placeholder: #8a93a3;
      --divider: #e7e9f0;
    }

    body.dark-mode {
      --bg: #111318;
      --card: #14161c;
      --text: #ffffff;
      --muted: #a8afbf;
      --field-bg: #454545;
      --field-border: #848994;
      --field-text: #ffffff;
      --field-placeholder: #b9bec8;
      --divider: #252934;
      --shadow-card: 0 24px 70px rgba(0, 0, 0, .38);
    }

    * {
      box-sizing: border-box;
    }

    body {
      min-height: 100vh;
      margin: 0;
      background: var(--bg);
      color: var(--text);
      font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
      transition: background-color .2s ease, color .2s ease;
    }

    a {
      color: var(--care-primary-2);
      font-weight: 800;
      text-decoration: none;
    }

    a:focus-visible,
    button:focus-visible,
    input:focus-visible,
    select:focus-visible {
      outline: 3px solid rgba(85, 132, 255, .45);
      outline-offset: 2px;
    }

    .registration-shell {
      min-height: 100vh;
      padding: clamp(18px, 4vw, 54px);
      display: flex;
      align-items: center;
      justify-content: center;
    }

    .registration-layout {
      width: min(1920px, 100%);
      min-height: min(760px, calc(100vh - 72px));
      display: grid;
      grid-template-columns: minmax(300px, 32%) 1fr;
      gap: clamp(20px, 3vw, 42px);
      align-items: stretch;
    }

    .side-panel {
      background: var(--care-panel);
      color: #fff;
      padding: clamp(26px, 3vw, 44px);
      display: flex;
      flex-direction: column;
      box-shadow: 0 18px 40px rgba(28, 30, 98, .22);
      min-height: 620px;
    }

    .brand-mark {
      width: 64px;
      height: 64px;
      border-radius: 16px;
      background: #fff;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      box-shadow: 0 10px 22px rgba(0, 0, 0, .12);
      margin-bottom: 12px;
    }

    .brand-mark span {
      position: relative;
      font-size: 28px;
      line-height: 1;
      font-weight: 900;
      color: var(--care-primary);
      letter-spacing: -1px;
    }

    .brand-mark span::after {
      content: "";
      position: absolute;
      width: 14px;
      height: 14px;
      right: -14px;
      top: 5px;
      border: 5px solid var(--care-red);
      border-radius: 50% 50% 50% 0;
      transform: rotate(-45deg);
    }

    .side-title {
      font-size: clamp(40px, 4vw, 58px);
      font-weight: 950;
      line-height: 1;
      margin: 0 0 40px;
      color: #fff;
    }

    .stepper {
      position: relative;
      display: flex;
      flex-direction: column;
      margin-top: 4px;
      padding-left: 8px;
      list-style: none;
    }

    .stepper-item {
      position: relative;
      display: grid;
      grid-template-columns: 44px 1fr;
      align-items: center;
      min-height: 145px;
    }

    .stepper-item:last-child {
      min-height: 44px;
    }

    .stepper-item:not(:last-child)::after {
      content: "";
      position: absolute;
      left: 11px;
      top: 42px;
      width: 10px;
      height: calc(100% - 30px);
      border-radius: 999px;
      background: rgba(255, 255, 255, .92);
      z-index: 0;
    }

    .stepper-item.completed:not(:last-child)::after {
      background: var(--care-red);
    }

    .stepper-circle {
      width: 32px;
      height: 32px;
      border-radius: 50%;
      border: 4px solid #fff;
      background: var(--care-panel);
      z-index: 2;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      color: #fff;
      box-shadow: 0 0 0 1px rgba(255, 255, 255, .16);
      transition: all .2s ease;
    }

    .stepper-item.active .stepper-circle {
      border-color: #78bcff;
      background: #fff;
      color: var(--care-primary);
      box-shadow: 0 0 0 4px rgba(120, 188, 255, .18);
    }

    .stepper-item.completed .stepper-circle {
      border-color: #fff;
      background: var(--care-red);
    }

    .stepper-label {
      font-size: 20px;
      font-weight: 600;
      line-height: 1.2;
      color: rgba(255, 255, 255, .92);
    }

    .stepper-item.active .stepper-label,
    .stepper-item.completed .stepper-label {
      font-weight: 900;
      color: #fff;
    }

    .main-panel {
      display: flex;
      align-items: center;
      min-width: 0;
    }

    .form-card {
      width: 100%;
      min-height: 620px;
      background: var(--card);
      border-radius: 20px;
      box-shadow: var(--shadow-card);
      padding: clamp(26px, 4vw, 46px);
      display: flex;
      flex-direction: column;
      transition: background-color .2s ease;
    }

    .step-view {
      display: none;
      flex: 1;
    }

    .step-view.active {
      display: flex;
      flex-direction: column;
      animation: fadeUp .24s ease both;
    }

    @keyframes fadeUp {
      from {
        opacity: 0;
        transform: translateY(8px);
      }

      to {
        opacity: 1;
        transform: translateY(0);
      }
    }

    .step-kicker {
      color: var(--muted);
      font-size: 14px;
      font-weight: 900;
      text-transform: uppercase;
      text-align: center;
      margin-bottom: 4px;
    }

    .step-title {
      color: var(--text);
      font-size: clamp(34px, 4vw, 48px);
      line-height: 1.05;
      font-weight: 950;
      text-align: center;
      margin: 0;
    }

    .step-subtitle,
    .final-message {
      color: var(--muted);
      text-align: center;
      font-size: 18px;
      margin: 12px 0 26px;
    }

    .form-label {
      color: var(--text);
      font-size: 16px;
      font-weight: 850;
      margin-bottom: 7px;
    }

    .form-control,
    .form-select {
      min-height: 52px;
      border-radius: 12px;
      border-color: var(--field-border);
      background-color: var(--field-bg);
      color: var(--field-text);
      font-size: 17px;
      transition: border-color .15s ease, box-shadow .15s ease, background-color .15s ease;
    }

    .form-control::placeholder {
      color: var(--field-placeholder);
    }

    .password-field {
      position: relative;
    }

    .password-field .form-control {
      padding-right: 44px;
    }

    .password-toggle-btn {
      position: absolute;
      top: 50%;
      right: 6px;
      transform: translateY(-50%);
      border: 0;
      background: transparent;
      color: var(--muted);
      font-size: 18px;
      line-height: 1;
      padding: 8px;
      display: flex;
      align-items: center;
      justify-content: center;
    }

    .password-toggle-btn:hover,
    .password-toggle-btn:focus {
      color: var(--care-primary);
    }

    .form-control:focus,
    .form-select:focus {
      background-color: var(--field-bg);
      color: var(--field-text);
      border-color: var(--care-primary-2);
      box-shadow: 0 0 0 .22rem rgba(61, 66, 183, .2);
    }

    .form-control.is-invalid,
    .form-select.is-invalid {
      border-color: #dc3545;
      background-image: none;
    }

    .form-text {
      color: var(--muted);
      font-size: 14px;
    }

    .invalid-feedback,
    .valid-feedback {
      font-size: 14px;
      font-weight: 650;
    }

    .phone-grid {
      display: grid;
      grid-template-columns: 116px 1fr auto;
      gap: 12px;
      align-items: start;
    }

    .country-code {
      font-weight: 800;
      text-align: center;
    }

    .btn-primary-care {
      min-height: 52px;
      border: 0;
      border-radius: 10px;
      background: var(--care-primary);
      color: #fff;
      font-size: 17px;
      font-weight: 850;
      padding-inline: 24px;
      box-shadow: 0 12px 24px rgba(48, 48, 140, .24);
    }

    .btn-primary-care:hover,
    .btn-primary-care:focus {
      background: #262877;
      color: #fff;
    }

    .btn-primary-care:disabled {
      opacity: .45;
      box-shadow: none;
      cursor: not-allowed;
    }

    .btn-secondary-care {
      min-height: 52px;
      border: 0;
      border-radius: 10px;
      background: #505050;
      color: #fff;
      font-size: 17px;
      font-weight: 800;
      padding-inline: 24px;
    }

    .btn-secondary-care:hover,
    .btn-secondary-care:focus {
      background: #414141;
      color: #fff;
    }

    .social-divider {
      display: grid;
      grid-template-columns: 1fr auto 1fr;
      gap: 16px;
      align-items: center;
      color: var(--muted);
      margin: 24px 0 18px;
      font-weight: 800;
    }

    .social-divider::before,
    .social-divider::after {
      content: "";
      height: 1px;
      background: var(--divider);
    }

    .social-buttons {
      display: grid;
      grid-template-columns: repeat(4, minmax(80px, 1fr));
      gap: 16px;
      max-width: 720px;
      margin: 0 auto;
      width: 100%;
    }

    .social-btn {
      min-height: 52px;
      border-radius: 10px;
      border: 1px solid var(--field-border);
      background: rgba(255, 255, 255, .02);
      color: var(--text);
      font-size: 24px;
    }

    .social-btn:hover {
      border-color: var(--care-primary-2);
      background: rgba(61, 66, 183, .09);
    }

    .icon-google {
      color: #24a853;
    }

    .icon-apple {
      color: var(--text);
    }

    .icon-facebook {
      color: #2866d9;
    }

    .icon-outlook {
      color: #0a76d6;
    }

    .login-copy {
      color: var(--muted);
      text-align: center;
      font-size: 16px;
      margin: 18px 0 0;
    }

    .password-list {
      display: grid;
      grid-template-columns: repeat(5, minmax(120px, 1fr));
      gap: 8px;
      margin-top: 10px;
    }

    .password-rule {
      min-height: 34px;
      border-radius: 999px;
      padding: 7px 10px;
      background: rgba(120, 128, 150, .14);
      color: var(--muted);
      font-size: 13px;
      font-weight: 800;
      display: inline-flex;
      align-items: center;
      gap: 7px;
      white-space: nowrap;
    }

    .password-rule.valid {
      background: rgba(25, 135, 84, .14);
      color: #28a86d;
    }

    .otp-panel {
      display: none;
      margin-top: 12px;
      padding: 14px;
      border: 1px solid rgba(61, 66, 183, .22);
      background: rgba(61, 66, 183, .07);
      border-radius: 12px;
    }

    .otp-panel.show {
      display: block;
    }

    .otp-input {
      max-width: 210px;
      text-align: center;
      letter-spacing: 8px;
      font-weight: 900;
      font-size: 22px;
    }

    .vehicle-header-band {
      background: var(--care-primary);
      color: #fff;
      border-radius: 8px;
      min-height: 54px;
      display: flex;
      justify-content: center;
      align-items: center;
      gap: 12px;
      font-weight: 850;
      font-size: 18px;
      margin-bottom: 26px;
    }

    .help-dot {
      width: 32px;
      height: 32px;
      border: 0;
      border-radius: 50%;
      color: #fff;
      background: #555;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      margin-left: 8px;
      font-weight: 900;
    }

    .vin-secondary {
      opacity: .88;
    }

    .summary-card {
      border: 1px solid var(--divider);
      border-radius: 14px;
      background: rgba(120, 128, 150, .08);
      padding: 20px;
      max-width: 780px;
      width: 100%;
      margin: 12px auto 0;
    }

    .summary-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 14px;
    }

    .summary-item {
      padding: 14px;
      border-radius: 10px;
      background: rgba(255, 255, 255, .04);
      border: 1px solid rgba(120, 128, 150, .12);
    }

    body:not(.dark-mode) .summary-item {
      background: #fff;
    }

    .summary-label {
      color: var(--muted);
      font-size: 13px;
      font-weight: 900;
      text-transform: uppercase;
      margin-bottom: 4px;
    }

    .summary-value {
      color: var(--text);
      font-size: 17px;
      font-weight: 850;
      word-break: break-word;
    }

    .final-illustration {
      width: min(460px, 100%);
      margin: 8px auto 0;
      display: block;
    }

    .actions-row {
      margin-top: auto;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 14px;
      padding-top: 26px;
    }

    .actions-row.end {
      justify-content: flex-end;
    }

    .theme-badge {
      position: fixed;
      right: 18px;
      bottom: 16px;
      z-index: 1060;
      border-radius: 999px;
      background: rgba(48, 48, 140, .94);
      color: #fff;
      padding: 8px 12px;
      font-size: 12px;
      font-weight: 800;
      box-shadow: 0 10px 28px rgba(0, 0, 0, .22);
    }

    .toast-container {
      z-index: 1080;
    }

    .required-hint {
      color: #dc3545;
    }

    @media (max-width: 1100px) {
      .registration-shell {
        align-items: flex-start;
      }

      .registration-layout {
        grid-template-columns: 1fr;
        min-height: auto;
      }

      .side-panel {
        min-height: auto;
        padding: 22px;
        border-radius: 18px;
      }

      .side-title {
        margin-bottom: 22px;
        font-size: 38px;
      }

      .stepper {
        flex-direction: row;
        padding-left: 0;
        justify-content: space-between;
      }

      .stepper-item,
      .stepper-item:last-child {
        min-height: auto;
        grid-template-columns: 1fr;
        grid-template-rows: 36px auto;
        justify-items: center;
        flex: 1;
        text-align: center;
      }

      .stepper-item:not(:last-child)::after {
        left: calc(50% + 16px);
        top: 12px;
        width: calc(100% - 32px);
        height: 8px;
      }

      .stepper-label {
        font-size: 14px;
        margin-top: 8px;
      }

      .main-panel {
        align-items: flex-start;
      }

      .form-card {
        min-height: auto;
      }
    }

    @media (max-width: 760px) {
      .registration-shell {
        padding: 12px;
      }

      .brand-mark {
        width: 54px;
        height: 54px;
        border-radius: 14px;
      }

      .form-card {
        border-radius: 16px;
        padding: 20px;
      }

      .step-title {
        font-size: 32px;
      }

      .step-subtitle,
      .final-message {
        font-size: 16px;
      }

      .phone-grid {
        grid-template-columns: 94px 1fr;
      }

      .phone-grid .btn-primary-care {
        grid-column: 1 / -1;
      }

      .password-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }

      .password-rule {
        white-space: normal;
      }

      .social-buttons {
        grid-template-columns: repeat(2, 1fr);
      }

      .summary-grid {
        grid-template-columns: 1fr;
      }

      .actions-row,
      .actions-row.end {
        flex-direction: column-reverse;
        align-items: stretch;
      }

      .btn-primary-care,
      .btn-secondary-care {
        width: 100%;
      }
    }

    @media (max-width: 460px) {
      .side-panel {
        padding: 18px;
      }

      .stepper-label {
        font-size: 12px;
      }

      .stepper-circle {
        width: 28px;
        height: 28px;
      }

      .stepper-item:not(:last-child)::after {
        left: calc(50% + 14px);
        top: 10.5px;
        width: calc(100% - 28px);
        height: 7px;
      }

      .password-list {
        grid-template-columns: 1fr;
      }
    }