:root{color-scheme:light;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:#f7f8f6;color:#202723;font-synthesis:none}
*{box-sizing:border-box}
body{min-height:100dvh;margin:0;display:flex;flex-direction:column}
button,input{font:inherit}
button{cursor:pointer}
button:disabled{cursor:default;opacity:.55}
[hidden]{display:none!important}
.icon-sprite{position:absolute;width:0;height:0;overflow:hidden}
:focus-visible{outline:3px solid #438bc2;outline-offset:3px}
.skip-link{position:absolute;top:-100px;left:16px;z-index:5;background:#fff;padding:10px 14px;border-radius:8px}
.skip-link:focus{top:12px}
.topbar{width:min(100% - 48px,1120px);margin:0 auto;min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.brand{display:inline-flex;align-items:center;gap:8px;text-decoration:none;color:#202723;font-size:19px;font-weight:750;letter-spacing:-.7px}
.brand-mark{width:30px;height:30px}
.text-button{border:0;background:transparent;color:#315b46;padding:9px 2px;font-size:14px;font-weight:650;text-decoration:underline;text-underline-offset:3px}
.text-button:hover{color:#213f31}
.page-shell{width:min(100% - 48px,1120px);margin:0 auto;flex:1;display:grid;align-items:center;padding:60px 0 80px}
h1,h2,p{margin-top:0}
h1{letter-spacing:-.055em;line-height:1.05}
.eyebrow{display:block;margin-bottom:18px;color:#437760;font-size:12px;font-weight:760;letter-spacing:.12em;text-transform:uppercase}
.auth-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,420px);align-items:center;gap:clamp(36px,8vw,110px)}
.auth-intro h1,.homes-heading h1{font-size:clamp(44px,6vw,76px);max-width:650px;margin-bottom:22px}
.auth-intro>p{max-width:500px;color:#55615b;font-size:clamp(18px,2.1vw,22px);line-height:1.5}
.privacy-note{display:inline-flex;align-items:center;gap:9px;margin-top:44px;padding:12px 16px;border:1px solid #d6e7da;border-radius:100px;background:#eaf4ed;color:#2c6146;font-size:13px;font-weight:650}
.privacy-dot,.status-dot{width:8px;height:8px;display:inline-block;flex:none;border-radius:50%;background:#45a969}
.auth-card{background:#fff;border:1px solid #e3e8e3;border-radius:24px;box-shadow:0 22px 60px rgba(24,50,31,.07);padding:clamp(24px,3vw,36px)}
.auth-card h2{font-size:22px;letter-spacing:-.04em;margin-bottom:6px}
.auth-card form>p{color:#64716a;font-size:14px;line-height:1.5;margin-bottom:24px}
.auth-card form label{display:block;font-size:13px;font-weight:680;margin-bottom:8px}
.auth-card input{width:100%;height:48px;border:1px solid #cdd6cf;border-radius:11px;background:#fff;color:#202723;padding:0 14px;outline:none}
.auth-card input:focus{border-color:#4e9068;box-shadow:0 0 0 3px #dcefe1}
#code{text-align:center;font-size:22px;letter-spacing:.22em;font-variant-numeric:tabular-nums}
.button{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:46px;padding:11px 18px;border-radius:11px;border:1px solid transparent;font-size:14px;font-weight:700;text-decoration:none;transition:background .15s,border-color .15s,transform .15s}
.button:active:not(:disabled){transform:scale(.98)}
.button-primary{background:#246346;color:#fff}
.button-primary:hover:not(:disabled){background:#174e35}
.button-outline{background:#fff;border-color:#bdcfc1;color:#245e41}
.button-outline:hover:not(:disabled){background:#f0f7f1}
.auth-card form .button{width:100%;margin-top:18px}
.auth-card form .text-button{display:block;margin:14px auto 0}
.passkey-choice{text-align:center;margin-top:20px}
.passkey-choice>span{display:block;color:#7e8981;font-size:12px;margin-bottom:12px}
.passkey-choice .button{width:100%}
.auth-footer{margin:26px 0 0;border-top:1px solid #edf0ec;padding-top:20px;color:#7c8780;font-size:12px;text-align:center}
.error{margin:16px 0 0;padding:12px 14px;background:#fff3ef;border:1px solid #f2d6cb;border-radius:10px;color:#9e4230;font-size:13px;line-height:1.5}
.homes-layout{width:100%}
.homes-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:32px}
.homes-heading h1{margin:0 0 12px}
.homes-heading p{color:#66736a;font-size:14px;margin:0}
.refresh-homes{margin-top:12px;font-size:12px}
.home-illustration{width:124px;height:124px;flex:none}
.home-illustration svg{width:100%;height:100%}
.home-list{display:grid;gap:12px}
.home-card{display:flex;align-items:center;gap:18px;min-height:96px;padding:20px 24px;background:#fff;border:1px solid #e0e8e1;border-radius:18px;box-shadow:0 8px 26px rgba(31,49,34,.035)}
.home-icon,.empty-icon,.state-symbol{display:grid;place-items:center;flex:none;width:54px;height:54px;border-radius:15px;background:#e1f0e5;color:#2b7650;font-size:36px;line-height:1}
.drawn-icon{width:28px;height:28px;fill:none;stroke:#2b5440;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.home-copy{min-width:0;flex:1}
.home-copy h2{font-size:18px;margin:0 0 7px;letter-spacing:-.03em;overflow-wrap:anywhere}
.home-status{display:flex;align-items:center;gap:8px;margin:0;color:#65726a;font-size:13px;line-height:1.4}
.status-dot.offline{background:#b9beba}
.home-card:has(button:disabled){background:#fafbfa}
.home-card:has(button:disabled) .home-icon{background:#ecefec;color:#7a8980}
.empty-home{padding:54px 24px;text-align:center;border:1px dashed #cfded1;border-radius:18px;background:#fff}
.empty-icon{margin:auto auto 18px}
.empty-home h2{font-size:20px;letter-spacing:-.03em}
.empty-home p{margin:0 auto;max-width:440px;color:#65726a;font-size:14px;line-height:1.6}
.passkey-offer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 24px;margin-top:22px;background:#e9f1f8;border-radius:16px;color:#22394b}
.passkey-offer strong{font-size:14px}
.passkey-offer p{margin:5px 0 0;font-size:13px;line-height:1.5}
.passkey-offer .button{flex:none;border-color:#abc5d9;color:#24506e}
.homes-footnote{margin:26px 0 0;color:#758078;font-size:12px;line-height:1.5}
.state-panel{text-align:center;margin:auto;max-width:440px}
.state-symbol{margin:auto auto 22px}
.state-symbol-warm{background:#f9eadf;color:#a76637}
.state-panel h1{font-size:32px;letter-spacing:-.04em}
.state-panel p{color:#66736a;line-height:1.6}
.state-panel .button{margin-top:12px}
.site-footer{width:min(100% - 48px,1120px);margin:auto auto 0;padding:22px 0 26px;border-top:1px solid #e0e7e0;display:flex;justify-content:space-between;gap:16px;color:#8a948d;font-size:12px}
.site-footer a{color:#596960;text-decoration:none}
.site-footer a:hover{text-decoration:underline}
@media(max-width:760px){.page-shell{padding:40px 0 64px;align-items:start}.auth-layout{grid-template-columns:1fr;gap:28px}.auth-intro h1,.homes-heading h1{font-size:44px}.auth-intro>p{font-size:17px}.privacy-note{margin-top:12px}.home-illustration{width:84px;height:84px}.home-card{flex-wrap:wrap}.home-copy{flex-basis:calc(100% - 80px)}.home-card .button{width:100%}.passkey-offer{align-items:stretch;flex-direction:column}.passkey-offer .button{width:100%}}
@media(max-width:420px){.topbar,.page-shell,.site-footer{width:min(100% - 32px,1120px)}.auth-card{padding:22px}.homes-heading{align-items:flex-end}.home-illustration{width:64px;height:64px}.homes-heading h1{font-size:40px}.privacy-note{font-size:12px}}
@media(prefers-reduced-motion:reduce){.button{transition:none}}
