:root{--ink:#17231e;--forest:#244537;--gold:#c39a31;--cream:#f7f3ea;--paper:#fff;--line:#ded6c6;--red:#9d352e;--muted:#59665f}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font:16px/1.5 system-ui,-apple-system,Segoe UI,sans-serif}.shell{max-width:1060px;margin:auto;padding:34px 20px 72px}.back,a{color:#805f0d}.back{text-decoration:none;font-weight:650}.eyebrow{font-size:.78rem;letter-spacing:.14em;font-weight:750;color:#896714;margin:0 0 10px}header{padding:42px 0 26px}h1{font:500 clamp(2.3rem,7vw,4.7rem)/1.02 Georgia,serif;margin:0 0 18px;color:var(--forest)}h2{font:500 1.35rem Georgia,serif;margin:0 0 7px}h3{font:600 1rem Georgia,serif;margin:0 0 8px;text-transform:capitalize}.lead{font-size:1.15rem;max-width:650px}.card,.result-card,.notice,.error{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:25px;box-shadow:0 8px 28px #453d2710}.form-grid,.stay{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}label{font-weight:650;font-size:.88rem}label span,.hint,.small{font-weight:400;color:var(--muted);font-size:.82rem}input{width:100%;padding:11px;margin-top:5px;border:1px solid #bdb5a6;border-radius:9px;font:inherit;background:#fff}.stay-head{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-top:22px}.stay{position:relative;padding:14px 45px 14px 0;border-bottom:1px solid #eee8dd}.remove{position:absolute;right:0;bottom:14px;border:0;background:#f5ece8;color:var(--red);border-radius:9px;width:34px;height:34px;font-size:1.4rem}.visa-card{border:1px solid var(--line);border-radius:12px;margin:24px 0 0;padding:14px 16px 18px}.visa-toggle{display:flex;gap:8px;align-items:center;font-size:1rem}.visa-toggle input{width:auto;margin:0}.visa-card .hint{margin:3px 0 14px}.visa-card .form-grid{grid-template-columns:repeat(3,minmax(0,1fr))}button{border:0;border-radius:999px;background:var(--forest);color:white;padding:12px 20px;font:700 .92rem inherit;cursor:pointer}.quiet{background:#eee7d8;color:#42391f}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}button:disabled{opacity:.5;cursor:not-allowed}.result-card{margin-top:20px}.result-card.good,.visa-result.good{border-left:5px solid #3d8060}.result-card.bad,.visa-result.bad,.error{border-left:5px solid var(--red)}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:18px 0}.metrics div{padding:13px;background:#faf8f3;border-radius:11px}.metrics b{display:block;font-size:1.35rem;color:var(--forest);overflow-wrap:anywhere}.metrics span{font-size:.78rem;color:var(--muted)}.stay-summary,.visa-result{margin:20px 0;padding:16px;background:#faf8f3;border-radius:12px}.stay-summary ol{padding-left:1.2rem;margin:9px 0 0}.stay-summary li{padding:5px 0}.stay-summary li span{color:var(--muted);margin-left:6px}.plan{margin:16px 0;padding:14px;background:#e8f2ec;border-radius:10px}.plan.warning{background:#fae9e7}.warning-text{color:#7c2924;font-weight:650}.calendar-wrap{margin-top:26px}.calendar-key{display:flex;align-items:center;gap:7px}.key{display:inline-block;width:14px;height:14px;border-radius:3px;background:#eee7d8;margin-left:5px}.stay-key{background:var(--gold)}.check-key{outline:2px solid var(--forest);outline-offset:-2px}.calendars{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.month{border:1px solid var(--line);border-radius:12px;padding:12px;background:#fffdf8}.weekdays,.month-days{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.weekdays{font-size:.68rem;text-align:center;color:var(--muted);margin-bottom:4px}.day,.blank{aspect-ratio:1;display:grid;place-items:center;border-radius:4px;font-size:.8rem;font-style:normal}.day{background:#f1ede5;color:var(--ink)}.day.present{background:var(--gold);font-weight:750}.day.check{outline:2px solid var(--forest);outline-offset:-2px}.notice{margin-top:22px;background:#fffdf8}@media(max-width:760px){.calendars{grid-template-columns:repeat(2,minmax(0,1fr))}.visa-card .form-grid{grid-template-columns:1fr 1fr}}@media(max-width:560px){.form-grid,.stay,.visa-card .form-grid{grid-template-columns:1fr}.metrics{grid-template-columns:1fr 1fr}.calendars{grid-template-columns:1fr}.stay-head{align-items:flex-start;flex-direction:column}.shell{padding:22px 14px 50px}}@media print{@page{margin:12mm}.shell{max-width:none;padding:0}.back,.form-card,.notice{display:none!important}body{background:#fff;font-size:10pt}.result-card{border:0;box-shadow:none;padding:0;margin:0}.calendar-wrap{break-inside:avoid}.calendars{grid-template-columns:repeat(3,1fr);gap:7px}.month{padding:7px}.day{font-size:7pt}.weekdays{font-size:6pt}.metrics{gap:6px}.stay-summary,.visa-result,.plan{margin:10px 0;padding:10px}h1{font-size:28pt}}

/* Calendar limit markers: preserve the independent control-day outline. */
.calendar-key{flex-wrap:wrap;gap:8px 14px}.legend-item{display:inline-flex;align-items:center;gap:6px}.legend-item .key{margin:0;flex-shrink:0}
.day.overstay,.overstay-key{background:#c0c0c0;color:#24282c}
.day.last-legal,.legal-key{background:#237344;color:#fff}
.day.first-illegal,.illegal-key{background:#b42324;color:#fff}
.day.last-legal,.day.first-illegal{font-weight:800;border:2px solid currentColor}
.day.check{outline:2px solid #17231e;outline-offset:2px;position:relative}
@media print{.day,.key{print-color-adjust:exact;-webkit-print-color-adjust:exact}}
