.moov-sim {
    --moov-primary: #FF5C1A;
    --moov-primary-dark: #E04D14;
    --moov-primary-soft: #FFE5D5;
    --moov-bg: #ffffff;
    --moov-surface: #fafafa;
    --moov-surface-2: #f4f4f5;
    --moov-border: rgba(0, 0, 0, 0.08);
    --moov-border-strong: rgba(0, 0, 0, 0.14);
    --moov-text: #0a0a0a;
    --moov-muted: #71717a;
    --moov-success: #16a34a;
    --moov-error: #dc2626;
    --moov-radius: 14px;
    --moov-radius-sm: 10px;
    --moov-shadow: 0 1px 3px rgba(0, 0, 0, 0.04), 0 8px 28px rgba(0, 0, 0, 0.08);
    font-family: 'Geist', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    color: var(--moov-text);
    background: var(--moov-bg);
    border: 1px solid var(--moov-border);
    border-radius: var(--moov-radius);
    box-shadow: var(--moov-shadow);
    padding: 32px;
    max-width: 760px;
    margin: 0 auto;
}
.moov-sim *, .moov-sim *::before, .moov-sim *::after { box-sizing: border-box; }
.moov-sim__title { margin: 0 0 22px; font-size: 26px; font-weight: 700; letter-spacing: -0.01em; }
.moov-sim__subtitle { margin: -16px 0 22px; font-size: 14px; color: var(--moov-muted); }
.moov-sim__step { display: none; }
.moov-sim__step.is-active { display: block; }

.moov-field { margin-bottom: 18px; }
.moov-field > label { display: block; margin-bottom: 8px; font-weight: 600; font-size: 13px; color: var(--moov-text); letter-spacing: 0.02em; text-transform: uppercase; }
.moov-field input[type="text"],
.moov-field input[type="email"],
.moov-field input[type="tel"],
.moov-field input[type="date"],
.moov-field input[type="time"],
.moov-field input[type="number"],
.moov-field textarea {
    width: 100%;
    padding: 13px 16px;
    border: 1px solid var(--moov-border);
    border-radius: var(--moov-radius-sm);
    font-size: 15px;
    background: #fff;
    color: var(--moov-text);
    font-family: inherit;
    transition: border-color 0.15s, box-shadow 0.15s;
}
.moov-field input:focus, .moov-field textarea:focus {
    outline: none;
    border-color: var(--moov-primary);
    box-shadow: 0 0 0 3px rgba(255, 92, 26, 0.15);
}
.moov-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
@media (max-width: 480px) { .moov-row { grid-template-columns: 1fr; } }

.moov-autocomplete { position: relative; }
.moov-autocomplete__list {
    position: absolute; top: 100%; left: 0; right: 0; z-index: 10;
    margin: 6px 0 0; padding: 6px 0;
    list-style: none; background: #fff;
    border: 1px solid var(--moov-border); border-radius: var(--moov-radius-sm);
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.10);
    max-height: 280px; overflow-y: auto;
}
.moov-autocomplete__list li {
    padding: 11px 16px; cursor: pointer; font-size: 14px;
    transition: background 0.1s;
}
.moov-autocomplete__list li:hover, .moov-autocomplete__list li.is-active {
    background: var(--moov-primary-soft);
    color: var(--moov-primary-dark);
}

.moov-vehicles { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px; }
.moov-vehicle { display: block; cursor: pointer; }
.moov-vehicle input { position: absolute; opacity: 0; pointer-events: none; }
.moov-vehicle__inner {
    display: flex; flex-direction: column; gap: 4px;
    padding: 16px; border: 2px solid var(--moov-border); border-radius: var(--moov-radius-sm);
    transition: all 0.18s; background: #fff;
}
.moov-vehicle:hover .moov-vehicle__inner { border-color: var(--moov-border-strong); }
.moov-vehicle input:checked + .moov-vehicle__inner {
    border-color: var(--moov-primary);
    background: var(--moov-primary-soft);
}
.moov-vehicle__label { font-weight: 600; font-size: 15px; }
.moov-vehicle__capacity { font-size: 12px; color: var(--moov-muted); }

