* { box-sizing: border-box; }
:root {
  --reg-bg: #f7f8fb;
  --reg-surface: #ffffff;
  --reg-heading: #121722;
  --reg-body: #303846;
  --reg-muted: #5d6879;
  --reg-line: #e1e5ec;
  --reg-line-strong: #cdd3de;
  --reg-purple: #635bff;
  --reg-purple-dark: #4f47dc;
  --reg-purple-soft: #f5f3ff;
  --reg-success: #17734b;
  --reg-success-bg: #eef8f3;
  --reg-error: #b42318;
  --reg-error-bg: #fff3f1;
}
html { background: var(--reg-bg); }
body.registration-page {
  min-height: 100vh;
  margin: 0;
  color: var(--reg-body);
  background:
    radial-gradient(circle at 86% 16%, rgba(99,91,255,.075), transparent 31%),
    linear-gradient(180deg, #fbfbfd 0%, var(--reg-bg) 100%);
  font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 15px;
  line-height: 1.48;
}
button,input,select { font: inherit; }
a { color: inherit; }
.reg-main { width: min(1180px, calc(100% - 48px)); margin: 0 auto; padding: 42px 0 64px; }
.reg-shell { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(330px, .85fr); gap: 54px; align-items: start; }
.form-card {
  min-width: 0;
  padding: 34px;
  background: rgba(255,255,255,.97);
  border: 1px solid var(--reg-line);
  border-radius: 22px;
  box-shadow: 0 18px 52px rgba(38,45,69,.08);
}
.form-card-intro { margin-bottom: 23px; }
.form-card-intro > span { display: block; margin: 0; color: var(--reg-heading); font-size: clamp(24px, 2.35vw, 32px); font-weight: 800; letter-spacing: -.035em; line-height: 1.16; }
.form-card-intro p { margin: 9px 0 0; color: var(--reg-body); font-size: 14px; line-height: 1.55; }
.progress-wrap { margin: 0 0 27px; padding: 17px 18px 15px; background: #fafafd; border: 1px solid #e6e8ee; border-radius: 15px; }
.progress-label { margin-bottom: 12px; color: #4d5666; font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.progress-track { position: relative; display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); }
.progress-track::before { content:""; position:absolute; top: 16px; left: 16.666%; right: 16.666%; height: 2px; background: #e0e3ea; }
.progress-line { position:absolute; z-index: 1; top: 16px; left: 16.666%; width: 0; height: 2px; background: var(--reg-purple); transition: width .2s ease; }
.progress-step { position: relative; z-index: 2; display: grid; justify-items: center; gap: 7px; color: #697385; font-size: 12px; font-weight: 650; text-align: center; }
.progress-number { width: 34px; height: 34px; display: grid; place-items: center; color: #596273; background: #fff; border: 1px solid #d5dae3; border-radius: 50%; font-size: 12px; font-weight: 800; }
.progress-step.is-active { color: var(--reg-heading); }
.progress-step.is-active .progress-number, .progress-step.is-done .progress-number { color: #fff; background: var(--reg-purple); border-color: var(--reg-purple); box-shadow: 0 5px 14px rgba(99,91,255,.18); }
.alert { margin: 0 0 18px; padding: 13px 15px; border-radius: 12px; font-size: 13px; line-height: 1.5; }
.alert-error { color: var(--reg-error); background: var(--reg-error-bg); border: 1px solid #ffd5cf; }
.alert-success { color: #24523f; background: var(--reg-success-bg); border: 1px solid #cfeadb; }
.invitation-registration-banner strong { color: #173f31; }
.google-registration-card { margin: 0 0 20px; }
.google-registration-card p { margin: 0 0 10px; color: var(--reg-body); font-size: 13px; }
.google-register-button { width: 100%; min-height: 48px; justify-content: center; gap: 10px; color: #20242c; background: #fff; border: 1px solid var(--reg-line-strong); box-shadow: 0 4px 13px rgba(31,38,58,.055); }
.google-register-button:hover { background: #fafafa; border-color: #bfc6d2; }
.google-g-icon { width: 19px; height: 19px; display: inline-flex; }
.google-g-icon svg { width: 100%; height: 100%; }
.google-register-label { display: inline-flex; align-items: center; gap: 4px; }
.google-word span { font-weight: 700; }.google-blue{color:#4285f4}.google-red{color:#ea4335}.google-yellow{color:#fbbc05}.google-green{color:#34a853}
.step-panel { display: none; }
.step-panel.is-active { display: block; }
.step-head { margin-bottom: 22px; }
.step-head h2 { margin: 0; color: var(--reg-heading); font-size: 19px; font-weight: 780; letter-spacing: -.02em; }
.step-head p { margin: 7px 0 0; color: var(--reg-body); font-size: 13.5px; line-height: 1.58; }
.field-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 15px; }
.field { min-width: 0; }
.field.is-full { grid-column: 1 / -1; }
.field label, .radio-label, .registry-action-label { display: block; margin: 0 0 7px; color: #1e2530; font-size: 13px; font-weight: 720; }
.field label small { color: #697386; font-size: 11.5px; font-weight: 500; }
.control, .select-control { width: 100%; min-height: 48px; padding: 11px 13px; color: #11141a; background: #fff; border: 1px solid #cfd5df; border-radius: 11px; outline: none; font-size: 15px; transition: border-color .15s, box-shadow .15s, background .15s; }
.control::placeholder { color: #747f90; opacity: 1; }
.control:focus, .select-control:focus { border-color: var(--reg-purple); box-shadow: 0 0 0 4px rgba(99,91,255,.10); }
.control[readonly] { color: #414958; background: #f6f7f9; }
.password-wrap { position: relative; }
.password-wrap .control { padding-right: 48px; }
.password-toggle { position: absolute; top: 50%; right: 8px; width: 34px; height: 34px; display: grid; place-items: center; transform: translateY(-50%); padding: 0; color: #606a79; background: transparent; border: 0; border-radius: 8px; cursor: pointer; }
.password-toggle:hover { color: var(--reg-purple-dark); background: var(--reg-purple-soft); }
.password-eye-icon { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.password-eye-icon--closed { display: none; }.password-toggle.is-visible .password-eye-icon--open{display:none}.password-toggle.is-visible .password-eye-icon--closed{display:block}
.radio-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.radio-card { position: relative; cursor: pointer; }
.radio-card input { position: absolute; opacity: 0; pointer-events: none; }
.radio-card span { min-height: 54px; display: grid; place-items: center; padding: 10px 13px; color: var(--reg-heading); background: #fff; border: 1px solid #d5dae3; border-radius: 11px; font-size: 14px; font-weight: 700; transition: .15s; }
.radio-card input:checked + span { color: #433cc3; background: var(--reg-purple-soft); border-color: var(--reg-purple); box-shadow: 0 0 0 3px rgba(99,91,255,.08); }
.registry-lookup-block { margin-top: 2px; }
.registry-lookup-grid { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(150px,.72fr) auto; gap: 10px; align-items: end; }
.registry-action-cell { min-width: 172px; }
.registry-fill-button { width: 100%; min-height: 48px; gap: 8px; color: #383252; background: #f6f5ff; border: 1px solid #d5d1ff; }
.registry-fill-button svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.registry-fill-button:disabled { opacity: .52; cursor: not-allowed; }
.registry-hint { margin: 9px 0 0; color: var(--reg-muted); font-size: 12.5px; line-height: 1.5; }
.registry-status { display: none; margin-top: 8px; font-size: 12.5px; }.registry-status.is-visible{display:block}.registry-status.is-success{color:var(--reg-success)}.registry-status.is-error{color:var(--reg-error)}
.company-search-wrap { position: relative; }
.company-search-results { position: absolute; z-index: 20; top: calc(100% + 7px); left: 0; right: 0; max-height: 290px; overflow-y: auto; padding: 6px; background: #fff; border: 1px solid #d9dee7; border-radius: 12px; box-shadow: 0 18px 38px rgba(26,33,52,.15); }
.company-search-result { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 11px; color: var(--reg-heading); background: transparent; border: 0; border-radius: 9px; text-align: left; cursor: pointer; }
.company-search-result:hover, .company-search-result.is-active { background: #f4f3ff; }
.company-search-result-main { min-width: 0; }.company-search-result-name { display:block; font-size:13.5px; font-weight:700; }.company-search-result-meta { display:block; margin-top:2px; color:var(--reg-muted); font-size:11.5px; }
.company-search-result-action { flex:none; color:var(--reg-purple-dark); font-size:12px; font-weight:700; }
.company-search-message { padding: 12px; color: var(--reg-muted); font-size: 12.5px; }.company-search-message.is-error{color:var(--reg-error)}
.why-box { padding: 14px 15px; background: #f8f8fb; border: 1px solid #e4e6ec; border-radius: 12px; }
.why-box strong { display: block; color: var(--reg-heading); font-size: 13.5px; }.why-box span{display:block;margin-top:4px;color:var(--reg-body);font-size:12.5px;line-height:1.5}
.review-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.review-card { padding: 17px; background: #f8f9fb; border: 1px solid #e2e5eb; border-radius: 13px; }
.review-card h3 { margin: 0 0 12px; color: var(--reg-heading); font-size: 15px; }
.review-row { display: grid; grid-template-columns: minmax(105px,.75fr) minmax(0,1.25fr); gap: 10px; padding: 8px 0; border-top: 1px solid #e4e7ed; font-size: 12.5px; }
.review-row > span:first-child { color: var(--reg-muted); }.review-row > span:last-child { color: var(--reg-heading); font-weight: 650; overflow-wrap:anywhere; }
.inline-error { display:none; margin-top:16px; padding:12px 13px; color:var(--reg-error); background:var(--reg-error-bg); border:1px solid #ffd5cf; border-radius:10px; font-size:13px; }.inline-error.is-visible{display:block}
.terms-consent { margin-top: 18px; }
.terms-consent-label { display: flex; align-items: flex-start; gap: 10px; color: var(--reg-body); font-size: 13px; line-height: 1.55; }
.terms-consent-label input { width:18px; height:18px; flex:none; margin-top:1px; accent-color:var(--reg-purple); }.terms-consent-label a{color:#4d46d9;font-weight:700;text-decoration:none}.terms-consent-label a:hover{text-decoration:underline}
.actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 24px; padding-top: 21px; border-top: 1px solid var(--reg-line); }
.btn { min-height: 46px; display: inline-flex; align-items: center; justify-content: center; padding: 10px 18px; border-radius: 11px; font-size: 14px; font-weight: 760; text-decoration: none; cursor: pointer; transition: .16s; }
.btn-primary { color:#fff; background:linear-gradient(135deg,var(--reg-purple),#7669ff); border:1px solid var(--reg-purple); box-shadow:0 9px 20px rgba(99,91,255,.18); }.btn-primary:hover{background:linear-gradient(135deg,var(--reg-purple-dark),#695cf1);transform:translateY(-1px)}
.btn-secondary { color:#29303b; background:#fff; border:1px solid #ccd2dc; }.btn-secondary:hover{background:#f7f8fa;border-color:#b9c0cc}
.login-row { margin-top: 20px; color: var(--reg-body); font-size: 13px; text-align: center; }.login-row a{margin-left:4px;color:var(--reg-purple-dark);font-weight:700;text-decoration:none}
.intro-card { padding: 24px 4px 0; }
.intro-card__eyebrow { display: inline-flex; padding: 7px 10px; color:#5049c9; background:#f0efff; border-radius:999px; font-size:11px; font-weight:800; letter-spacing:.055em; text-transform:uppercase; }
.intro-card h1 { max-width: 520px; margin: 18px 0 13px; color: var(--reg-heading); font-size: clamp(34px, 3.7vw, 50px); font-weight: 800; letter-spacing: -.045em; line-height: 1.06; }
.intro-card__lead { max-width: 520px; margin:0; color:var(--reg-body); font-size:16px; line-height:1.62; }
.registration-process { display:grid; gap:18px; margin:31px 0 0; padding:0; list-style:none; }
.registration-process li { display:grid; grid-template-columns:38px 1fr; gap:13px; align-items:start; }
.registration-process__number { width:34px; height:34px; display:grid; place-items:center; color:#4b44cf; background:#f0efff; border:1px solid #dcd8ff; border-radius:50%; font-size:12px; font-weight:800; }
.registration-process strong { color:var(--reg-heading); font-size:14px; }.registration-process p{margin:4px 0 0;color:var(--reg-body);font-size:13px;line-height:1.5}
.registration-email-note { display:grid; grid-template-columns:40px 1fr; gap:13px; margin-top:30px; padding:17px; background:#f1f8f5; border:1px solid #d8ebe2; border-radius:15px; }
.registration-email-note__icon { width:38px; height:38px; display:grid; place-items:center; color:#247051; background:#fff; border-radius:11px; box-shadow:0 5px 14px rgba(36,112,81,.08); }.registration-email-note__icon svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.registration-email-note strong{color:#183b2e;font-size:14px}.registration-email-note p{margin:5px 0 0;color:#315747;font-size:12.8px;line-height:1.55}
[hidden] { display: none !important; }
@media (max-width: 980px) { .reg-shell{grid-template-columns:minmax(480px,1.1fr) minmax(290px,.9fr);gap:30px}.form-card{padding:28px}.registry-lookup-grid{grid-template-columns:1fr 1fr}.registry-action-cell{grid-column:1/-1;min-width:0}.registry-action-label{display:none}.intro-card h1{font-size:38px} }
@media (max-width: 840px) { .reg-main{width:min(680px,calc(100% - 28px));padding:30px 0 52px}.reg-shell{display:flex;flex-direction:column;gap:28px}.form-card{width:100%;order:1}.intro-card{width:100%;order:2;padding:8px 4px 0}
}
@media (max-width: 600px) { .reg-main{width:calc(100% - 22px);padding-top:22px}.form-card{padding:21px 17px;border-radius:18px}.form-card-intro>span{font-size:25px}.field-grid,.radio-grid,.review-grid{grid-template-columns:1fr}.field.is-full{grid-column:auto}.registry-lookup-grid{grid-template-columns:1fr}.registry-action-cell{grid-column:auto}.actions{display:grid;grid-template-columns:1fr}.actions .btn{width:100%}.progress-wrap{padding:15px 10px 13px}.progress-step{padding:0 2px;font-size:10.5px}.progress-number{width:31px;height:31px}.progress-track::before,.progress-line{top:15px}.intro-card h1{font-size:31px}.intro-card__lead{font-size:15px}.review-row{grid-template-columns:1fr;gap:3px}.google-register-label{flex-wrap:wrap;justify-content:center} }
@media (prefers-reduced-motion: reduce) { *,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important} }
