:root { color-scheme: light dark; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; --bg:#f1f5f9; --card:#fff; --ink:#0f172a; --muted:#475569; --line:#cbd5e1; --accent:#2563eb; --good:#166534; --warn:#9a3412; --bad:#991b1b; }
* { box-sizing:border-box; }
body { margin:0; background:var(--bg); color:var(--ink); }
.shell { width:min(760px,100%); margin:auto; padding:calc(24px + env(safe-area-inset-top)) 16px calc(34px + env(safe-area-inset-bottom)); }
header { padding:10px 4px 18px; }
.eyebrow { text-transform:uppercase; letter-spacing:.12em; font-size:.74rem; font-weight:800; color:var(--accent); }
h1 { margin:.25rem 0 .5rem; font-size:clamp(2rem,8vw,3.4rem); line-height:1; }
header p { margin:0; color:var(--muted); font-size:1.05rem; max-width:60ch; }
.card { background:var(--card); border:1px solid var(--line); border-radius:20px; padding:18px; margin:14px 0; box-shadow:0 10px 30px rgb(15 23 42 / .06); }
.field-grid { display:grid; grid-template-columns:1fr; gap:15px; }
label { display:grid; gap:7px; font-weight:700; font-size:.92rem; }
input,select,button { width:100%; min-height:48px; border-radius:12px; border:1px solid var(--line); font:inherit; padding:10px 12px; background:var(--card); color:var(--ink); }
input:focus,select:focus { outline:3px solid rgb(37 99 235 / .18); border-color:var(--accent); }
.duration-row { display:grid; grid-template-columns:1.1fr 1fr; gap:8px; }
button { margin-top:18px; border:0; background:var(--accent); color:white; font-weight:800; cursor:pointer; }
button:active { transform:translateY(1px); }
.optional { color:var(--muted); font-weight:500; }
.hidden { display:none; }
.result h2 { margin:.1rem 0 .35rem; font-size:1.15rem; }
.big-date { font-size:clamp(2rem,9vw,3.6rem); font-weight:900; line-height:1; margin:.3rem 0 .8rem; }
.status { border-radius:14px; padding:12px; margin:12px 0; font-weight:700; }
.status.good { background:#dcfce7; color:var(--good); }
.status.warn { background:#ffedd5; color:var(--warn); }
.status.bad { background:#fee2e2; color:var(--bad); }
.rule-list { margin:14px 0 0; padding:0; list-style:none; }
.rule-list li { padding:10px 0; border-top:1px solid var(--line); color:var(--muted); }
.rule-list strong { color:var(--ink); }
.compact { padding:4px 18px; }
details { padding:14px 0; border-bottom:1px solid var(--line); }
details:last-child { border-bottom:0; }
summary { cursor:pointer; font-weight:800; }
details p, footer { color:var(--muted); }
footer { text-align:center; padding:16px; font-size:.8rem; }
@media (min-width:640px) { .field-grid { grid-template-columns:1fr 1fr; } }
@media (prefers-color-scheme: dark) { :root { --bg:#020617; --card:#0f172a; --ink:#f8fafc; --muted:#cbd5e1; --line:#334155; --accent:#60a5fa; } .status.good{background:#052e16;color:#bbf7d0}.status.warn{background:#431407;color:#fed7aa}.status.bad{background:#450a0a;color:#fecaca} }

.visa-panel { margin:18px 0 0; padding:16px; border:1px solid var(--line); border-radius:16px; }
.visa-panel legend { padding:0 8px; font-weight:900; }
.toggle-row { display:flex; grid-template-columns:none; align-items:center; gap:10px; margin-bottom:14px; }
.toggle-row input { width:22px; min-height:22px; height:22px; flex:0 0 22px; }
.toggle-row span { line-height:1.25; }
.header-line,.section-heading,.profile-row,.button-row{display:flex;gap:12px;align-items:center}.header-line{justify-content:space-between}.version{font-size:.8rem;font-weight:900;border:1px solid var(--line);border-radius:999px;padding:5px 9px;color:var(--muted)}.section-heading{justify-content:space-between;align-items:flex-start}.section-heading h2{margin:0}.section-heading p{margin:.25rem 0 1rem;color:var(--muted)}.profile-row{align-items:end}.profile-row>label{flex:1}.button-row{margin-top:12px;flex-wrap:wrap}.button-row button,.file-button{width:auto;flex:1;min-width:150px;margin:0}.secondary,.file-button{background:transparent!important;color:var(--accent)!important;border:1px solid var(--accent)!important}.danger{background:transparent!important;color:var(--bad)!important;border:1px solid var(--bad)!important}.danger:disabled{opacity:.45;cursor:not-allowed}.backup-panel{margin-top:16px;border-top:1px solid var(--line);border-bottom:0}.backup-panel label{margin-top:12px}.file-button{display:flex;align-items:center;justify-content:center;min-height:48px;border-radius:12px;padding:10px 12px;font-weight:800;cursor:pointer}.file-button input{display:none}.inline-message{margin-top:12px;border-radius:12px;padding:10px 12px;font-weight:800}.inline-message.good{background:#dcfce7;color:var(--good)}.inline-message.bad{background:#fee2e2;color:var(--bad)}
@media(max-width:639px){.profile-row{display:grid;grid-template-columns:1fr}.button-row>*{flex-basis:100%}}
@media(prefers-color-scheme:dark){.inline-message.good{background:#052e16;color:#bbf7d0}.inline-message.bad{background:#450a0a;color:#fecaca}}
