/* Keystay utility pages (activate, wifi-sign, legal, mock-checkout). Brand: BRAND_KEYSTAY.md */

/* Self-hosted brand fonts (latin subset woff2, OFL licenses in /vendor/fonts).
   No Google Fonts: visitor IPs never leak to a third party. */
@font-face{font-family:'Bitter';font-style:normal;font-weight:700 800;font-display:swap;src:url(/vendor/fonts/bitter-700-800-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:400 600;font-display:swap;src:url(/vendor/fonts/sourcesans3-400-600-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url(/vendor/fonts/plexmono-500-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

:root{
  --spruce:#29473C;--ink:#23201C;--paper:#FAF6F0;--white:#FFFFFF;
  --clay:#A4471F;--clay-tint:#F3DED2;--fern:#2F7D46;--sand:#E8E2D6;
}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font:400 17px/1.6 "Source Sans 3",-apple-system,"Segoe UI",Roboto,sans-serif}
.wrap{max-width:640px;margin:0 auto;padding:32px 20px 64px}
h1{font:800 30px/1.2 Bitter,Georgia,serif;color:var(--spruce);margin:0 0 8px}
h2{font:700 20px/1.3 Bitter,Georgia,serif;margin:28px 0 10px}
p{margin:0 0 14px}
.muted{color:#5b564e;font-size:15px}
.overline{font:600 13px/1.4 "Source Sans 3",sans-serif;text-transform:uppercase;letter-spacing:.08em;color:var(--clay);margin:0 0 6px}
.brand{font:800 20px Bitter,Georgia,serif;color:var(--spruce);text-decoration:none;display:inline-block;margin-bottom:24px}
.card{background:var(--white);border:1px solid var(--sand);border-radius:14px;padding:24px;margin:16px 0}
label{display:block;font-weight:600;font-size:15px;margin:14px 0 6px}
input[type=text],input[type=email],input[type=password],textarea,select{
  width:100%;min-height:48px;padding:10px 14px;border:1.5px solid var(--sand);border-radius:10px;
  background:var(--paper);color:var(--ink);font:inherit}
input:focus,textarea:focus,select:focus{outline:2px solid var(--spruce);border-color:var(--spruce)}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:10px 22px;border:none;border-radius:12px;
  background:var(--spruce);color:#fff;font:600 16px "Source Sans 3",sans-serif;cursor:pointer;text-decoration:none;transition:background .2s ease-out}
.btn:hover{background:#1f3a30}
.btn.ghost{background:transparent;color:var(--spruce);border:1px solid var(--sand)}
.btn.done{background:var(--fern)}
.btn[disabled]{opacity:.55;cursor:default}
.err{color:var(--clay);font-weight:600;margin-top:10px}
.ok{color:var(--fern);font-weight:600}
.mono{font:500 18px/1.4 "IBM Plex Mono",ui-monospace,Menlo,monospace;letter-spacing:.03em;word-break:break-all}
.tabs{display:flex;gap:8px;margin-bottom:4px}
.tab{flex:1;min-height:48px;border-radius:12px;border:1px solid var(--sand);background:var(--white);font:600 15px "Source Sans 3",sans-serif;color:var(--ink);cursor:pointer}
.tab.on{background:var(--spruce);border-color:var(--spruce);color:#fff}
.linkbox{background:var(--paper);border:1.5px dashed var(--sand);border-radius:10px;padding:14px;margin:10px 0}
footer.site{margin-top:48px;padding-top:20px;border-top:1px solid var(--sand);font-size:13px;color:#8a8478}
footer.site a{color:#8a8478;margin-right:14px}
.draft{background:var(--clay-tint);border:1px solid var(--clay);color:var(--clay);border-radius:10px;padding:10px 14px;font-weight:600;font-size:14px;margin:0 0 20px}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
