:root{--bg:#fbfaf7;--surface:#fff;--text:#1f2421;--muted:#5d6762;--border:#e3e1da;--brand:#8a3b12;--brand-ink:#fff;--brand-soft:#f6ebe3;--ok:#1d6b3a;--ok-soft:#e4f3e9;--err:#a32020;--err-soft:#fbe7e7;--radius:10px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);margin:0;font:16px/1.6 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}a{color:var(--brand)}h1,h2,h3{margin:0 0 .6em;line-height:1.2}h1{font-size:clamp(1.8rem,4vw,2.8rem)}h2{font-size:1.6rem}h3{font-size:1.15rem}.container{max-width:1080px;margin:0 auto;padding:0 16px}.narrow{max-width:720px}.muted{color:var(--muted)}.center-page{text-align:center;padding:15vh 16px}.btn{border-radius:var(--radius);background:var(--brand);color:var(--brand-ink);font:inherit;cursor:pointer;border:0;padding:.6em 1.1em;font-weight:600;text-decoration:none;display:inline-block}.btn:hover{filter:brightness(1.08)}.btn-lg{padding:.8em 1.5em;font-size:1.1rem}.btn-secondary{color:var(--text);border:1px solid var(--border);background:0 0}.btn-xl{padding:1em 2.2em;font-size:1.3rem}.site-header{background:var(--surface);border-bottom:1px solid var(--border);z-index:10;position:sticky;top:0}.header-inner{justify-content:space-between;align-items:center;gap:16px;height:64px;display:flex}.brand{color:var(--text);font-size:1.15rem;font-weight:700;text-decoration:none}.site-nav{gap:20px;display:flex}.site-nav a{color:var(--text);text-decoration:none}.site-nav a:hover{color:var(--brand)}.hero{background:var(--brand-soft);padding:96px 0}.lead{color:var(--muted);max-width:600px;font-size:1.2rem}.section{padding:72px 0}.section.alt{background:var(--surface);border-block:1px solid var(--border)}.grid-3{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;display:grid}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.section.alt .card{background:var(--bg)}.contact-list{grid-template-columns:max-content 1fr;gap:8px 24px;display:grid}.contact-list dt{font-weight:600}.contact-list dd{margin:0}.site-footer{color:var(--muted);border-top:1px solid var(--border);padding:32px 0}@media (max-width:560px){.site-nav{gap:12px;font-size:.95rem}.hero{padding:64px 0}}.portal-header{background:var(--surface);border-bottom:1px solid var(--border)}.portal-header .header-inner{flex-wrap:wrap;height:auto;min-height:60px;padding-block:8px}.portal-nav{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.portal-nav a{color:var(--text);border-radius:8px;padding:6px 12px;text-decoration:none}.portal-nav a:hover{background:var(--brand-soft)}.portal-user{color:var(--muted);align-items:center;gap:12px;font-size:.95rem;display:flex}.portal-main{padding:32px 16px 64px}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:24px;padding:20px}.status{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.status-label{font-size:1.2rem;font-weight:600}.pill{border-radius:999px;padding:2px 10px;font-size:.85rem;font-weight:600;display:inline-block}.pill-in{background:var(--ok-soft);color:var(--ok)}.pill-out{background:var(--border);color:var(--muted)}.alert{border-radius:8px;margin-bottom:16px;padding:10px 14px}.alert-err{background:var(--err-soft);color:var(--err)}.alert-ok{background:var(--ok-soft);color:var(--ok)}form.stack{gap:14px;display:grid}form.row{flex-wrap:wrap;align-items:end;gap:12px;display:flex}form.row>label{flex:180px}label{gap:4px;font-size:.92rem;font-weight:600;display:grid}input,select{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:8px;width:100%;padding:.55em .7em;font-weight:400}input:focus,select:focus{outline:2px solid var(--brand);outline-offset:1px}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.95rem}th,td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:10px 8px}th{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;font-size:.85rem;font-weight:600}td.wrap{white-space:normal}.login-card{max-width:380px;margin:12vh auto}
