*{box-sizing:border-box}body{margin:0;background:#f3f5f7;color:#172b36;font:16px/1.55 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}a{color:#175f92;text-underline-offset:3px}a:hover{color:#103e60}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:wait;opacity:.7}:focus-visible{outline:3px solid #126ba2;outline-offset:4px}h1{font-size:1.8rem;line-height:1.25;letter-spacing:-.035em;margin:0 0 14px}p{margin:0 0 24px}.auth-wrap{max-width:1240px;margin:auto;padding:32px 48px 20px}.auth-header{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:64px}.auth-wordmark{font-size:23px;font-weight:750;letter-spacing:-1px;white-space:nowrap}.auth-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#237e74;margin-left:3px}.auth-language .language-picker{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px}.auth-language .language-picker label{font-weight:600}.auth-language .language-picker select,.auth-language .language-picker button{min-height:40px;border:1px solid #a5afb7;border-radius:6px;background:white;color:#263944;padding:6px 10px;max-width:100%}.auth-language .language-picker button:hover{background:#e9eef2}.auth-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,480px);align-items:center;gap:90px}.auth-intro{align-self:center;max-width:420px}.auth-intro p{font-size:12px;letter-spacing:.15em;text-transform:uppercase;color:#3b6a70;font-weight:700;margin-bottom:18px}.auth-intro strong{font-size:38px;line-height:1.2;letter-spacing:-.045em;display:block;font-weight:600}.auth-art{position:relative;height:170px;width:210px;margin-bottom:50px}.auth-art span{position:absolute;border:1px solid #aacac8;border-radius:24px;width:110px;height:110px;transform:rotate(-18deg);background:#e1eeeb}.auth-art span:nth-child(2){left:70px;top:30px;background:#cfe3df;border-color:#90b8b3}.auth-art span:nth-child(3){left:22px;top:68px;background:#f3f5f7b3;border-color:#659d96}.auth-card{background:#fff;border:1px solid #dce2e6;border-radius:16px;padding:38px;box-shadow:0 12px 40px #172b3608;min-width:0;overflow-wrap:anywhere}.auth-brand{display:flex;align-items:flex-start;flex-direction:column;gap:12px;margin-bottom:32px;font-size:18px}.auth-brand img{display:block;width:auto;height:auto;max-width:100%;max-height:80px;object-fit:contain}.auth-help,.auth-section>p{font-size:14px;color:#536570;margin-bottom:28px}.auth-card label{display:block;font-weight:600;font-size:14px;margin:20px 0 7px}.auth-card input:not([type=hidden]){width:100%;min-width:0;min-height:48px;padding:11px 12px;border:1px solid #8c9ba5;border-radius:7px;background:#fff;color:#172b36;font-size:16px}.auth-card input[aria-invalid=true]{border-color:#a62931}.auth-card input[readonly]{background:#f3f5f7}.auth-password{display:flex;align-items:stretch;gap:8px}.auth-password input{flex:1}.auth-toggle{flex:0 1 auto;max-width:47%;border:1px solid #8c9ba5;border-radius:7px;background:#f6f8fa;color:#294b60;font-size:12px;padding:6px 10px;white-space:normal;overflow-wrap:normal}.auth-toggle[hidden]{display:none}.auth-form-link{margin:15px 0 22px;text-align:right;font-size:14px}.auth-primary{display:block;width:100%;min-height:48px;border:1px solid #155f68;border-radius:7px;background:#155f68;color:white;font-weight:650;padding:12px 16px;margin:24px 0 18px}.auth-primary:hover{background:#104c54}.auth-section>a{font-size:14px}.auth-site{display:block;border-top:1px solid #dce2e6;margin-top:28px;padding-top:20px;font-size:14px}.auth-footer{margin-top:54px;text-align:center;font-size:12px;color:#5a6d78}.auth-notice,.auth-error,.auth-card .error{padding:14px 16px;border:1px solid #a62931;border-radius:7px;background:#fff4f4;color:#74212a;margin-bottom:24px;font-size:14px}.auth-notice{border-color:#428274;background:#eef8f3;color:#245e49}.auth-error ul{padding-left:20px;margin:6px 0 0}.auth-skip{position:absolute;left:12px;top:-100px;background:white;padding:10px;z-index:3}.auth-skip:focus{top:10px}.auth-card .card{margin:0}.auth-card .card a{display:inline-block;margin-top:12px}@media(min-width:1100px){.auth-grid{min-height:550px}}@media(max-width:900px){.auth-wrap{padding:24px}.auth-header{margin-bottom:36px}.auth-grid{grid-template-columns:minmax(0,480px);justify-content:center;gap:0}.auth-intro{display:none}.auth-footer{margin-top:32px}}@media(max-width:520px){.auth-wrap{padding:20px 16px}.auth-header{flex-direction:column;align-items:flex-start;gap:18px;margin-bottom:26px}.auth-card{padding:26px 22px;border-radius:12px}.auth-language .language-picker{gap:6px;font-size:12px}.auth-language .language-picker select{max-width:165px}.auth-brand{margin-bottom:26px}h1{font-size:1.6rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

/* Solar-house login: local decorative asset, accessible native form. */
body.auth-page{background:#eef2f8;color:#111d3d;min-height:100svh;display:flex;align-items:center;justify-content:center;padding:24px}
.auth-wrap{width:min(1260px,100%);max-width:none;margin:auto;padding:24px 28px 20px;border:1px solid #d8e1ef;border-radius:28px;background:#e5ebf4 url('/assets/login-solar-house.webp') left center/cover no-repeat;box-shadow:0 16px 55px #1d34671a;overflow:hidden}
.auth-header{justify-content:flex-end;margin-bottom:28px;min-height:42px}
.auth-header>.auth-wordmark{display:none}
.auth-language{padding:8px 10px;border:1px solid #ffffffb3;border-radius:10px;background:#ffffffed}
.auth-language .language-picker{color:#172b46}
.auth-language .language-picker select,.auth-language .language-picker button{border-color:#c8d3e4;border-radius:6px;color:#243c60}
.auth-grid{grid-template-columns:minmax(0,1fr) minmax(0,480px);gap:48px;align-items:stretch;min-height:560px}
.auth-intro{align-self:stretch;display:flex;flex-direction:column;justify-content:space-between;padding:20px 20px 28px;max-width:none}
.auth-hero-brand{align-self:center;text-align:center;padding:12px 24px 16px;background:#ffffffd9;border-radius:16px;box-shadow:0 8px 30px #15345a08}
.auth-hero-wordmark{display:block;font-size:48px;line-height:1.15;letter-spacing:-2.5px;font-weight:800;color:#101e42}
.auth-hero-wordmark .auth-dot{width:10px;height:10px;background:#0874ee;margin-left:5px}
.auth-intro p{margin:10px 0 0;color:#233e62;font-size:11px;letter-spacing:.12em}
.auth-intro>strong{align-self:flex-start;padding:10px 15px;background:#ffffffed;border-radius:8px;color:#14274c;font-size:17px;line-height:1.4;letter-spacing:0;font-weight:600;max-width:100%}
.auth-card{border-color:#e4e9f3;border-radius:16px;padding:36px;background:#fffffff5;box-shadow:0 8px 32px #273e7110;color:#101d3a;align-self:center}
.auth-card h1{font-size:25px;letter-spacing:-.04em;text-align:center;margin-bottom:12px}
.auth-brand{align-items:center;text-align:center;font-size:15px;color:#425476;margin-bottom:24px;gap:8px}
.auth-help{font-size:13px;color:#596782;text-align:center;margin-bottom:24px}
.auth-card label{font-size:13px;color:#293e62;margin-top:18px}
.auth-card input:not([type=hidden]){border-color:#c8d3e5;background:#f8faff;border-radius:7px;min-height:48px;color:#172b46}
.auth-field,.auth-password{position:relative;display:flex;align-items:center;gap:0}
.auth-field-icon{position:absolute;left:14px;width:19px;height:19px;color:#344c77;pointer-events:none}
.auth-field input,.auth-password input{padding-left:43px!important}
.auth-password:has(.auth-toggle:not([hidden])) input{padding-right:54px}
.auth-password .auth-toggle{position:absolute;right:3px;top:3px;bottom:3px;width:44px;max-width:none;border:0;background:transparent;display:flex;align-items:center;justify-content:center;padding:8px;color:#304b78;border-radius:5px}
.auth-password .auth-toggle[hidden]{display:none}
.auth-toggle svg{width:21px;height:21px;flex-shrink:0}
.auth-toggle-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.auth-password .auth-toggle:hover{background:#e6edfa}
.auth-primary{background:linear-gradient(110deg,#0065ff,#0755e9);border-color:#0060fa;box-shadow:0 5px 14px #0065ff24;border-radius:7px;font-size:14px;margin-top:24px}
.auth-primary:hover{background:#004bd4}
.auth-form-link{font-size:12px;margin-top:14px;margin-bottom:16px}
.auth-card a{color:#245ea5}
.auth-site{font-size:12px;text-align:center;border-color:#dce4f0;margin-top:24px;padding-top:18px}
.auth-footer{width:min(480px,100%);margin:24px 0 0 auto;text-align:center;font-size:11px;color:#192f53;background:#ffffffeb;border-radius:8px;padding:7px 12px}
:focus-visible{outline-color:#0759d8}
@media(min-width:1500px){.auth-wrap{padding:32px 38px 24px}.auth-grid{min-height:610px}}
@media(max-width:1000px){.auth-grid{gap:24px;grid-template-columns:minmax(0,1fr) minmax(0,440px)}.auth-hero-wordmark{font-size:38px}.auth-intro{padding:16px 0 28px}.auth-hero-brand{padding:12px 18px}.auth-card{padding:30px}}
@media(max-width:760px){body.auth-page{padding:12px;align-items:flex-start}.auth-wrap{padding:16px;border-radius:20px;background-position:28% top}.auth-header{margin-bottom:18px;justify-content:center}.auth-grid{grid-template-columns:minmax(0,440px);justify-content:center;gap:20px;min-height:0}.auth-intro{display:flex;padding:0;align-items:center;min-height:130px;justify-content:center}.auth-hero-brand{padding:10px 24px}.auth-intro>strong{display:none}.auth-hero-wordmark{font-size:34px}.auth-intro p{font-size:10px}.auth-card{width:100%;padding:28px 24px}.auth-card h1{font-size:24px}.auth-footer{margin:18px auto 0;width:min(440px,100%)}.auth-header .language-picker{justify-content:center}.auth-header{flex-direction:row;align-items:center;gap:0}}
@media(max-width:380px){body.auth-page{padding:8px}.auth-wrap{padding:12px}.auth-card{padding:24px 18px}.auth-card h1{font-size:22px}.auth-language{padding:6px}.auth-language .language-picker select{max-width:130px}.auth-intro{min-height:110px}}
@media(forced-colors:active){.auth-card,.auth-language,.auth-hero-brand,.auth-intro>strong,.auth-footer{background:Canvas;color:CanvasText}.auth-primary{background:ButtonFace;color:ButtonText;border:1px solid ButtonText}.auth-field-icon,.auth-toggle{color:CanvasText}}
