/* Visual thesis: quiet navy, warm white panels and precise red actions.
   Content: two numbered input panels, one result panel, then concise guidance.
   Interaction: clear focus rings, a short row entrance and a restrained result reveal. */
:root { color-scheme:light; --visa-ink:#15223c; --visa-red:#c8202a; --visa-line:#dfe4eb; --visa-muted:#667185; }
* { box-sizing:border-box; }
body { margin:0; padding-top:84px; color:var(--visa-ink); background:#f5f6f8; font-family:'Outfit',Arial,sans-serif; -webkit-font-smoothing:antialiased; }
a { color:inherit; text-underline-offset:4px; }
button,input { font:inherit; }
button { cursor:pointer; }
[hidden] { display:none !important; }
.visa-main { max-width:1240px; margin:0 auto; padding:44px 36px 64px; }
.visa-intro { max-width:850px; margin-bottom:30px; }
.visa-kicker { display:flex; align-items:center; gap:10px; margin:0 0 14px; color:var(--visa-red); font-size:11px; font-weight:700; letter-spacing:.15em; text-transform:uppercase; }
.visa-kicker::before { content:''; width:23px; height:2px; background:currentColor; }
h1 { margin:0 0 13px; font-size:clamp(31px,3.2vw,41px); line-height:1.16; font-weight:600; letter-spacing:-.03em; }
.visa-intro > p:last-child { max-width:720px; margin:0; color:#637084; font-size:16px; line-height:1.65; }
.visa-workspace { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); align-items:start; gap:24px; }
.visa-form { min-width:0; display:flex; flex-direction:column; gap:18px; }
.visa-card,.visa-form-footer,.visa-method-card { padding:24px; border:1px solid var(--visa-line); border-radius:12px; background:#fff; box-shadow:0 3px 12px #15223c04,0 1px 2px #15223c03; }
.visa-card-heading { display:flex; align-items:center; gap:12px; margin-bottom:18px; }
.visa-step { display:grid; place-items:center; flex:none; width:32px; height:32px; border:1px solid #eadbdf; border-radius:9px; background:#fcf4f5; color:#b82836; font-size:12px; font-weight:600; font-variant-numeric:tabular-nums; }
.visa-card h2 { margin:0; font-size:18px; font-weight:600; line-height:1.4; letter-spacing:-.015em; }
.visa-field { display:flex; flex-direction:column; min-width:0; gap:9px; font-size:13px; font-weight:500; }
.visa-check-content { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:center; gap:18px; }
.visa-help { color:var(--visa-muted); margin:0; font-size:13px; font-weight:400; line-height:1.65; }
.visa-visits-help { margin:-4px 0 17px; }
.visa-form input { width:100%; min-width:0; height:49px; padding:12px 13px; border:1px solid #d0d7e1; border-radius:7px; background:#fff; color:#15223c; direction:ltr; font-size:14px; font-weight:500; transition:border-color .15s,box-shadow .15s,background-color .15s; }
.visa-form input:hover { border-color:#aab5c6; }
.visa-form input:focus { outline:0; border-color:#bc3642; box-shadow:0 0 0 3px #c8202a13; }
.visa-form input::-webkit-date-and-time-value { text-align:start; min-height:1.3em; }
#visa-visits { display:flex; flex-direction:column; gap:13px; }
.visa-row { min-width:0; margin:0; padding:16px; border:1px solid #e1e6ee; border-radius:9px; background:#f7f9fb; }
.visa-row-new { animation:visa-enter .2s ease-out; }
.visa-row-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:13px; }
.visa-row-heading > span { display:flex; align-items:center; gap:7px; font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.06em; color:#6a768a; }
.visa-row-heading b { color:#263650; font-weight:600; }
.visa-row-dates { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:15px; }
.visa-remove { display:grid; place-items:center; height:28px; width:28px; padding:0; background:#fff; border:1px solid #e0e5ed; color:#7a8493; font-size:20px; line-height:1; border-radius:6px; transition:color .15s,border-color .15s,background-color .15s; }
.visa-remove:hover { background:#fff1f3; border-color:#e8bdc3; color:var(--visa-red); }
.visa-current-help { margin:14px 0; padding-inline-start:11px; border-inline-start:2px solid #d5dce6; color:#6e7a8c; font-size:12px; line-height:1.6; }
.visa-add { display:flex; align-items:center; justify-content:center; gap:8px; width:100%; min-height:44px; padding:10px 12px; border:1px dashed #cbd4df; border-radius:7px; color:#344760; background:#fff; font-size:13px; font-weight:500; transition:border-color .15s,background-color .15s,color .15s; }
.visa-add > span { font-size:19px; color:var(--visa-red); line-height:1; }
.visa-add:hover { border-color:#bc6570; background:#fff8f9; color:#a52231; }
.visa-add:disabled { opacity:.45; cursor:default; }
.visa-form-footer { padding:20px 24px; }
.visa-actions { display:flex; align-items:stretch; gap:12px; }
.visa-submit { flex:1; display:flex; align-items:center; justify-content:center; gap:12px; min-height:49px; padding:13px 18px; border:1px solid #ba1c27; border-radius:7px; background:var(--visa-red); color:#fff; font-size:14px; font-weight:600; box-shadow:0 3px 7px #c8202a18; transition:background .15s,box-shadow .15s; }
.visa-submit:hover { background:#ad1a25; box-shadow:0 4px 10px #c8202a24; }
.visa-submit:disabled { opacity:.5; cursor:default; }
.visa-submit svg { width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.6; }
html[dir=rtl] .visa-submit svg { transform:rotate(180deg); }
.visa-reset { min-height:49px; min-width:94px; padding:12px 17px; border:1px solid #dce2e9; border-radius:7px; background:#fff; color:#57657b; font-size:13px; transition:background .15s; }
.visa-reset:hover { background:#f5f7fa; }
.visa-privacy { display:flex; align-items:flex-start; justify-content:center; gap:7px; margin:14px 0 0; color:#7d8797; font-size:11px; line-height:1.55; }
.visa-privacy svg { width:13px; height:13px; flex:none; fill:none; stroke:currentColor; stroke-width:1.5; margin-top:1px; }
.visa-error { padding:12px 14px; margin:0 0 15px; border:1px solid #edcbd0; border-radius:7px; background:#fff4f5; color:#9e2532; font-size:13px; line-height:1.5; }
.visa-result-shell { min-width:0; padding:26px; background:#17243c; border:1px solid #26344d; color:#fff; border-radius:12px; box-shadow:0 12px 28px #15223c0d; scroll-margin-top:103px; }
.visa-result-heading { display:flex; align-items:center; gap:11px; padding-bottom:22px; border-bottom:1px solid #ffffff1c; }
.visa-result-icon { display:grid; place-items:center; width:34px; height:34px; flex:none; border:1px solid #ffffff24; border-radius:9px; background:#ffffff09; }
.visa-result-icon svg { width:19px; height:19px; fill:none; stroke:#d2dceb; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.visa-result-shell h2 { margin:0; font-size:17px; font-weight:500; line-height:1.5; }
.visa-rule-tag { margin-inline-start:auto; flex:none; padding:5px 8px; border:1px solid #ffffff24; border-radius:5px; color:#b3bfd1; font-size:10px; font-weight:500; letter-spacing:.04em; direction:ltr; white-space:nowrap; }
.visa-empty-message { display:flex; flex-direction:column; align-items:center; justify-content:center; min-height:225px; gap:19px; text-align:center; }
.visa-empty-message > svg { width:52px; height:52px; fill:none; stroke:#8b9bb5; stroke-width:1.2; stroke-linecap:round; stroke-linejoin:round; }
.visa-empty-message p { margin:0; max-width:275px; color:#b9c5d8; font-size:14px; line-height:1.75; }
.visa-result { padding-top:20px; }
.visa-result:not([hidden]) { animation:visa-enter .22s ease-out; }
.visa-result:focus { outline:none; }
.visa-status { display:flex; align-items:center; gap:7px; margin:0 0 17px; color:#c2d0e3; font-size:12px; line-height:1.5; }
.visa-status::before { content:''; width:5px; height:5px; flex:none; border-radius:50%; background:#c7d3e4; }
.visa-result[data-over=true] .visa-status { color:#ffa5ae; }
.visa-result[data-over=true] .visa-status::before { background:#ff8795; }
.visa-counts { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:11px; margin:0; }
.visa-counts > div { display:flex; flex-direction:column; justify-content:space-between; gap:15px; padding:16px; min-height:122px; background:#ffffff05; border:1px solid #ffffff21; border-radius:8px; }
.visa-counts dt { color:#aebed3; font-size:11px; line-height:1.55; }
.visa-counts dd { margin:0; color:#fff; font-size:42px; font-weight:400; letter-spacing:-.035em; line-height:1; font-variant-numeric:tabular-nums; }
.visa-empty-counts > div { min-height:106px; }
.visa-empty-counts dd { color:#7284a0; font-size:29px; }
.visa-meter { margin:19px 0 22px; height:4px; background:#ffffff16; border-radius:4px; overflow:hidden; }
.visa-meter span { display:block; height:100%; width:0; background:#e77683; transition:width .25s ease; }
.visa-stats { margin:0; }
.visa-stats > div { margin-top:15px; }
.visa-stats dt { color:#aebed3; font-size:11px; line-height:1.55; }
.visa-stats dd { margin:7px 0 0; font-size:16px; line-height:1.55; font-weight:500; }
.visa-stats .visa-departure-block { padding:17px; margin-top:19px; border:1px solid #ffffff24; border-radius:8px; background:#ffffff07; }
.visa-departure-block dd { color:#fff; font-size:21px; line-height:1.4; }
.visa-stats small { display:block; margin-top:7px; color:#b9c7d9; font-size:11px; line-height:1.7; }
.visa-assumption { margin:21px 0 0; padding-top:16px; border-top:1px solid #ffffff1c; color:#96a7c0; font-size:11px; line-height:1.7; }
.visa-method { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:24px; margin-top:25px; }
.visa-method-card { padding:26px; }
.visa-method h2 { margin:0 0 18px; font-size:17px; font-weight:600; letter-spacing:-.01em; }
.visa-method ol { padding-inline-start:20px; margin:0; color:#667185; font-size:13px; line-height:1.75; }
.visa-method li + li { margin-top:11px; }
.visa-method li::marker { color:#a63744; font-size:12px; }
.visa-scope { font-size:13px; line-height:1.75; color:#667185; margin:0 0 15px; }
.visa-sources { display:flex; flex-direction:column; gap:10px; font-size:12px; line-height:1.6; color:#52617a; }
.visa-sources a:hover { color:var(--visa-red); }
.visa-related { margin:20px 0 0; padding-top:15px; border-top:1px solid #e6eaf0; color:#273b58; font-weight:500; font-size:13px; line-height:1.6; }
.visa-sr { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
:focus-visible { outline:2px solid var(--visa-red); outline-offset:4px; }
html:is([lang=ar],[lang=fa]) body { font-family:'Geeza Pro','Noto Sans Arabic',Arial,sans-serif; }
html[lang=zh] body { font-family:'PingFang SC','Microsoft YaHei',sans-serif; }
@keyframes visa-enter { from { opacity:0; transform:translateY(5px); } to { opacity:1; transform:translateY(0); } }
@media(max-width:980px) { .visa-main { padding-inline:26px; } .visa-workspace { gap:18px; grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); } .visa-card,.visa-form-footer { padding:20px; } .visa-check-content { grid-template-columns:minmax(0,1fr); gap:12px; } .visa-result-shell { padding:22px; } .visa-result-heading { flex-wrap:wrap; } .visa-rule-tag { display:none; } }
@media(max-width:760px) { .visa-main { padding:30px 18px 44px; } .visa-intro { margin-bottom:24px; } .visa-intro > p:last-child { font-size:14px; line-height:1.75; } .visa-workspace,.visa-method { grid-template-columns:minmax(0,1fr); gap:18px; } .visa-form { gap:15px; } .visa-card,.visa-form-footer { padding:20px; } .visa-card h2 { font-size:16px; } .visa-card-heading { gap:10px; } .visa-check-content { grid-template-columns:minmax(0,1fr); gap:11px; } .visa-row { padding:13px; } .visa-row-dates { gap:10px; } .visa-field { font-size:12px; } .visa-form input { font-size:13px; padding-inline:9px; } .visa-result-shell { padding:23px; } .visa-result-heading { flex-wrap:nowrap; } .visa-rule-tag { display:block; } .visa-empty-message { min-height:190px; } .visa-method-card { padding:23px; } .visa-method { margin-top:20px; } .visa-privacy { font-size:10px; } }
@media(max-width:360px) { .visa-card,.visa-form-footer { padding:16px; } .visa-row-dates { grid-template-columns:minmax(0,1fr); gap:14px; } .visa-reset { min-width:78px; padding-inline:12px; } .visa-card h2 { font-size:15px; } .visa-result-shell { padding:20px; } .visa-rule-tag { display:none; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto !important; transition:none !important; animation:none !important; } }
/* Situation first: ask one concrete date question for the selected journey. */
.visa-mode-group { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:11px; margin:0; padding:0; border:0; }
.visa-mode-option { display:flex; align-items:flex-start; gap:9px; padding:15px 13px; border:1px solid #dce2eb; border-radius:8px; background:#fff; cursor:pointer; transition:border-color .15s,background-color .15s; }
.visa-mode-option:has(input:checked) { border-color:#bd3441; background:#fff7f8; box-shadow:0 0 0 1px #bd34410a; }
.visa-mode-option:has(input:focus-visible) { outline:2px solid var(--visa-red); outline-offset:3px; }
.visa-form .visa-mode-option input { flex:none; width:15px; height:15px; padding:0; margin:2px 0 0; accent-color:var(--visa-red); box-shadow:none; }
.visa-mode-option strong { display:block; color:#23334d; font-size:13px; font-weight:600; line-height:1.5; }
.visa-mode-option small { display:block; margin-top:5px; color:#718095; font-size:11px; line-height:1.6; }
.visa-date-question { margin-top:22px; padding-top:20px; border-top:1px solid #e8ecf2; }
.visa-date-question .visa-field { gap:12px; font-size:15px; font-weight:500; }
.visa-date-question input { max-width:340px; }
.visa-date-question .visa-help { margin-top:11px; font-size:12px; }
.visa-visits-card .visa-add { margin-top:16px; }
.visa-summary { margin:0 0 15px; color:#fff; font-size:23px; font-weight:500; line-height:1.4; letter-spacing:-.015em; }
.visa-result[data-over=true] .visa-summary { color:#ffa5ae; }
@media(max-width:980px) and (min-width:761px) { .visa-mode-group { grid-template-columns:minmax(0,1fr); } }
@media(max-width:550px) { .visa-mode-group { grid-template-columns:minmax(0,1fr); gap:10px; } .visa-mode-option { padding:14px; } .visa-mode-option strong { font-size:14px; } .visa-mode-option small { font-size:12px; margin-top:3px; } .visa-date-question input { max-width:none; } .visa-date-question .visa-field { font-size:14px; } .visa-summary { font-size:22px; } }
/* Explicit history answers and a single primary result. */
.visa-history-choice { min-width:0; border:0; padding:0; margin:0; }
.visa-history-choice legend { float:none; padding:0; margin-bottom:15px; width:100%; color:#263853; font-size:14px; font-weight:500; line-height:1.65; }
.visa-history-options { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:9px; }
.visa-history-options label { display:flex; align-items:center; gap:10px; min-height:46px; padding:12px; border:1px solid #dce2eb; border-radius:7px; font-size:13px; line-height:1.5; cursor:pointer; }
.visa-history-options label:has(input:checked) { background:#fff7f8; border-color:#bd3441; }
.visa-form .visa-history-choice input,.visa-form .visa-history-confirm input { flex:none; width:16px; height:16px; margin:0; padding:0; accent-color:var(--visa-red); box-shadow:none; }
.visa-history-choice:disabled { opacity:.55; }
.visa-history-help { margin:14px 0 0; font-size:12px; }
#visa-history-manager { margin-top:19px; }
.visa-history-confirm { display:flex; align-items:flex-start; gap:9px; margin-top:17px; font-size:12px; color:#3b4e68; line-height:1.65; cursor:pointer; }
.visa-form .visa-history-confirm input { margin-top:2px; }
.visa-empty-message { min-height:250px; }
.visa-breakdown { margin-top:22px; border-top:1px solid #ffffff24; padding-top:16px; }
.visa-breakdown summary { color:#c1cee0; font-size:12px; line-height:1.6; cursor:pointer; }
.visa-breakdown dl { margin:16px 0 0; }
.visa-breakdown dl > div { display:flex; align-items:baseline; justify-content:space-between; gap:18px; padding:12px 0; border-bottom:1px solid #ffffff17; }
.visa-breakdown dt { color:#aebed3; font-size:11px; line-height:1.6; }
.visa-breakdown dd { margin:0; font-size:13px; font-weight:500; line-height:1.6; text-align:end; }
@media(max-width:550px) { .visa-breakdown dl > div { flex-direction:column; gap:5px; } .visa-breakdown dd { text-align:start; } }

#visa-history-manager .visa-history-help { margin:0 0 16px; }
@media(max-width:760px) { .visa-history-options { grid-template-columns:minmax(0,1fr); } }
/* Compact form: one surface, short questions, optional detail. */
.visa-main { max-width:1140px; padding-top:36px; }
.visa-intro { margin-bottom:24px; }
h1 { font-size:clamp(29px,3vw,38px); }
.visa-intro > p:last-child { font-size:15px; }
.visa-form.visa-card { padding:24px; gap:20px; }
.visa-form-section { min-width:0; }
.visa-form .visa-card-heading { margin-bottom:13px; }
.visa-form .visa-card-heading h2 { font-size:16px; }
.visa-form .visa-mode-group { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:9px; }
.visa-form .visa-mode-option { align-items:center; min-height:44px; padding:11px 12px; gap:8px; }
.visa-mode-option > span { min-width:0; }
.visa-form .visa-mode-option input { margin-top:0; }
.visa-form .visa-mode-option strong { font-size:13px; font-weight:500; }
.visa-form .visa-date-question { margin-top:18px; padding-top:18px; }
.visa-form .visa-date-question .visa-field { font-size:13px; gap:8px; }
.visa-form .visa-date-question .visa-help { font-size:11px; margin-top:9px; }
.visa-form .visa-row-dates { align-items:end; }
.visa-form .visa-visits-card { padding-top:18px; border-top:1px solid #e8ecf2; }
.visa-form .visa-history-choice legend { margin-bottom:0; font-size:13px; font-weight:400; }
.visa-history-period { margin:6px 0 12px; color:#78869a; font-size:11px; line-height:1.6; }
.visa-form .visa-history-options { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
.visa-form .visa-history-options label { min-height:40px; padding:9px 12px; }
.visa-form > .visa-form-footer { padding:18px 0 0; border:0; border-top:1px solid #e8ecf2; border-radius:0; background:transparent; box-shadow:none; }
.visa-submit { font-size:13px; line-height:1.5; }
.visa-reset { min-width:75px; padding-inline:12px; }
.visa-privacy { justify-content:flex-start; font-size:10px; }
.visa-empty-message { min-height:90px; text-align:start; align-items:flex-start; gap:0; }
.visa-empty-message > svg { display:none; }
.visa-empty-message p { font-size:13px; }
.visa-result-shell { padding:24px; }
.visa-result-heading { padding-bottom:18px; }
.visa-result-shell h2 { font-size:16px; }
.visa-summary { font-size:21px; }
.visa-guide { margin-top:23px; }
.visa-guide > summary { width:fit-content; color:#68778d; font-size:12px; line-height:1.6; cursor:pointer; }
.visa-guide .visa-method { margin-top:16px; }
@media(max-width:760px) { .visa-main { padding-top:27px; } .visa-form.visa-card { padding:20px; } .visa-intro > p:last-child { font-size:14px; } .visa-form .visa-mode-option { padding:10px; } .visa-result-shell { padding:22px; } }
@media(max-width:360px) { .visa-form.visa-card { padding:16px; } .visa-form .visa-mode-option { padding:9px 7px; gap:6px; } .visa-form .visa-mode-option strong { font-size:12px; } .visa-reset { min-width:62px; } }
