/* StayDayCheck v2: sunny travel look. Navy ink, sky, sun, coral, teal, leaf. Text colours meet WCAG AA (checked in tests/contrast_check.py). Mobile first. */
:root{color-scheme:light;
--bg:#fffaf0;--card:#fff;--ink:#1d2b4f;--muted:#4a5675;--line:#f0e4cf;
--accent:#0b6e6e;--accent-weak:#d3f3f1;--sky:#59b8e6;--sky-weak:#e6f6fd;--sun:#ffc53d;--sun-weak:#fff3cf;--coral:#ff7059;--coral-weak:#ffe8e2;--leaf:#2fb67c;--leaf-weak:#e3f7ec;
--ok:#17704a;--warn:#8f4b00;--bad:#b42318;--radius:20px;--shadow:0 1px 2px rgba(29,43,79,.06),0 10px 28px -12px rgba(29,43,79,.18);
--round:ui-rounded,"SF Pro Rounded","Nunito","Varela Round","Quicksand","Arial Rounded MT Bold",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif}
*{box-sizing:border-box}[hidden]{display:none!important}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;font:16.5px/1.65 system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:var(--ink);background:var(--bg)}
a{color:var(--accent);text-underline-offset:.18em;text-decoration-thickness:.08em}a:hover{text-decoration-thickness:.16em}
:focus-visible{outline:3px solid var(--ink);outline-offset:3px;border-radius:6px}
.skip{position:absolute;left:-9999px;top:0;background:#fff;padding:.5rem 1rem;z-index:9}.skip:focus{left:.5rem;top:.5rem}
h1,h2,h3,.brand,.big,.stamp,legend,.feedback-title,.faq summary{font-family:var(--round)}
/* header with a little rainbow ribbon */
header.site{background:rgba(255,255,255,.92);position:relative}
header.site::after{content:"";display:block;height:5px;background:linear-gradient(90deg,var(--sky) 0 25%,var(--sun) 25% 50%,var(--coral) 50% 75%,var(--leaf) 75%)}
header.site .wrap{display:flex;flex-wrap:wrap;gap:.4rem 1.2rem;align-items:center;justify-content:space-between;padding:.75rem 1.1rem}
.brand{display:flex;align-items:center;gap:.5rem;font-weight:800;color:var(--ink);text-decoration:none;font-size:1.2rem;letter-spacing:-.01em}.brand .b2{color:var(--accent)}
.brand svg{width:30px;height:30px;transform:rotate(-6deg)}
nav.main{display:flex;flex-wrap:wrap;gap:.25rem .35rem}nav.main a{text-decoration:none;color:var(--ink);font-size:.9rem;font-weight:650;padding:.28rem .7rem;border-radius:999px}
nav.main a:hover{background:var(--sun-weak)}nav.main a[aria-current]{background:var(--ink);color:#fff}
.wrap{max-width:1000px;margin:0 auto;padding:0 1.1rem}
main{padding:1.4rem 0 3rem}
h1{font-size:2rem;line-height:1.12;margin:.3rem 0 .7rem;letter-spacing:-.02em;font-weight:800}
h2{font-size:1.4rem;margin:2.4rem 0 .7rem;line-height:1.25;font-weight:800;letter-spacing:-.01em}h3{font-size:1.1rem;margin:1.4rem 0 .4rem;font-weight:750}
main>.wrap>h2::before,.card>h2:first-child::before{content:"";display:inline-block;width:.55em;height:.55em;border-radius:50%;background:var(--sun);margin-right:.5em;vertical-align:.1em;box-shadow:.35em .1em 0 -.08em var(--coral)}
.lead{font-size:1.1rem;color:var(--muted);margin-top:0}
.ill{display:block;height:auto;max-width:100%}
/* hero */
.hero{position:relative;display:grid;gap:.6rem;align-items:center;border-radius:32px;padding:1.5rem 1.3rem 1.2rem;margin-bottom:1.2rem;overflow:hidden;
 background:radial-gradient(circle at 92% 8%,#fff6d6 0 18%,transparent 40%),linear-gradient(150deg,#d9f1fc 0%,#eef9ff 45%,#fff3d9 80%,#ffe7de 100%);box-shadow:var(--shadow)}
.hero h1{font-size:2.25rem}.hero .lead{color:#33405f}
.eyebrow{display:inline-flex;align-items:center;gap:.4rem;margin:0;background:#fff;color:var(--accent);font-weight:750;font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;padding:.3rem .75rem;border-radius:999px;box-shadow:0 2px 0 rgba(29,43,79,.08)}
.eyebrow::before{content:"";width:.55rem;height:.55rem;border-radius:50%;background:var(--coral)}
.chips{list-style:none;padding:0;margin:.9rem 0 .4rem;display:flex;flex-wrap:wrap;gap:.45rem}
.chips li{background:rgba(255,255,255,.85);border-radius:999px;padding:.25rem .75rem .25rem .55rem;font-size:.9rem;font-weight:600}
.chips li::before{content:"✓";display:inline-grid;place-items:center;width:1.2rem;height:1.2rem;border-radius:50%;background:var(--leaf-weak);color:var(--ok);font-weight:800;font-size:.75rem;margin-right:.4rem}
.cta{margin:.9rem 0 .3rem}
.hero-ill{width:100%;max-width:250px;justify-self:center;order:-1;margin:-.4rem 0 -.2rem}
.hero .maj{margin-bottom:0}
/* page head band for guides and the counter */
.page-head{display:grid;gap:.4rem;align-items:center;border-radius:28px;padding:1.3rem 1.3rem 1.1rem;margin-bottom:.6rem;
 background:linear-gradient(150deg,#e6f6fd 0%,#fff6dc 70%,#ffece5 100%);box-shadow:var(--shadow)}
.page-head-txt{min-width:0}.page-head .lead{color:#33405f;margin-bottom:0}
.head-ill{width:150px;justify-self:center;order:-1}
.maj{margin:.6rem 0 1rem}
/* cards */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.15rem 1.15rem;margin:1.1rem 0;box-shadow:var(--shadow)}
.card h2:first-child{margin-top:.1rem}
.grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.grid>.card{margin:0}
.tool-card{display:flex;flex-direction:column;text-decoration:none;color:inherit;padding:.7rem .7rem 1rem;transition:transform .15s,box-shadow .15s}
.tool-card:hover{transform:translateY(-3px);box-shadow:0 14px 30px -14px rgba(29,43,79,.35)}
.tool-card .card-ill{display:block;width:100%;height:auto;border-radius:14px;background:var(--sky-weak);padding:.4rem 1.2rem;margin-bottom:.6rem}
.grid>.tool-card:nth-child(4n+2) .card-ill{background:var(--sun-weak)}.grid>.tool-card:nth-child(4n+3) .card-ill{background:var(--coral-weak)}.grid>.tool-card:nth-child(4n+4) .card-ill{background:var(--leaf-weak)}
.tool-card h3{margin:.1rem .4rem .3rem;color:var(--ink)}.tool-card p{margin:0 .4rem;color:var(--muted);font-size:.95rem}
.tool-card .go{margin-top:auto;padding:.6rem .4rem 0;color:var(--accent);font-weight:700;font-size:.92rem}
.link-list{list-style:none;padding:0;display:grid;gap:.5rem}.link-list li{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:.65rem .95rem}
.link-list li::before{content:"✈";color:var(--coral);margin-right:.55rem}
.disclaimer{background:#fff;border:2px solid var(--sun-weak);border-radius:var(--radius);padding:.9rem 1.15rem;font-size:.92rem;margin:1.8rem 0}
.privacy-note{display:flex;gap:.6rem;align-items:flex-start;background:var(--leaf-weak);border-radius:14px;padding:.7rem .9rem;font-size:.93rem;margin:.8rem 0}
/* forms */
fieldset{border:0;padding:0;margin:1.4rem 0 .6rem;min-width:0}legend{font-weight:800;padding:0;margin:0 0 .3rem;font-size:1.05rem}
label{display:block;font-weight:650;font-size:.92rem;margin:.5rem 0 .25rem}
input,select{font:inherit;padding:.5rem .7rem;border:2px solid #e3d7c2;border-radius:12px;background:#fff;color:var(--ink);width:100%;max-width:100%;min-width:0;min-height:46px}
input:hover,select:hover{border-color:#cbbb9f}input:focus,select:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 4px var(--accent-weak)}
input[aria-invalid="true"]{border-color:var(--bad);box-shadow:0 0 0 3px #fde3e0}
.row{display:flex;flex-wrap:wrap;gap:.2rem .8rem}.row>div{flex:1 1 140px;min-width:0}
.check{display:flex;gap:.55rem;align-items:flex-start;font-weight:500}.check input{width:auto;min-height:0;margin-top:.35rem;accent-color:var(--accent)}
.radios label{display:flex;gap:.55rem;align-items:flex-start;font-weight:400;margin:.4rem 0;padding:.5rem .7rem;border-radius:14px;border:2px solid transparent}
.radios label:has(input:checked){background:var(--sky-weak);border-color:#bfe5f7}
.radios input{width:auto;min-height:0;margin-top:.35rem;accent-color:var(--accent)}
.hint{font-size:.86rem;color:var(--muted);margin:.15rem 0 .4rem}
button,.btn{font:inherit;font-size:.95rem;font-weight:700;padding:.5rem 1.15rem;min-height:46px;border-radius:999px;border:2px solid var(--ink);background:var(--sun);color:var(--ink);cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:.35rem;box-shadow:0 3px 0 var(--ink);transition:transform .1s,box-shadow .1s}
button:hover,.btn:hover{background:#ffd466}button:active,.btn:active{transform:translateY(2px);box-shadow:0 1px 0 var(--ink)}
button.secondary,.btn.secondary{background:#fff;color:var(--ink);box-shadow:0 3px 0 #d9cdb8;border-color:#d9cdb8}button.secondary:hover,.btn.secondary:hover{background:var(--sun-weak);border-color:var(--ink)}
#add-trip{background:var(--sun);border-color:var(--ink);box-shadow:0 3px 0 var(--ink)}
button.remove{background:none;border:2px solid transparent;box-shadow:none;color:var(--bad);font-weight:650;padding:.3rem .7rem;min-height:44px}button.remove:hover{border-color:#f6c9c3;background:#fff5f3}
.actions{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:.9rem;align-items:center}
.save{margin-top:1.2rem;padding-top:1rem;border-top:2px dashed var(--line)}
.trips{list-style:none;padding:0;margin:.5rem 0 0;display:grid;gap:.7rem;counter-reset:trip}
.trip{border:2px solid #e9f3f8;border-radius:16px;padding:.55rem .75rem .7rem;background:linear-gradient(180deg,#f4fbff,#fff 60%);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 .6rem;align-items:end}
.trip:nth-child(3n+2){border-color:#fbefcf;background:linear-gradient(180deg,#fffaeb,#fff 60%)}.trip:nth-child(3n+3){border-color:#fde3dc;background:linear-gradient(180deg,#fff5f2,#fff 60%)}
.trip .t-head{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;font-family:var(--round);font-weight:800;font-size:.95rem;color:var(--ink)}
.trip .t-note{grid-column:1/-1}.trip .t-len{grid-column:1/-1;font-size:.86rem;color:var(--muted);margin:.3rem 0 0}
.empty{display:flex;gap:.9rem;align-items:center;color:var(--muted);margin:.5rem 0;background:var(--sky-weak);border-radius:16px;padding:.7rem .9rem}.empty svg{flex:0 0 52px;width:52px}.empty p{margin:0}
.errors{color:var(--bad);background:#fff5f3;border:2px solid #f6c9c3;border-radius:14px;padding:.6rem .9rem;margin:.8rem 0}.errors:empty{display:none}.errors ul{margin:.2rem 0;padding-left:1.2rem}
/* results */
.results-card{background:linear-gradient(180deg,#fff 0%,#fffdf7 100%)}
.waiting{display:flex;gap:.8rem;align-items:center;color:var(--muted)}.waiting svg{flex:0 0 64px;width:64px}.waiting p{margin:0}
.res{border-radius:18px;padding:.95rem 1.05rem;margin:.75rem 0;background:#fff;border:2px solid var(--line);position:relative}
.res h3{margin:0 0 .3rem;font-size:1.02rem}.res p{margin:.25rem 0}
.big{font-size:2.2rem;font-weight:800;line-height:1.1;margin:.2rem 0;font-variant-numeric:tabular-nums}
.res.ok{border-color:#bfe9d3;background:#f3fcf7}.res.warn{border-color:#ffd89a;background:#fff8e8}.res.bad{border-color:#f6c9c3;background:#fff5f3}
.ok-t{color:var(--ok);font-weight:700}.warn-t{color:var(--warn);font-weight:700}.bad-t{color:var(--bad);font-weight:700}
.headline{display:flex;gap:1rem;align-items:center;flex-wrap:wrap}
.gauge{position:relative;flex:0 0 128px;width:128px;height:128px}.gauge svg{width:128px;height:128px;display:block}
.gauge .g-txt{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1}
.gauge .g-n{font-family:var(--round);font-size:2.3rem;font-weight:800;font-variant-numeric:tabular-nums}.gauge .g-of{font-size:.82rem;color:var(--muted);margin-top:.2rem;font-weight:600}
.headline-txt{flex:1 1 180px;min-width:0}.headline-txt p{margin:.3rem 0}
.stamp{display:inline-block;font-weight:800;font-size:.78rem;letter-spacing:.09em;text-transform:uppercase;padding:.2rem .6rem;border:2.5px solid currentColor;border-radius:8px;transform:rotate(-3deg);background:#fff;box-shadow:inset 0 0 0 2px #fff,inset 0 0 0 3.5px currentColor}
.stamp.ok{color:var(--ok)}.stamp.warn{color:var(--warn)}.stamp.bad{color:var(--bad)}
.res .stamp{position:absolute;top:-.7rem;right:.8rem}
.res-row{display:flex;gap:.7rem;align-items:flex-start}.res-row .r-ico{flex:0 0 36px;width:36px;height:36px}.res-row>div{min-width:0}
.meter{height:12px;border-radius:999px;background:#eef1f6;overflow:hidden;margin:.5rem 0}.meter i{display:block;height:100%;border-radius:999px;background:var(--accent)}
.meter.full i{background:var(--bad)}
.strip{display:block;width:100%;height:auto;margin:.7rem 0 .2rem;border-radius:4px}
.legend{display:flex;flex-wrap:wrap;gap:.3rem 1rem;font-size:.84rem;color:var(--muted);margin:.2rem 0 0}.legend i{display:inline-block;width:.8rem;height:.8rem;border-radius:3px;vertical-align:-.1em;margin-right:.3rem}
.l-stay{background:var(--accent)}.l-plan{background:var(--sun)}.l-over{background:var(--bad)}.l-free{background:#e7ebf2}
/* official rule / our explanation / limits */
.regle,.choix,.limites{border-radius:18px;padding:.9rem 1.1rem;margin:1.1rem 0;border:2px solid transparent}
.regle{background:#f1fbf6;border-color:#c6ecd8}.choix{background:#fff8e6;border-color:#ffe2a3}.limites{background:#fff4f1;border-color:#fdd5cc}
.tag{display:inline-flex;align-items:center;gap:.4rem;font-size:.76rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em;margin:0 0 .35rem;padding:.15rem .6rem .15rem .3rem;border-radius:999px;background:#fff}
.tag .ico{width:1.3rem;height:1.3rem;flex:0 0 auto}.regle>.tag{color:var(--ok)}.choix>.tag{color:var(--warn)}.limites>.tag{color:var(--bad)}
.regle p,.choix p,.limites p{margin:.3rem 0}.regle ul,.choix ul,.limites ul{margin:.3rem 0;padding-left:1.2rem}
.src{font-size:.83rem;color:var(--muted)}.src a{color:var(--muted)}
.uncertain{border:2px dashed #f2b8a9;background:#fff;padding:.7rem 1rem;border-radius:16px;margin:1rem 0}.uncertain>.tag{color:var(--bad);background:var(--coral-weak)}
.countries{list-style:none;display:flex;flex-wrap:wrap;gap:.4rem;padding:0;margin:.6rem 0}
.countries li{background:#fff;border:1.5px solid #c6ecd8;border-radius:999px;padding:.12rem .65rem;font-size:.9rem}
.faq details{background:#fff;border:2px solid var(--line);border-radius:16px;padding:.7rem 1rem;margin:.55rem 0}
.faq summary{font-weight:750;cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:1rem}.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";flex:0 0 1.6rem;height:1.6rem;display:grid;place-items:center;border-radius:50%;background:var(--sun-weak);font-weight:800}
.faq details[open]{border-color:#bfe5f7}.faq details[open] summary::after{content:"–";background:var(--sky-weak)}.faq details p{margin:.6rem 0 .2rem}
.table-wrap{overflow-x:auto;border-radius:14px}table{border-collapse:collapse;width:100%;font-size:.93rem;background:#fff}
th,td{border-bottom:1px solid var(--line);padding:.5rem .6rem;text-align:left;vertical-align:top}th{font-size:.84rem;color:var(--ink);background:var(--sky-weak)}
.sources{font-size:.9rem}.sources li{margin:.3rem 0}
.small{font-size:.88rem;color:var(--muted)}
.feedback{display:flex;gap:.9rem;align-items:flex-start;background:var(--sun-weak);border:2px dashed #f3c95c;border-radius:var(--radius);padding:1rem 1.15rem;margin:2rem 0 .5rem;font-size:.94rem}
.feedback svg{flex:0 0 46px;width:46px;transform:rotate(-8deg)}.feedback p{margin:.15rem 0}.feedback-title{font-weight:800;font-size:1.02rem}
/* footer: navy with a wave */
footer.site{position:relative;background:var(--ink);color:#d5dcef;padding:2.6rem 0 1.4rem;font-size:.88rem;margin-top:1.5rem}
footer.site::before{content:"";position:absolute;left:0;right:0;top:-23px;height:24px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 24' preserveAspectRatio='none'%3E%3Cpath d='M0 24V14Q15 2 30 12T60 12T90 12T120 12V24Z' fill='%231d2b4f'/%3E%3C/svg%3E") repeat-x;background-size:240px 24px}
footer.site a{color:#ffe08a}footer.site p{margin:.45rem 0}footer.site .small{color:#c3cce3}
@media (min-width:720px){
 body{font-size:17px}h1{font-size:2.3rem}.hero h1{font-size:2.9rem}
 .hero{grid-template-columns:1.15fr 1fr;padding:2.2rem 2.4rem 2rem;gap:1.5rem 2rem}.hero-ill{justify-self:end;max-width:440px;order:0;margin:0}
 .page-head{grid-template-columns:1fr auto;padding:1.7rem 2rem;gap:1rem 2rem}.head-ill{order:0;width:200px}
 .card{padding:1.35rem 1.55rem}
 .trip{gap:0 .8rem}
 .tool{display:grid;grid-template-columns:1.05fr 1fr;gap:1.3rem;align-items:start}.tool>.card{margin:0}
 .tool .results-card{position:sticky;top:1rem}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
@media print{header.site nav,.feedback,.actions,footer.site{display:none}body{background:#fff}.hero,.page-head{box-shadow:none}}
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
label.btn{margin:0}
label.btn:focus-within{outline:3px solid var(--ink);outline-offset:3px}
.radios>label>span{display:block}
code{font-size:.9em;background:#f3efe9;padding:.05rem .3rem;border-radius:5px}
.res.tally{border-color:#cfeaf7;background:linear-gradient(180deg,#f2fafe,#fff)}.res.tally .big{color:var(--accent)}
.h-ico{width:1.35em;height:1.35em;vertical-align:-.3em;margin-right:.4rem}.res.sky{border-color:#cfeaf7;background:#f4fbff}
.grid>.feature{grid-column:1/-1}
@media (min-width:720px){.grid>.feature{display:grid;grid-template-columns:240px 1fr;grid-template-rows:auto auto 1fr;column-gap:1.2rem;align-items:start}
 .feature .card-ill{grid-row:1/4;margin:0}.feature h3{margin-top:.6rem;font-size:1.25rem}.feature .go{margin-top:0;padding-top:.8rem}
 .grid:has(>.feature){grid-template-columns:repeat(4,minmax(0,1fr))}}
.tool-card h3{line-height:1.3}
