.visa-wizard { max-width: 1080px; margin: 28px auto; padding: 30px; border: 1px solid #e7eaf0; border-radius: 22px; background: #fff; box-shadow: 0 12px 36px #0f172a08; text-align: right; line-height: 1.8; }
.visa-wizard-title { font-size: 1.5rem; margin: 0 0 8px; color: #172638; }
.visa-wizard-header { padding-bottom: 6px; }
.visa-wizard-eyebrow { display: block; font-size: .75rem; color: #87909f; margin-bottom: 8px; }
.visa-wizard-steps { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 8px; padding: 0; margin: 24px 0; list-style: none; }
.visa-wizard-steps li { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 7px; min-width: 0; font-size: .75rem; padding: 12px 5px; border-radius: 12px; color: #64748b; background: #f5f6f9; text-align: center; }
.visa-wizard-steps li > span { display: grid; place-items: center; width: 27px; height: 27px; border-radius: 50%; background: #fff9; color: inherit; font-size: .85rem; }
.visa-step-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 0 0 18px; padding-top: 4px; }
.visa-step-heading h3 { font-size: 1.1rem; color: #243044; margin: 0; }
.visa-step-heading small { color: #87909f; }
.visa-wizard-steps li.is-current { color: #fff; background: var(--bs-primary, #087b83); }
.visa-wizard-steps li.is-done { color: #166534; background: #ecfdf5; }
.visa-wizard-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.visa-wizard-field { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.visa-wizard-field { font-size: .9rem; font-weight: 500; }
.visa-wizard-field small { font-weight: 400; }
.visa-wizard .form-control, .visa-wizard .form-select { min-height: 46px; border-color: #dfe4ec; border-radius: 10px; background-color: #fbfcfe; font-size: .9rem; }
.visa-wizard .form-control:focus, .visa-wizard .form-select:focus { background-color: #fff; box-shadow: 0 0 0 3px #b01a2420; }
.visa-wizard-field.wide { grid-column: 1 / -1; }
.visa-wizard-choice { display: flex; gap: 10px; padding: 16px; border: 1px solid #dce4ec; border-radius: 12px; cursor: pointer; min-width: 0; }
.visa-wizard-choice:has(input:checked) { border-color: var(--bs-primary, #087b83); background: #f2fbfb; }
.visa-wizard-choice input { margin-top: 5px; flex-shrink: 0; }
.visa-wizard-choice > span { flex: 1; min-width: 0; }
.visa-wizard-choice { margin-bottom: 0; transition: border-color .15s, background-color .15s; }
.visa-wizard-choice p { margin: 8px 0; font-size: .85rem; white-space: pre-line; }
.visa-wizard-price { display: block; color: #172638; font-weight: 600; margin-top: 8px; }
.visa-wizard-actions { display: flex; justify-content: space-between; gap: 12px; margin-top: 24px; border-top: 1px solid #edf1f5; padding-top: 16px; }
.visa-wizard-actions .btn { padding: 10px 24px; }
.visa-wizard-summary { display: grid; grid-template-columns: minmax(100px, .5fr) minmax(0, 1.5fr); gap: 12px; padding: 16px; border-radius: 12px; background: #f8fafc; }
.visa-wizard-summary dt { font-size: .9rem; color: #64748b; }
.visa-wizard-summary dd { margin: 0; overflow-wrap: anywhere; white-space: pre-line; }
.visa-wizard-notice { padding: 18px; border: 1px solid #e5eaf0; border-radius: 12px; background: #f7f9fc; }
.visa-wizard-notice p { white-space: pre-line; }
.visa-wizard-upload { padding: 16px; border: 1px dashed #cbd5e1; border-radius: 12px; }
.visa-wizard-terms { white-space: pre-line; font-size: .9rem; margin: 16px 0; }
.visa-account-heading, .visa-account-item { display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.visa-account-list { display: grid; gap: 12px; }
.visa-account-item, .visa-account-detail { padding: 20px; border: 1px solid #e2e8f0; border-radius: 16px; background: #fff; }
.visa-account-item-actions { display: flex; flex-direction: column; align-items: flex-end; gap: 10px; }
.visa-status-badge { display: inline-block; font-size: .8rem; padding: 5px 12px; border-radius: 20px; background: #eef2f7; color: #475569; }
.visa-status-badge.status-awaiting_payment { background: #fff4d7; color: #8a5b04; }
.visa-status-badge.status-processing, .visa-status-badge.status-completed { background: #e8f6ef; color: #166534; }
.visa-status-badge.status-cancelled { background: #fdecec; color: #991b1b; }
.visa-payment-panel { padding: 20px; border: 1px solid #e7d6b3; background: #fffcf5; border-radius: 12px; }
.visa-status-history { list-style: none; padding: 0; margin: 0; }
.visa-status-history li { display: flex; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px solid #edf1f5; font-size: .85rem; }
.visa-status-history small { color: #94a3b8; }
.visa-jalali-calendar { border: 1px solid #dfe4ec; border-radius: 10px; background: #fbfcfe; }
.visa-jalali-calendar summary { display: flex; justify-content: space-between; gap: 8px; cursor: pointer; padding: 10px 14px; list-style: none; }
.visa-jalali-calendar summary::-webkit-details-marker { display: none; }
.visa-calendar-panel { padding: 12px; border-top: 1px solid #edf1f5; background: #fff; border-radius: 0 0 10px 10px; }
.visa-calendar-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 5px; text-align: center; }
.visa-calendar-grid button { min-height: 34px; border: 0; border-radius: 8px; background: #f2f5f9; color: #334155; font-size: .85rem; }
.visa-calendar-grid button:disabled { opacity: .3; cursor: default; }
.visa-calendar-grid button.is-selected { background: var(--bs-primary, #b01a24); color: #fff; }
.visa-calendar-weekday { font-size: .75rem; color: #94a3b8; padding-block: 5px; }
.visa-admin .card-header { display: flex; flex-wrap: wrap; gap: 8px; }
.visa-admin .row > label { margin-bottom: 16px; line-height: 1.8; }
.visa-admin .form-control { border-radius: 8px; min-height: 40px; }
@media (max-width: 767.98px) { .visa-wizard { padding: 18px; margin: 18px auto; } .visa-wizard-title { font-size: 1.25rem; } .visa-wizard-grid { grid-template-columns: minmax(0, 1fr); } .visa-wizard-steps { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; margin: 18px 0; } .visa-wizard-steps li { font-size: .7rem; padding: 8px 3px; } .visa-wizard-summary { grid-template-columns: minmax(80px, .5fr) minmax(0, 1fr); } .visa-account-item, .visa-account-heading { align-items: flex-start; flex-direction: column; } .visa-account-item-actions { width: 100%; flex-direction: row; align-items: center; justify-content: space-between; } }
