/* ── Auth pages wrap ───────────────────────────────────────────────────────── */
.se-auth-wrap {
  min-height: 100vh;
  display: flex; align-items: center; justify-content: center;
  padding: calc(var(--nav-height) + var(--space-xl)) var(--space-md);
  background: var(--black);
}
.se-auth-card {
  background: #fff; border-radius: var(--radius-xl);
  padding: var(--space-2xl); width: 100%; max-width: 440px;
  box-shadow: var(--shadow-xl); border: 1px solid var(--color-border);
}
.se-auth-brand { text-align: center; margin-bottom: var(--space-xl); }
.se-auth-brand img { height: 44px; width: auto; margin: 0 auto var(--space-md); }
.se-auth-brand__name {
  font-family: var(--font-heading); font-size: 1.5rem; font-weight: 800;
  color: var(--color-primary); display: block; margin-bottom: var(--space-sm);
}
.se-auth-brand__sub { font-size: 0.9375rem; color: var(--color-text-muted); }
.se-auth-form  { display: flex; flex-direction: column; gap: var(--space-md); }
.se-auth-switch { text-align: center; font-size: 0.9375rem; color: var(--color-text-muted); margin-top: var(--space-lg); }
.se-auth-switch a { font-weight: 600; }

/* ── Register wrap ─────────────────────────────────────────────────────────── */
.se-register-wrap { padding: calc(var(--nav-height) + var(--space-2xl)) 0 var(--space-3xl); min-height: 100vh; background: var(--color-light); }
.se-register-container { max-width: 860px; }
.se-register-header { text-align: center; margin-bottom: var(--space-2xl); }
.se-register-title {
  font-family: var(--font-heading); font-size: clamp(1.75rem,3vw,2.5rem);
  font-weight: 800; color: var(--color-text); letter-spacing: -.02em;
}
.se-register-sub   { font-size: 1.0625rem; color: var(--color-text-muted); margin-top: var(--space-sm); }
.se-register-login-link { font-size: 0.9375rem; color: var(--color-text-muted); margin-top: var(--space-sm); }
.se-register-login-link a { font-weight: 600; }