.moov-payments { display: flex; flex-direction: column; gap: 10px; }
.moov-payment {
    display: flex; align-items: flex-start; gap: 12px;
    padding: 14px 16px; border: 1px solid var(--moov-border);
    border-radius: var(--moov-radius-sm); cursor: pointer;
    transition: all 0.15s;
}
.moov-payment:hover { border-color: var(--moov-border-strong); }
.moov-payment input { margin-top: 3px; accent-color: var(--moov-primary); }
.moov-payment span { display: flex; flex-direction: column; }
.moov-payment small { color: var(--moov-muted); font-size: 12px; margin-top: 2px; }
.moov-payment:has(input:checked) { border-color: var(--moov-primary); background: var(--moov-primary-soft); }

.moov-btn {
    display: inline-flex; align-items: center; justify-content: center;
    padding: 14px 24px; border-radius: 999px; border: 1px solid transparent;
    font-size: 15px; font-weight: 600; cursor: pointer;
    font-family: inherit;
    transition: all 0.18s cubic-bezier(.16,.84,.44,1); min-height: 48px;
}
.moov-btn--primary {
    background: var(--moov-primary); color: #fff;
    box-shadow: 0 1px 2px rgba(255, 92, 26, 0.3), 0 4px 12px rgba(255, 92, 26, 0.2);
}
.moov-btn--primary:hover:not(:disabled) {
    background: var(--moov-primary-dark);
    transform: translateY(-1px);
    box-shadow: 0 4px 8px rgba(255, 92, 26, 0.35), 0 8px 20px rgba(255, 92, 26, 0.25);
}
.moov-btn--ghost { background: transparent; color: var(--moov-text); border-color: var(--moov-border-strong); }
.moov-btn--ghost:hover { background: var(--moov-surface); }
.moov-btn:disabled { opacity: 0.55; cursor: not-allowed; transform: none; }

.moov-actions { display: flex; gap: 12px; margin-top: 22px; flex-wrap: wrap; }
.moov-actions .moov-btn { flex: 1; min-width: 140px; }

.moov-map { width: 100%; height: 320px; border-radius: var(--moov-radius-sm); overflow: hidden; margin-bottom: 22px; background: var(--moov-surface); border: 1px solid var(--moov-border); }

.moov-quote {
    background: var(--moov-surface);
    border: 1px solid var(--moov-border);
    border-radius: var(--moov-radius);
    padding: 22px;
}
.moov-quote__row { display: flex; justify-content: space-between; align-items: center; padding: 10px 0; border-bottom: 1px dashed var(--moov-border); font-size: 15px; gap: 12px; }
.moov-quote__row:last-of-type { border-bottom: none; }
.moov-quote__row span { color: var(--moov-muted); }
.moov-quote__row strong { text-align: right; font-weight: 600; }
.moov-quote__total {
    display: flex; justify-content: space-between; align-items: baseline;
    margin-top: 14px; padding-top: 16px; border-top: 2px solid var(--moov-border);
}
.moov-quote__total span { font-size: 14px; color: var(--moov-muted); }
.moov-quote__total strong { font-size: 32px; font-weight: 700; color: var(--moov-primary); letter-spacing: -0.01em; }
.moov-quote__note { font-size: 12px; color: var(--moov-muted); margin: 14px 0 0; line-height: 1.5; }

.moov-stripe { margin-top: 16px; padding: 16px; border: 1px solid var(--moov-border); border-radius: var(--moov-radius-sm); background: #fff; }
.moov-stripe label { display: block; margin-bottom: 8px; font-weight: 600; font-size: 13px; text-transform: uppercase; letter-spacing: 0.02em; }
.moov-stripe__element { padding: 14px; border: 1px solid var(--moov-border); border-radius: 8px; background: #fff; min-height: 40px; }
.moov-stripe__hint { color: var(--moov-muted); font-size: 13px; margin: 0; line-height: 1.5; }
.moov-stripe__error { color: var(--moov-error); font-size: 13px; margin: 10px 0 0; min-height: 16px; }

.moov-error { color: var(--moov-error); margin-top: 14px; font-size: 14px; }

.moov-success { text-align: center; padding: 36px 24px; }
.moov-success svg { margin-bottom: 16px; }
.moov-success h3 { color: var(--moov-success); margin: 0 0 12px; font-size: 24px; }
.moov-success p { color: var(--moov-muted); margin: 6px 0; }

.moov-sim button:focus-visible,
.moov-sim input:focus-visible,
.moov-sim textarea:focus-visible { outline: 2px solid var(--moov-primary); outline-offset: 2px; }

@media (max-width: 600px) {
    .moov-sim { padding: 22px; border-radius: var(--moov-radius-sm); }
    .moov-sim__title { font-size: 22px; }
    .moov-quote { padding: 18px; }
    .moov-quote__total strong { font-size: 26px; }
}
