
:root{--bg:#FAF9F6;--sheet:#FFFFFF;--ink:#1F2937;--muted:#4B5563;--rule:#D1D5DB;--accent:#1D4ED8;--chip:#EFF6FF;--banner:#FEF3C7;color-scheme:light;box-sizing:border-box}
*,*::before,*::after{box-sizing:inherit}
body{margin:0;background:var(--bg);color:var(--ink);font:400 1.0625rem/1.6 Inter,system-ui,-apple-system,"Segoe UI",Arial,sans-serif;overflow-wrap:anywhere}
header,main,footer{max-width:52rem;margin:0 auto;padding:0 clamp(.75rem,4vw,1.5rem)}
header{padding-top:1.25rem;padding-bottom:.65rem} .topbar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}
header a.home{font-weight:800;color:var(--ink);text-decoration:none;font-size:1.2rem;letter-spacing:-.02em;display:inline-flex;align-items:center;min-height:44px}
nav{margin-top:.5rem;display:flex;flex-wrap:wrap;gap:.25rem 1rem;font-size:.95rem}
a{color:var(--accent);text-underline-offset:.17em} a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
nav a{display:inline-flex;align-items:center;min-height:44px} h1{font-size:clamp(1.9rem,5vw,2.65rem);line-height:1.16;letter-spacing:-.035em;margin:1.25rem 0 .75rem} h2{font-size:1.4rem;line-height:1.3;margin:1.75rem 0 .65rem} h3{font-size:1.25rem;line-height:1.35;margin:.1rem 0 .5rem;letter-spacing:-.015em}
.muted,.fact-date{color:var(--muted)} .fact-date{font-size:.875rem;display:block}
.welcome{background:var(--sheet);padding:1rem 1.2rem;border:1px solid var(--rule);border-radius:12px;margin:1.15rem 0}
.search-box{margin:1.25rem 0 1.5rem;background:var(--sheet);border:1px solid var(--rule);border-radius:12px;padding:1rem 1.2rem}.search-box label{display:block;font-weight:700;margin-bottom:.4rem}.search-row{display:flex;flex-wrap:wrap;gap:.7rem;align-items:stretch}.search-row input{flex:1 1 13rem;min-width:0;width:auto}.search-row button{flex:0 0 auto}
button,.button{min-height:44px;border:1px solid var(--accent);border-radius:8px;background:var(--accent);color:#fff;font:700 1rem/1.35 Inter,system-ui,sans-serif;padding:.65rem 1rem;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;max-width:100%;text-align:center}.button:focus-visible{outline:3px solid var(--ink);outline-offset:3px}
button:hover,.button:hover{background:#1E40AF}.button.secondary{background:var(--sheet);color:var(--accent)}
ul.cards{list-style:none;padding:0;margin:1rem 0;display:grid;grid-template-columns:minmax(0,1fr);gap:.85rem}
ul.cards li{min-width:0;background:var(--sheet);border:1px solid var(--rule);border-radius:12px;padding:1.15rem 1.25rem;margin:0}
ul.cards .t{font-weight:750;color:var(--ink);display:inline-flex;min-height:44px;align-items:center}.card-desc{margin:.25rem 0 .7rem;color:var(--ink);font-size:1.0625rem}.chips{display:flex;flex-wrap:wrap;gap:.4rem;margin:.5rem 0 1rem}.chip{background:var(--chip);color:var(--ink);border:1px solid #CBD5E1;border-radius:6px;font-size:.9rem;padding:.2rem .5rem;max-width:100%;overflow-wrap:anywhere}.card-actions{margin-top:.7rem}
ul.cards li.sp{border:1px solid var(--rule)}.sp-tag{display:inline-block;font-size:.75rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:#765000;border:1px solid #8a5a00;border-radius:4px;padding:.2rem .4rem;margin-bottom:.2rem}p.sp-note{border:1px solid #8a5a00;border-radius:8px;padding:.6rem .8rem}
ul.towns{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,13rem),1fr));gap:.55rem}ul.towns li{background:var(--sheet);border:1px solid var(--rule);border-radius:12px;padding:0 .65rem;display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}ul.towns a{display:inline-flex;align-items:center;min-height:44px;flex:1}
dl{background:var(--sheet);border:1px solid var(--rule);border-radius:12px;padding:1rem 1.25rem;margin:1rem 0}dt{font-weight:700;margin-top:.7rem}dd{margin:0 0 .35rem}dd a{display:inline-flex;align-items:center;min-height:44px}
.note{padding:.25rem 0;color:var(--muted)}
footer{margin-top:3rem;padding-top:1rem;padding-bottom:2rem;border-top:1px solid var(--rule);color:var(--muted);font-size:.9rem}footer a{display:inline-flex;align-items:center;min-height:44px}
input,select{font:inherit;color:var(--ink);background:var(--sheet);border:1px solid #64748B;border-radius:8px;padding:.55rem .7rem;min-height:44px;width:100%;max-width:100%}select{width:auto;font-size:.95rem}.language{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.language small{color:var(--muted)}.calc label{display:block;font-weight:700;margin:.75rem 0 .25rem}.calc .out{font-size:1.6rem;font-weight:700;margin-top:1rem}
.skip-link{position:absolute;left:.5rem;top:-8rem;background:var(--sheet);z-index:100;padding:.8rem}.skip-link:focus{top:.5rem}.search-status{font-weight:700;margin:.65rem 0}.search-hidden,[hidden]{display:none!important}.notranslate{unicode-bidi:isolate}
.az{display:flex;flex-wrap:wrap;gap:.3rem;margin:1rem 0}.az a{display:inline-flex;justify-content:center;align-items:center;min-width:44px;min-height:44px;border:1px solid var(--rule);border-radius:8px;background:var(--sheet)}.town-letter{scroll-margin-top:1rem}.direction{margin-left:.6rem}.card-status{border:1px solid #D1D5DB;border-radius:8px;padding:.65rem .8rem;background:var(--sheet)}.card-status.is-warning{background:#FEF3C7}.fact-source{display:block;font-size:.875rem;color:var(--muted)}
@media(max-width:30rem){nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 .75rem}nav a{white-space:normal}.search-row button{width:100%}ul.cards li{padding:1rem}.language{width:100%}}
