body.sv-portal { background:var(--paper,#e2d6bf); color:var(--ink,#303a2e); }
.sv-portal-header { padding:1.2rem clamp(1.1rem,4vw,4.5rem); display:flex; align-items:center; justify-content:space-between; gap:1.5rem; background:var(--ink,#303a2e); color:var(--bone,#e2d6bf); }
.sv-portal-header .wordmark { color:inherit; }
.sv-portal-header nav { display:flex; flex-wrap:wrap; gap:1rem; font-size:.8rem; }
.sv-portal-header a { text-decoration:none; }
.sv-portal-nav { display:flex; flex-wrap:wrap; gap:.4rem; padding:1rem clamp(1rem,4vw,4rem); background:#d2c4aa; border-bottom:1px solid #96937e; }
.sv-portal-nav a { display:flex; align-items:center; min-height:44px; padding:.55rem .75rem; color:var(--ink,#303a2e); text-decoration:none; border:1px solid transparent; font-size:.85rem; }
.sv-portal-nav a:hover { border-color:var(--copper,#87572d); background:#ece2d0; }
.sv-portal-content { max-width:1280px; margin:0 auto; padding:clamp(2rem,5vw,5rem) clamp(1.1rem,4vw,4rem); }
.sv-portal-entry { display:grid; grid-template-columns:1.25fr 1fr; gap:clamp(2rem,5vw,5rem); align-items:start; }
.sv-portal-entry h1 { font-size:clamp(2.5rem,5vw,4.5rem); line-height:1.04; margin:1rem 0 1.5rem; }
.sv-portal-entry p { line-height:1.7; max-width:55ch; }
.sv-portal-login { padding:clamp(1.3rem,3vw,2.5rem); background:#ece2d0; border:1px solid #a6a18b; }
.sv-portal-login h2 { margin:0 0 1.5rem; font-size:2rem; }
.sv-portal-login label { display:block; margin-bottom:.5rem; }
.sv-portal-login input[type=text],.sv-portal-login input[type=password] { width:100%; min-height:48px; padding:.7rem; border:1px solid #797c68; border-radius:0; background:#f3ebdc; color:#303a2e; box-sizing:border-box; }
.sv-portal-login input[type=submit] { min-height:48px; padding:.8rem 1.3rem; border:0; background:#87572d; color:#fff6e5; cursor:pointer; }
.sv-portal-login input[type=checkbox] { width:20px; height:20px; vertical-align:middle; }
.sv-portal-footer { display:flex; flex-wrap:wrap; gap:1rem 2rem; justify-content:space-between; padding:1.5rem clamp(1.1rem,4vw,4rem); border-top:1px solid #a6a18b; font-size:.8rem; }
.sv-portal a:focus-visible,.sv-portal input:focus-visible { outline:3px solid #87572d; outline-offset:3px; }
@media(max-width:720px) { .sv-portal-entry{grid-template-columns:1fr}.sv-portal-header{align-items:flex-start;flex-direction:column}.sv-portal-nav{gap:.15rem}.sv-portal-nav a{font-size:.8rem} }
