:root{--ink:#1a1a1a;--muted:#667;--brand:#0a66c2;--green:#0a8a3a;--line:#e6e6ee;--bg:#f5f6fa;}
*{box-sizing:border-box;}
body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--ink);background:var(--bg);line-height:1.6;}
a{color:var(--brand);text-decoration:none;}
a:hover{text-decoration:underline;}
.wrap{max-width:960px;margin:0 auto;padding:0 16px;}

/* header */
header.site{background:#fff;border-bottom:1px solid var(--line);}
.bar{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;}
.logo{font-weight:800;font-size:1.15rem;color:var(--ink);}
nav a{margin-left:16px;color:var(--muted);font-weight:600;}

/* hero */
.hero{background:linear-gradient(135deg,#0a66c2,#0a8a3a);color:#fff;padding:48px 0;}
.hero h1{margin:0 0 6px;font-size:2rem;}
.hero p{margin:0 0 20px;opacity:.95;}
.search{display:flex;flex-wrap:wrap;gap:10px;background:#fff;padding:12px;border-radius:12px;max-width:720px;}
.search select,.search button{padding:12px;border:1px solid var(--line);border-radius:8px;font-size:1rem;flex:1 1 180px;}
.search button{background:var(--brand);color:#fff;border:0;font-weight:700;cursor:pointer;flex:0 0 150px;}

/* sections */
main h2{margin:32px 0 14px;}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px;}
.card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px;margin-bottom:18px;}
.cat h3{margin:6px 0;}
.tag{display:inline-block;font-size:.72rem;font-weight:700;background:#e8f0fe;color:var(--brand);padding:3px 9px;border-radius:999px;text-transform:uppercase;letter-spacing:.3px;}
.tag.gov{background:#e7f6ec;color:var(--green);}
.muted{color:var(--muted);margin:4px 0;}
.salary{font-weight:700;color:var(--green);margin:6px 0;}
.citylinks{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;}
.citylinks a{font-size:.82rem;background:var(--bg);padding:4px 9px;border-radius:6px;}
.citygrid{display:flex;flex-wrap:wrap;gap:8px;}
.citygrid a{background:#fff;border:1px solid var(--line);padding:8px 14px;border-radius:8px;font-weight:600;}

/* job page */
.crumbs{color:var(--muted);font-size:.85rem;margin:18px 0;}
h1{font-size:1.7rem;margin:0 0 4px;}
.org{color:var(--muted);margin:0 0 18px;}
.facts{display:grid;grid-template-columns:1fr 1fr;gap:10px 24px;margin:0 0 16px;}
.facts dt{color:var(--muted);font-size:.8rem;}
.facts dd{margin:0 0 6px;font-weight:700;}
.apply{display:inline-block;background:var(--green);color:#fff;font-weight:700;padding:12px 26px;border-radius:8px;margin-top:10px;border:0;cursor:pointer;font-size:1rem;}
.apply:hover{text-decoration:none;opacity:.92;}
ul{padding-left:20px;}

/* form */
.applyform{display:grid;gap:14px;max-width:520px;}
.applyform label{display:grid;gap:5px;font-weight:600;font-size:.9rem;}
.applyform input,.applyform select{padding:11px;border:1px solid var(--line);border-radius:8px;font-size:1rem;}
.success{border-left:5px solid var(--green);}
.errbox{border-left:5px solid #d33;color:#b00;}

/* footer */
footer{margin-top:40px;background:#fff;border-top:1px solid var(--line);padding:22px 0;color:var(--muted);font-size:.85rem;}

@media(max-width:560px){.facts{grid-template-columns:1fr;}.hero h1{font-size:1.5rem;}}
