:root{--surface:#F8FAFC;--ink:#0F172A;--line:rgba(15,23,42,.15);--ok:#16A34A;--warn:#F59E0B;--bad:#DC2626}
@media (prefers-color-scheme:dark){:root{--surface:#0F172A;--ink:#F1F5F9;--line:rgba(241,245,249,.2)}}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background:var(--surface);color:var(--ink);line-height:1.6}
a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}
:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
.wrap{max-width:72rem;margin:0 auto;padding:0 1rem}
.skip{position:absolute;left:-999px}.skip:focus{left:.5rem;top:.5rem;background:var(--surface);padding:.5rem;z-index:10}
.site-header{border-bottom:1px solid var(--line)}
.bar{display:flex;align-items:center;gap:1rem;padding-top:.75rem;padding-bottom:.75rem}
.brand{font-weight:800;font-size:1.15rem;color:var(--ink)}
.nav{display:flex;gap:.25rem;flex:1;font-size:.9rem}.nav a,.auth a{color:var(--ink);padding:.25rem .5rem;border-radius:.375rem}
.auth{margin-left:auto;display:flex;gap:.75rem;align-items:center;font-size:.9rem}
.btn,button.btn{background:var(--primary);color:#fff!important;padding:.5rem 1rem;border-radius:.5rem;font-weight:600;border:0;cursor:pointer;text-decoration:none!important}
button.full{width:100%;padding:.7rem;font-size:1rem}
.linklike{background:none;border:0;color:var(--ink);cursor:pointer;font:inherit;padding:.25rem .5rem}
form.inline{display:inline}
.mobile{display:none;margin-left:auto;position:relative}.mobile summary{cursor:pointer;border:1px solid var(--line);padding:.35rem .75rem;border-radius:.375rem;list-style:none}
.menu{position:absolute;right:0;top:110%;background:var(--surface);border:1px solid var(--line);border-radius:.5rem;padding:.5rem;display:flex;flex-direction:column;width:14rem;z-index:5;box-shadow:0 8px 24px rgba(0,0,0,.15)}
.menu a{padding:.4rem .5rem;color:var(--ink)}
@media (max-width:900px){.desktop{display:none!important}.mobile{display:block}}
main.page{max-width:44rem;margin:0 auto;padding:4rem 1rem}
main.narrow{max-width:24rem;margin:0 auto;padding:4rem 1rem}
h1{font-size:2rem;line-height:1.2;margin:0 0 1rem}.hero h1{font-size:clamp(2rem,5vw,3.25rem);font-weight:800}
.lead{font-size:1.15rem;opacity:.75;max-width:40rem}
.search{display:flex;gap:.5rem;margin:2rem 0 1rem;max-width:34rem}
input,select,textarea{width:100%;padding:.6rem .75rem;border:1px solid var(--line);border-radius:.5rem;background:var(--surface);color:var(--ink);font:inherit}
label{display:block;font-weight:600;font-size:.9rem;margin:1rem 0 .25rem}
.hint{font-size:.8rem;opacity:.65;margin:.25rem 0 0}.err{font-size:.85rem;color:var(--bad);margin:.25rem 0 0}
.flash{padding:.75rem 1rem;border-radius:.5rem;border:1px solid var(--line)}.flash.ok{border-color:var(--ok)}.flash.error{border-color:var(--bad);color:var(--bad)}
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:2rem;max-width:56rem;margin:2rem auto 0;padding:0 1rem}
.site-footer{margin-top:4rem;border-top:1px solid var(--line);padding:2rem 0;font-size:.9rem;opacity:.85}
.site-footer nav{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