/* ── Form fields ───────────────────────────────────────────────────────────── */
.se-field { display: flex; flex-direction: column; gap: 6px; }
.se-label { font-size: 0.875rem; font-weight: 600; color: var(--color-text); }
.se-label-row { display: flex; align-items: center; justify-content: space-between; }
.se-label-link { font-size: 0.8125rem; color: var(--color-primary-light); }
.se-label-opt  { font-size: 0.8rem; font-weight: 400; color: var(--color-text-muted); }
.se-required   { color: #d63638; }
.se-field-hint { font-size: 0.8125rem; color: var(--color-text-muted); }

.se-input, .se-select {
  height: 44px;
  border: 1.5px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: 0 14px;
  font-family: var(--font); font-size: 0.9375rem; color: var(--color-text);
  background: #fff;
  transition: border-color var(--transition), box-shadow var(--transition);
  width: 100%;
}
.se-input:focus, .se-select:focus {
  outline: none;
  border-color: var(--color-primary-light);
  box-shadow: 0 0 0 3px rgba(34,113,177,.15);
}
.se-input.error { border-color: #d63638; }

/* Password eye toggle */
.se-input-eye { position: relative; }
.se-input-eye .se-input { padding-right: 44px; }
.se-eye-toggle {
  position: absolute; right: 12px; top: 50%; transform: translateY(-50%);
  background: none; border: none; cursor: pointer; color: var(--color-text-muted);
  padding: 0; display: flex; align-items: center;
}
.se-eye-toggle:hover { color: var(--color-text); }

/* Phone group */
.se-phone-group { display: flex; gap: 10px; }
.se-phone-code  { width: 220px; flex-shrink: 0; }
.se-phone-number { flex: 1; }
@media (max-width: 540px) {
  .se-phone-group { flex-direction: column; }
  .se-phone-code  { width: 100%; }
}

/* Checkbox */
.se-field--checkbox { flex-direction: row; align-items: flex-start; }
.se-checkbox-label {
  display: flex; align-items: flex-start; gap: 10px; cursor: pointer;
  font-size: 0.9375rem; color: var(--color-text); line-height: 1.5;
}
.se-checkbox-label input[type="checkbox"] { margin-top: 3px; flex-shrink: 0; width: 16px; height: 16px; accent-color: var(--color-primary-light); }

/* Form notice */
.se-form-notice {
  display: flex; align-items: flex-start; gap: 10px;
  border-radius: var(--radius-md); padding: var(--space-md);
  font-size: 0.9375rem; margin-bottom: var(--space-md);
}
.se-form-notice--error   { background: #fde8e8; color: #8a2424; border: 1px solid #f5c6c6; }
.se-form-notice--success { background: #d8f1dc; color: #00672b; border: 1px solid #a8dfb0; }
.se-notice-list { margin: 0; padding: 0 0 0 var(--space-md); list-style: disc; }
.se-notice-list li { margin-bottom: 4px; }

/* Grid helpers */
.se-form-grid { display: grid; gap: var(--space-md); }
.se-form-grid--2 { grid-template-columns: 1fr 1fr; }
.se-form-grid--3 { grid-template-columns: 1fr 1fr 1fr; }
@media (max-width: 600px) {
  .se-form-grid--2,
  .se-form-grid--3 { grid-template-columns: 1fr; }
}

/* ── Registration form sections ────────────────────────────────────────────── */
.se-register-form { display: flex; flex-direction: column; gap: var(--space-xl); }

.se-reg-section {
  background: #fff; border-radius: var(--radius-xl);
  border: 1px solid var(--color-border); padding: var(--space-xl) var(--space-2xl);
  display: flex; flex-direction: column; gap: var(--space-lg);
}
@media (max-width: 600px) { .se-reg-section { padding: var(--space-lg); } }

.se-reg-section__head { display: flex; align-items: flex-start; gap: var(--space-md); }
.se-reg-step {
  flex-shrink: 0; width: 36px; height: 36px;
  background: var(--color-primary-light); color: #fff;
  border-radius: var(--radius-full); display: flex; align-items: center; justify-content: center;
  font-family: var(--font-heading); font-size: 0.875rem; font-weight: 700; margin-top: 3px;
}
.se-reg-section__title {
  font-family: var(--font-heading); font-size: 1.25rem; font-weight: 700;
  color: var(--color-text); margin: 0;
}
.se-reg-section__sub { font-size: 0.9375rem; color: var(--color-text-muted); margin: 4px 0 0; }

/* Service selection cards */
.se-service-cards {
  display: grid; grid-template-columns: repeat(2,1fr); gap: var(--space-md);
}
@media (max-width: 640px) { .se-service-cards { grid-template-columns: 1fr; } }

.se-service-card {
  position: relative; cursor: pointer;
}
.se-service-card__input {
  position: absolute; opacity: 0; width: 0; height: 0; pointer-events: none;
}
.se-service-card__body {
  border: 2px solid var(--color-border); border-radius: var(--radius-lg);
  padding: var(--space-lg); display: flex; flex-direction: column; gap: 8px;
  transition: all var(--transition); position: relative;
}
.se-service-card__body:hover { border-color: var(--color-primary-light); box-shadow: var(--shadow-md); }
.se-service-card__input:checked + .se-service-card__body {
  box-shadow: var(--shadow-md);
}
.se-service-card--mt  .se-service-card__input:checked + .se-service-card__body { border-color: var(--color-mt);  background: var(--color-mt-bg); }
.se-service-card--smp .se-service-card__input:checked + .se-service-card__body { border-color: var(--color-smp); background: var(--color-smp-bg); }
.se-service-card--sds .se-service-card__input:checked + .se-service-card__body { border-color: var(--color-sds); background: var(--color-sds-bg); }
.se-service-card--sts .se-service-card__input:checked + .se-service-card__body { border-color: var(--color-sts); background: var(--color-sts-bg); }

.se-service-card__icon { font-size: 28px; }
.se-service-card--mt  .se-service-card__icon { color: var(--color-mt); }
.se-service-card--smp .se-service-card__icon { color: var(--color-smp); }
.se-service-card--sds .se-service-card__icon { color: var(--color-sds); }
.se-service-card--sts .se-service-card__icon { color: var(--color-sts); }

.se-service-card__title { font-weight: 700; font-size: 0.9375rem; color: var(--color-text); }
.se-service-card__desc  { font-size: 0.8125rem; color: var(--color-text-muted); line-height: 1.5; }
.se-service-card__check {
  position: absolute; top: 12px; right: 12px;
  width: 22px; height: 22px; border-radius: 50%;
  background: var(--color-border); display: flex; align-items: center; justify-content: center;
  opacity: 0; transition: all var(--transition);
}
.se-service-card--mt  .se-service-card__input:checked + .se-service-card__body .se-service-card__check { opacity: 1; background: var(--color-mt);  color: #fff; }
.se-service-card--smp .se-service-card__input:checked + .se-service-card__body .se-service-card__check { opacity: 1; background: var(--color-smp); color: #fff; }
.se-service-card--sds .se-service-card__input:checked + .se-service-card__body .se-service-card__check { opacity: 1; background: var(--color-sds); color: #fff; }
.se-service-card--sts .se-service-card__input:checked + .se-service-card__body .se-service-card__check { opacity: 1; background: var(--color-sts); color: #fff; }

/* Password strength meter */
.se-password-strength {
  height: 4px; border-radius: 2px; background: var(--color-border);
  overflow: hidden; position: relative; margin-top: 6px;
}
.se-password-strength::after {
  content: ''; position: absolute; left: 0; top: 0; bottom: 0;
  width: var(--strength-w, 0%); background: var(--strength-c, var(--color-border));
  transition: width .3s ease, background .3s ease; border-radius: 2px;
}

/* Submit section */
.se-reg-section--submit { background: transparent; border: none; padding: 0; align-items: center; text-align: center; gap: var(--space-md); }
.se-reg-section--submit .se-field--checkbox { margin-bottom: var(--space-sm); }
.se-btn--register { gap: 10px; min-width: 240px; }
.se-reg-disclaimer { font-size: 0.8125rem; color: var(--color-text-muted); }
