:root {
			--ob-primary: #0b57d0;
			--ob-primary-dark: #0b57d0;
			--ob-primary-light: #e8e9ff;
			--ob-success: #10b981;
			--ob-error: #ef4444;
			--ob-text: #061b31;
			--ob-text-muted: #50617a;
			--ob-border: #e2e8f0;
			--ob-bg: #f8fafc;
			--ob-card-bg: #ffffff;
			--ob-step-size: 44px;
		}

		body.stretched {
			font-family: 'Inter', sans-serif;
			background: var(--ob-bg);
		}

		#wrapper {
			background: var(--ob-bg);
		}

		.ob-section {
			min-height: 100vh;
			display: flex;
			align-items: center;
			padding: 60px 0;
		}

		.ob-container {
			width: 100%;
			max-width: 640px;
			margin: 0 auto;
		}

		/* Header area */
		.ob-brand {
			text-align: center;
			margin-bottom: 36px;
		}

		.ob-brand-logo {
			display: inline-flex;
			align-items: center;
			gap: 10px;
			margin-bottom: 8px;
		}

		.ob-brand-icon {
			width: 40px;
			height: 40px;
			background: var(--ob-primary);
			border-radius: 10px;
			display: flex;
			align-items: center;
			justify-content: center;
		}

		.ob-brand-icon i {
			font-size: 20px;
			color: #fff;
		}

		.ob-brand-name {
			font-size: 22px;
			font-weight: 700;
			color: var(--ob-text);
			letter-spacing: -0.3px;
		}

		.ob-brand-tagline {
			font-size: 14px;
			color: var(--ob-text-muted);
			margin: 0;
		}

		/* Step Progress */
		.ob-progress-wrapper {
			margin-bottom: 32px;
		}

		.ob-step-indicators {
			display: flex;
			align-items: center;
			justify-content: center;
			gap: 0;
			margin-bottom: 20px;
		}

		.ob-step-item {
			display: flex;
			flex-direction: column;
			align-items: center;
			position: relative;
			flex: 1;
		}

		.ob-step-item:not(:last-child)::after {
			content: '';
			position: absolute;
			top: calc(var(--ob-step-size) / 2);
			left: calc(50% + var(--ob-step-size) / 2);
			right: calc(-50% + var(--ob-step-size) / 2);
			height: 2px;
			background: var(--ob-border);
			transition: background 0.4s ease;
			z-index: 0;
		}

		.ob-step-item.completed:not(:last-child)::after {
			background: var(--ob-primary);
		}

		.ob-step-dot {
			width: var(--ob-step-size);
			height: var(--ob-step-size);
			border-radius: 50%;
			background: var(--ob-card-bg);
			border: 2px solid var(--ob-border);
			display: flex;
			align-items: center;
			justify-content: center;
			font-size: 14px;
			font-weight: 600;
			color: var(--ob-text-muted);
			position: relative;
			z-index: 1;
			transition: all 0.3s ease;
		}

		.ob-step-dot .step-num {
			display: block;
			transition: opacity 0.2s ease;
		}

		.ob-step-dot .step-check {
			display: none;
			font-size: 16px;
		}

		.ob-step-item.active .ob-step-dot {
			background: #0b57d0;
      border-color: #0b57d0;
      color: #fff;
      box-shadow: 0 0 0 5px #b5b9ff;
		}

		.ob-step-item.completed .ob-step-dot {
			background: var(--ob-primary);
			border-color: var(--ob-primary);
			color: #fff;
		}

		.ob-step-item.completed .ob-step-dot .step-num {
			display: none;
		}

		.ob-step-item.completed .ob-step-dot .step-check {
			display: block;
		}

		.ob-step-label {
			font-size: 14px;
			font-weight: 400;
			color: var(--ob-text-muted);
			margin-top: 8px;
			text-align: center;
			white-space: nowrap;
			transition: color 0.3s ease;
		}

		.ob-step-item.active .ob-step-label {
			color: var(--ob-primary);
			font-weight: 600;
		}

		.ob-step-item.completed .ob-step-label {
			color: var(--ob-text-muted);
		}

		/* Progress bar */
		.ob-progress-bar-track {
			height: 4px;
			background: var(--ob-border);
			border-radius: 4px;
			overflow: hidden;
		}

		.ob-progress-bar-fill {
			height: 100%;
			background: linear-gradient(90deg, var(--ob-primary), #818cf8);
			border-radius: 4px;
			transition: width 0.5s cubic-bezier(0.4, 0, 0.2, 1);
		}

		.ob-progress-meta {
			display: flex;
			justify-content: space-between;
			align-items: center;
			margin-top: 8px;
		}

		.ob-progress-text {
			font-size: 12px;
      color: #7d8ba4;
      font-weight: 500;
      text-transform: uppercase;
		}

		/* Card */
		.ob-card {
			background: var(--ob-card-bg);
			border-radius: 20px;
			box-shadow: 0 4px 6px -1px rgba(0,0,0,0.07), 0 2px 4px -1px rgba(0,0,0,0.04), 0 0 0 1px rgba(0,0,0,0.04);
			overflow: hidden;
		}

		.ob-card-header {
			padding: 32px 40px 24px;
			border-bottom: 1px solid var(--ob-border);
			background: linear-gradient(135deg, #f8faff 0%, #fff 100%);
		}

		.ob-step-badge {
			display: inline-flex;
			align-items: center;
			gap: 6px;
			padding: 4px 12px;
			background: var(--ob-primary-light);
			color: var(--ob-primary-dark);
			border-radius: 20px;
			font-size: 14px;
			font-weight: 500;
			margin-bottom: 12px;
		}

		.ob-step-badge i {
			font-size: 13px;
		}

		.ob-card-title {
			font-size: 26px;
			font-weight: 400;
			color: var(--ob-text);
			margin: 0 0 6px;
			letter-spacing: -0.4px;
		}

		.ob-card-subtitle {
			font-size: 16px;
			color: var(--ob-text-muted);
			margin: 0;
			line-height: 1.6;
		}

		.ob-card-body {
			padding: 32px 40px;
		}

		.ob-card-footer {
			padding: 20px 40px 28px;
			border-top: 1px solid var(--ob-border);
			display: flex;
			align-items: center;
			justify-content: space-between;
			gap: 12px;
		}

		/* Form Elements */
		.ob-form-row {
			display: grid;
			gap: 20px;
			margin-bottom: 20px;
		}

		.ob-form-row.cols-2 {
			grid-template-columns: 1fr 1fr;
		}

		.ob-form-group {
			display: flex;
			flex-direction: column;
			gap: 6px;
		}

		.ob-label {
			font-size: 16px;
			font-weight: 500;
			color: var(--ob-text);
		}

		.ob-label .required {
			color: var(--ob-error);
			margin-left: 2px;
		}

		.ob-input-wrap {
			position: relative;
		}

		.ob-input-icon {
			position: absolute;
			left: 14px;
			top: 50%;
			transform: translateY(-50%);
			color: var(--ob-text-muted);
			font-size: 16px;
			pointer-events: none;
			z-index: 1;
		}

		.ob-input {
			width: 100%;
			height: 48px;
			padding: 0 16px 0 44px;
			border: 1.5px solid var(--ob-border);
			border-radius: 10px;
			font-size: 14px;
			font-family: 'Inter', sans-serif;
			color: var(--ob-text);
			background: #fff;
			transition: all 0.2s ease;
			outline: none;
			appearance: none;
			-webkit-appearance: none;
		}

		.ob-input:focus {
			border-color: var(--ob-primary);
			box-shadow: 0 0 0 3px var(--ob-primary-light);
			background: #fff;
		}

		.ob-input.ob-error,
		.ob-select.ob-error {
			border-color: #ef4444;
			box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.15);
		}

		.ob-input.ob-error:focus,
		.ob-select.ob-error:focus {
			border-color: var(--ob-primary);
			box-shadow: 0 0 0 3px var(--ob-primary-light);
		}

		.ob-input::placeholder {
			color: #a0aec0;
		}

		.ob-select {
			width: 100%;
			height: 48px;
			padding: 0 40px 0 44px;
			border: 1.5px solid var(--ob-border);
			border-radius: 10px;
			font-size: 14px;
			font-family: 'Inter', sans-serif;
			color: var(--ob-text);
			background: #fff;
			transition: all 0.2s ease;
			outline: none;
			appearance: none;
			-webkit-appearance: none;
			cursor: pointer;
		}

		.ob-select:focus {
			border-color: var(--ob-primary);
			box-shadow: 0 0 0 3px var(--ob-primary-light);
		}

		.ob-select-arrow {
			position: absolute;
			right: 14px;
			top: 50%;
			transform: translateY(-50%);
			pointer-events: none;
			color: var(--ob-text-muted);
			font-size: 14px;
		}

		.ob-password-toggle {
			position: absolute;
			right: 14px;
			top: 50%;
			transform: translateY(-50%);
			background: none;
			border: none;
			cursor: pointer;
			color: var(--ob-text-muted);
			font-size: 16px;
			padding: 0;
			display: flex;
			align-items: center;
			transition: color 0.2s;
		}

		.ob-password-toggle:hover {
			color: var(--ob-primary);
		}

		/* Password strength */
		.ob-password-strength {
			margin-top: 8px;
		}

		.ob-strength-bars {
			display: flex;
			gap: 4px;
			margin-bottom: 4px;
		}

		.ob-strength-bar {
			flex: 1;
			height: 3px;
			border-radius: 3px;
			background: var(--ob-border);
			transition: background 0.3s ease;
		}

		.ob-strength-bar.weak { background: #ef4444; }
		.ob-strength-bar.fair { background: #f59e0b; }
		.ob-strength-bar.good { background: #3b82f6; }
		.ob-strength-bar.strong { background: var(--ob-success); }

		.ob-strength-label {
			font-size: 11px;
			color: var(--ob-text-muted);
			font-weight: 500;
		}

		/* Checkbox / Radio Groups */
		.ob-check-grid {
			display: grid;
			grid-template-columns: 1fr 1fr;
			gap: 10px;
		}

		.ob-check-item {
			display: flex;
			align-items: flex-start;
			gap: 10px;
			padding: 12px 14px;
			border: 1.5px solid var(--ob-border);
			border-radius: 10px;
			cursor: pointer;
			transition: all 0.2s ease;
		}

		.ob-check-item:hover {
			border-color: var(--ob-primary);
			background: #fafbff;
		}

		.ob-check-item input[type="checkbox"],
		.ob-check-item input[type="radio"] {
			display: none;
		}

		.ob-check-item input[type="checkbox"]:checked ~ .ob-check-box,
		.ob-check-item input[type="radio"]:checked ~ .ob-check-box {
			background: var(--ob-primary);
			border-color: var(--ob-primary);
		}

		.ob-check-item input[type="checkbox"]:checked ~ .ob-check-box::after {
			content: '\f00c';
			font-family: 'Font Awesome 6 Free';
			font-weight: 900;
			font-size: 9px;
			color: #fff;
			display: flex;
			align-items: center;
			justify-content: center;
		}

		.ob-check-item input[type="radio"]:checked ~ .ob-check-box::after {
			content: '';
			width: 6px;
			height: 6px;
			background: #fff;
			border-radius: 50%;
			display: block;
		}

		.ob-check-item:has(input:checked) {
			border-color: var(--ob-primary);
			background: var(--ob-primary-light);
		}

		.ob-check-box {
			width: 18px;
			height: 18px;
			border-radius: 5px;
			border: 1.5px solid var(--ob-border);
			flex-shrink: 0;
			margin-top: 1px;
			display: flex;
			align-items: center;
			justify-content: center;
			transition: all 0.2s ease;
		}

		.ob-check-box.radio {
			border-radius: 50%;
		}

		.ob-check-content {
			flex: 1;
		}

		.ob-check-label {
			font-size: 14px;
			font-weight: 500;
			color: var(--ob-text);
			display: block;
			line-height: 1.3;
		}

		.ob-check-desc {
			font-size: 12px;
			color: var(--ob-text-muted);
			margin-top: 2px;
			display: block;
		}

		/* Toggle Switch */
		.ob-toggle-list {
			display: flex;
			flex-direction: column;
			gap: 12px;
		}

		.ob-toggle-item {
			display: flex;
			align-items: center;
			justify-content: space-between;
			padding: 14px 16px;
			border: 1.5px solid var(--ob-border);
			border-radius: 10px;
			transition: border-color 0.2s ease;
		}

		.ob-toggle-item:hover {
			border-color: var(--ob-primary);
		}

		.ob-toggle-info {
			flex: 1;
		}

		.ob-toggle-label {
			font-size: 14px;
			font-weight: 600;
			color: var(--ob-text);
			display: block;
		}

		.ob-toggle-desc {
			font-size: 12px;
			color: var(--ob-text-muted);
			margin-top: 2px;
			display: block;
		}

		.ob-switch {
			position: relative;
			width: 44px;
			height: 24px;
			flex-shrink: 0;
		}

		.ob-switch input {
			opacity: 0;
			width: 0;
			height: 0;
			position: absolute;
		}

		.ob-switch-slider {
			position: absolute;
			inset: 0;
			background: var(--ob-border);
			border-radius: 24px;
			cursor: pointer;
			transition: background 0.2s ease;
		}

		.ob-switch-slider::before {
			content: '';
			position: absolute;
			width: 18px;
			height: 18px;
			left: 3px;
			top: 3px;
			background: #fff;
			border-radius: 50%;
			transition: transform 0.2s ease;
			box-shadow: 0 1px 3px rgba(0,0,0,0.15);
		}

		.ob-switch input:checked + .ob-switch-slider {
			background: var(--ob-primary);
		}

		.ob-switch input:checked + .ob-switch-slider::before {
			transform: translateX(20px);
		}

		/* Buttons */
		.ob-btn {
			display: inline-flex;
			align-items: center;
			gap: 10px;
			padding: 8px 16px;
      border-radius: 0.375rem;
      font-size: 16px;
      font-weight: 400;
			font-family: 'Inter', sans-serif;
			cursor: pointer;
			transition: all 0.2s ease;
			border: none;
			outline: none;
		}

		.ob-btn-primary {
			background: var(--ob-primary);
			color: #fff;
		}

		.ob-btn-primary:hover {
		}

		.ob-btn-primary:active {
			transform: translateY(0);
		}

		.ob-btn-ghost {
			background: transparent;
			color: var(--ob-text-muted);
			border: 1.5px solid var(--ob-border);
		}

		.ob-btn-ghost:hover {
			border-color: var(--ob-primary);
			color: var(--ob-primary);
			background: var(--ob-primary-light);
		}

		.ob-btn-success {
			background: linear-gradient(135deg, #10b981, #059669);
			color: #fff;
			box-shadow: 0 4px 12px rgba(16, 185, 129, 0.35);
		}

		.ob-btn-success:hover {
			box-shadow: 0 6px 16px rgba(16, 185, 129, 0.45);
			transform: translateY(-1px);
		}

		.ob-btn i {
			font-size: 16px;
		}

		/* Step panels */
		.ob-step-panel {
			display: none;
		}

		.ob-step-panel.active {
			display: block;
			animation: ob-fadeIn 0.3s ease;
		}

		@keyframes ob-fadeIn {
			from { opacity: 0; transform: translateY(8px); }
			to { opacity: 1; transform: translateY(0); }
		}

		/* Success state */
		.ob-success-panel {
			display: none;
			text-align: center;
			padding: 48px 40px;
		}

		.ob-success-panel.active {
			display: block;
			animation: ob-fadeIn 0.4s ease;
		}

		.ob-success-icon {
			width: 80px;
			height: 80px;
			background: linear-gradient(135deg, #d1fae5, #a7f3d0);
			border-radius: 50%;
			display: flex;
			align-items: center;
			justify-content: center;
			margin: 0 auto 24px;
		}

		.ob-success-icon i {
			font-size: 36px;
			color: var(--ob-success);
		}

		.ob-success-title {
			font-size: 28px;
			font-weight: 400;
			color: var(--ob-text);
			margin-bottom: 10px;
			letter-spacing: -0.4px;
		}

		.ob-success-subtitle {
			font-size: 15px;
			color: var(--ob-text-muted);
			max-width: 380px;
			margin: 0 auto 32px;
			line-height: 1.7;
		}

		.ob-success-actions {
			display: flex;
			gap: 12px;
			justify-content: center;
		}

		/* Helper text */
		.ob-helper {
			font-size: 12px;
			color: var(--ob-text-muted);
			margin-top: 4px;
		}

		/* Section divider */
		.ob-section-divider {
			font-size: 16px;
			font-weight: 500;
			text-transform: uppercase;
			letter-spacing: 0.8px;
			color: var(--ob-text-muted);
			padding-bottom: 12px;
			border-bottom: 1px solid var(--ob-border);
			margin-bottom: 18px;
		}

		/* Hint block */
		.ob-info-hint {
			display: flex;
			align-items: flex-start;
			gap: 10px;
			padding: 12px 14px;
			background: #fffbeb;
			border: 1px solid #fde68a;
			border-radius: 10px;
			margin-top: 16px;
		}

		.ob-info-hint i {
			font-size: 16px;
			color: #f59e0b;
			flex-shrink: 0;
			margin-top: 1px;
		}

		.ob-info-hint p {
			font-size: 12px;
			color: #92400e;
			margin: 0;
			line-height: 1.6;
		}

		/* Footer link */
		.ob-footer-note {
			text-align: center;
			margin-top: 20px;
			font-size: 13px;
			color: var(--ob-text-muted);
		}

		.ob-footer-note a {
			color: var(--ob-primary);
			font-weight: 600;
			text-decoration: none;
		}

		.ob-footer-note a:hover {
			text-decoration: underline;
		}

		/* Responsive */
		@media (max-width: 600px) {
			.ob-card-header,
			.ob-card-body,
			.ob-card-footer {
				padding-left: 24px;
				padding-right: 24px;
			}

			.ob-form-row.cols-2 {
				grid-template-columns: 1fr;
			}

			.ob-check-grid {
				grid-template-columns: 1fr;
			}

			.ob-step-label {
				display: none;
			}

			.ob-success-actions {
				flex-direction: column;
			}

			.ob-success-panel {
				padding: 36px 24px;
			}

			.ob-card-footer {
				flex-wrap: wrap;
			}

			.ob-btn {
				flex: 1;
				justify-content: center;
			}
		}