.locked>aside,.locked>main{display:none}.auth-gate{min-height:100vh;background:linear-gradient(90deg,#08213ce8,#08213c55),url('assets/team.jpg') center/cover fixed;display:grid;place-items:center;padding:28px}.auth-panel{width:min(490px,100%);background:#fffefc;padding:35px;border-radius:18px;box-shadow:0 20px 80px #0005}.auth-panel>img{width:110px;height:75px;object-fit:contain;margin-bottom:15px}.auth-panel form{display:grid;gap:12px;margin-top:25px}.auth-panel label{margin:0}.auth-panel button{margin-top:3px}.text-button{border:0;background:transparent;color:#64748b;font-size:11px;padding-left:0}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:18px;margin-top:20px}.photo-card{border:1px solid #dce5ed;padding:10px;border-radius:9px}.photo-card>img{width:100%;height:175px;object-fit:cover;border-radius:6px}.photo-card input{margin:10px 0}.upload-label{display:inline-block;background:#e7efff;color:#155eef;border:1px solid #bdd0f2;padding:12px 18px;cursor:pointer;border-radius:7px}.sync-status{display:inline-block;font-size:11px;background:#fff1d9;color:#94631b;padding:5px 9px;border-radius:12px;margin-top:7px}.sync-status.good{background:#e0f5eb;color:#147455}.error-text{color:#a83b42;font-size:12px;max-width:650px;margin-top:7px}.report-photos{display:grid;grid-template-columns:1fr 1fr;gap:15px}.report-photos figure{margin:0;break-inside:avoid}.report-photos img{width:100%;max-height:300px;object-fit:contain}.report-photos figcaption{font-size:11px}.warranty-print{overflow-wrap:anywhere}#signedIn{margin-top:15px;color:#aed6df;font-size:11px}#projectExtras .card{max-width:900px;margin:0 auto 20px}#warrantyQR svg{width:170px;height:170px}.pill{padding:6px 10px;background:#e7f0ff;border-radius:12px;font-size:12px}.steps{flex-wrap:wrap}.steps button{min-width:125px}aside .app-footer{font-size:9px}.leaflet-container a{color:#1859a2}@media print{#projectExtras,.auth-gate{display:none!important}.report-photos{grid-template-columns:1fr 1fr}.warranty-print svg{width:130px;height:130px}}

/* Centered transparent sign-in, full-color team photograph and main brand art. */
.auth-gate{position:relative;isolation:isolate;overflow:hidden;min-height:100svh;background:linear-gradient(90deg,rgba(5,18,29,.38),rgba(5,18,29,.12) 60%,rgba(5,18,29,.16)),url('assets/team.jpg') center/cover fixed;padding:35px 24px}
.auth-brand-art{position:absolute;z-index:-1;left:1.5%;top:50%;transform:translateY(-50%);width:32vw;height:70vh;max-width:540px;background:url('assets/main.webp') center/contain no-repeat;filter:drop-shadow(0 12px 24px #0007);pointer-events:none}
.auth-panel{position:relative;text-align:center;background:rgba(11,30,46,.46);border:1px solid #ffffff65;color:#fff;padding:30px 34px;box-shadow:0 22px 70px #0004;backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px)}
.auth-panel>img{display:block;margin:0 auto 15px;width:105px;height:75px;filter:drop-shadow(0 3px 6px #0005)}
.auth-panel .eyebrow{color:#a7e7ff;line-height:1.6}.auth-panel h1{color:#fff}.auth-panel p{color:#e4edf4}.auth-panel .badge{display:inline-block;background:#0b382cb3;color:#c3ffeb;border:1px solid #ffffff30;line-height:1.6}
.auth-panel label{text-align:center;color:#fff}.auth-panel input{background:rgba(255,255,255,.89);color:#10283f;border-color:#ffffffa8}.auth-panel .text-button{color:#dce9f4}.auth-panel #offlineUnlock{background:#ffffff15;color:white;border-color:#ffffff70}.auth-panel #offlineUnlock:hover{background:#ffffff28}.auth-panel .small{color:#dce9f4}.auth-panel form{margin-top:22px;gap:10px}.auth-panel #resetVault{margin:7px auto 0;padding:8px}
.password-field{position:relative}.password-field input{padding-right:75px}.password-field #togglePassword{position:absolute;right:5px;top:50%;transform:translateY(-50%);margin:0;padding:7px 10px;background:#e2edf5;border:0;color:#173d5a;font-size:12px;min-width:57px}.password-field #togglePassword:focus-visible{outline:2px solid #1764ed;outline-offset:1px}
@media(min-width:1500px){.auth-brand-art{left:3%;width:31vw}}
@media(max-width:1050px){.auth-brand-art{left:-7%;width:39vw;opacity:.95}}
@media(max-width:700px){.auth-gate{padding:22px 16px;background-position:60% center;background-attachment:scroll}.auth-brand-art{position:relative;left:auto;top:auto;transform:none;width:155px;height:135px;margin:0 auto 12px;z-index:0;opacity:1}.auth-panel{padding:25px 22px;backdrop-filter:blur(5px)}.auth-gate{display:flex;flex-direction:column;justify-content:center}.auth-panel>img{display:none}.auth-panel h1{font-size:26px}}

@media(min-width:701px){.auth-brand-art{left:1.5%;width:max(145px,calc((100vw - 550px)/2 - 35px));max-width:510px;opacity:1}}

.auth-ai-art{position:absolute;right:25px;bottom:24px;width:clamp(90px,11vw,185px);pointer-events:none;filter:drop-shadow(0 8px 20px #001b39aa)}.auth-ai-art img{display:block;width:100%;height:auto}.sidebar-ai{display:flex;align-items:center;gap:10px;padding-bottom:12px;color:#bde9ff;font-weight:700;letter-spacing:1.2px}.sidebar-ai img{width:46px;height:46px;object-fit:contain}
@media(max-width:700px){.auth-ai-art{position:relative;right:auto;bottom:auto;order:3;width:85px;margin:18px auto 0}.auth-panel{order:2}.auth-brand-art{order:1}}
@media print{.sidebar-ai{display:none!important}}

/* Separate the form from the photograph so every team member stays visible. */
.auth-gate{display:flex;align-items:center;justify-content:flex-start;min-height:100svh;padding:25px;background:#0c2339;overflow:visible}
.auth-gate::after{content:'';position:fixed;z-index:-1;inset:0 0 0 440px;background:#102b43 url('assets/team.jpg') center/contain no-repeat;pointer-events:none}
.auth-panel{width:390px;max-width:100%;margin:0;background:rgba(255,255,255,.065);backdrop-filter:none;-webkit-backdrop-filter:none;padding:25px 24px;box-shadow:0 12px 35px #0002}
.auth-panel>img{display:block;width:120px;height:90px;margin:0 auto 12px}.auth-panel h1{font-size:27px}.auth-panel .eyebrow{font-size:9px}.auth-panel form{margin-top:18px}.auth-panel p{font-size:12px}.auth-panel .badge{font-size:10px}.auth-brand-art{display:none}
.auth-ai-art{position:fixed;right:25px;bottom:22px;width:95px;z-index:1;pointer-events:none}
@media(min-width:1500px){.auth-gate{padding:30px}.auth-panel{width:410px;padding:28px}.auth-gate::after{left:470px}.auth-ai-art{width:130px}}
@media(max-width:1100px){.auth-gate{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:0 16px 25px}.auth-gate::after{position:relative;inset:auto;display:block;order:0;flex:none;width:calc(100% + 32px);height:auto;aspect-ratio:1672/941;z-index:0;background-size:contain;margin:0 -16px 20px}.auth-panel{order:1;width:440px;margin:0;flex:none}.auth-ai-art{position:relative;right:auto;bottom:auto;order:2;width:80px;margin:18px auto 0}.auth-panel>img{display:block}.auth-panel input{font-size:16px}}

/* Circular AEG AI mark, directly beneath the main logo in the left login panel. */
.auth-panel>.auth-ai-art{display:block;position:static;width:70px;height:70px;aspect-ratio:1;margin:0 auto 14px;filter:drop-shadow(0 3px 8px #0004);order:initial;pointer-events:none}
.auth-panel>.auth-ai-art img{width:100%;height:100%;object-fit:cover;border-radius:50%;clip-path:circle(48% at 50% 50%)}
.sidebar-ai img{border-radius:50%;clip-path:circle(48% at 50% 50%)}

/* Full-page staff image, with the login portal over the clear left edge. */
@media(min-width:1101px){
.auth-gate{min-height:100svh;padding:24px;background:linear-gradient(90deg,rgba(5,20,34,.26),transparent 29%),url('assets/team.jpg') center top/cover no-repeat fixed;align-items:center;justify-content:flex-start}
.auth-gate::after{display:none;content:none}
.auth-panel{width:350px;padding:22px;background:rgba(8,29,47,.42);border-color:#ffffff60;backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:0 12px 36px #0002}
.auth-panel>img{height:80px;width:115px}.auth-panel>.auth-ai-art{width:60px;height:60px;margin-bottom:12px}.auth-panel .eyebrow{font-size:8px;letter-spacing:1.5px}.auth-panel h1{font-size:25px}.auth-panel form{margin-top:16px}.auth-panel p{font-size:11px}.auth-panel .small{font-size:10px;line-height:1.65}
}

/* Responsive field login: clear team portrait plus a visible photographic backdrop. */
@media(max-width:1100px){
.auth-gate{min-height:100svh;width:100%;padding:0 16px 24px;background:linear-gradient(rgba(5,23,40,.12),rgba(5,23,40,.3)),url('assets/team.jpg') center center/cover no-repeat fixed;overflow-x:clip;gap:0}
.auth-gate::after{background-color:transparent;background-image:url('assets/team.jpg');background-position:center;background-size:contain;background-repeat:no-repeat;aspect-ratio:1672/941;margin-bottom:18px;box-shadow:0 10px 28px #071c3420}
.auth-panel{width:min(440px,100%);max-width:100%;min-width:0;box-sizing:border-box;background:rgba(7,28,47,.65);border-color:#ffffff70;backdrop-filter:none;-webkit-backdrop-filter:none;padding:24px 22px;box-shadow:0 12px 35px #06172a35}
.auth-panel p,.auth-panel .badge,.auth-panel .eyebrow{overflow-wrap:anywhere}.auth-panel p{font-size:12px;line-height:1.65}.auth-panel .small{font-size:11px;line-height:1.7}.auth-panel .eyebrow{font-size:9px;line-height:1.8;letter-spacing:1.4px}.auth-panel h1{font-size:26px}.auth-panel>img{height:76px;width:108px;margin-bottom:12px}.auth-panel form{margin-top:18px;gap:10px}.auth-panel input{font-size:16px;min-height:44px}.auth-panel form>button{min-height:44px}.password-field{min-width:0}.password-field #togglePassword{min-height:34px}.auth-panel .badge{max-width:100%;font-size:10px}.auth-panel #resetVault{max-width:100%;white-space:normal;min-height:40px}
}
@media(max-width:380px){.auth-gate{padding-left:12px;padding-right:12px}.auth-gate::after{width:calc(100% + 24px);margin-left:-12px;margin-right:-12px}.auth-panel{padding:21px 17px}.auth-panel h1{font-size:24px}}
@media(max-height:650px) and (min-width:1101px){.auth-gate{align-items:flex-start}.auth-panel{margin:0}}

.auth-footer{border-top:1px solid #ffffff35;margin-top:18px;padding-top:14px;text-align:center;color:#e3edf5;font-size:10px;line-height:1.8;overflow-wrap:anywhere}.auth-footer strong{display:inline-block;color:white;font-weight:700;margin-top:5px;letter-spacing:.5px}
@media(max-width:380px){.auth-footer{font-size:9px}}

/* Clearer workspace backdrop; white cards preserve form readability. */
body:not(.locked){background-image:linear-gradient(#edf4faa6,#edf4faba),var(--assessment-photo);background-size:cover,cover;background-position:center,center;background-attachment:fixed}
@media print{body:not(.locked){background:white!important}}

.service-choices{display:flex;flex-wrap:wrap;gap:9px}.service-choice{display:flex;align-items:center;gap:8px;padding:11px 13px;border:1px solid #cbd7e4;border-radius:7px;background:white;cursor:pointer;margin:0;font-size:12px;min-height:44px}.service-choice input{width:17px;height:17px;min-height:0;accent-color:#1764ed;margin:0;flex-shrink:0}.service-choice:has(input:checked){background:#eaf1ff;border-color:#7ca7f5;color:#1554b4}.service-choice:focus-within{outline:2px solid #bdd3ff;outline-offset:2px}

.location-search{padding:15px;border:1px solid #dce6ef;border-radius:8px;background:#f6f9fd;margin:12px 0 20px}.location-results{display:grid;gap:7px;margin-top:10px}.location-result{display:block;width:100%;text-align:left;line-height:1.6;white-space:normal}.location-result span{display:block;color:#64748b;font-size:11px}.location-search input{min-height:44px}@media(max-width:550px){.location-search .row{align-items:stretch}.location-search .row>button{width:100%;min-height:44px}.location-search .row>input{width:100%;flex-basis:100%!important}}

.session-loading{display:none;position:fixed;inset:0;z-index:1000;align-items:center;justify-content:center;flex-direction:column;background:#10283f;color:#e8f4fc;text-align:center;padding:25px}.session-loading img{width:130px;height:110px;object-fit:contain;margin-bottom:15px}.session-loading p{color:#b9d4e7}.restoring .session-loading{display:flex}.restoring #authGate{display:none!important}#draftSaveStatus{margin-top:5px;font-size:11px;color:#315d79}
@media print{.session-loading{display:none!important}}

.user-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px}.user-card{border:1px solid #dce5ee;border-radius:11px;background:#f9fbfe;padding:18px;min-width:0}.user-card p{margin:6px 0;overflow-wrap:anywhere}.user-card .row{margin-top:13px}.user-avatar,.avatar-initials{width:65px;height:65px;border-radius:50%;object-fit:cover;margin-bottom:12px}.avatar-initials{display:grid;place-items:center;background:#e4edfb;color:#1656ba;font-size:22px;font-weight:700}.profile-photo-preview{display:block;width:90px;height:90px;border-radius:50%;object-fit:cover;margin-top:12px}.signed-profile{display:flex;align-items:center;gap:9px;margin-top:15px}.signed-profile img{width:40px;height:40px;border-radius:50%;object-fit:cover}.signed-profile #signedIn{margin:0}.activity-entry{padding:12px 0;border-bottom:1px solid #dce5ed;overflow-wrap:anywhere}.activity-entry .small{margin-top:4px}.danger-button{color:#a32c3d;border-color:#e8c4ca}.user-role{font-size:11px;padding:5px 9px;display:inline-block;border-radius:15px;background:#e4eefb;color:#25518c}.account-disabled{color:#9c4251}.account-active{color:#14765c}

.bank-line-footer{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:7px}.bank-line-footer label{font-size:10px;color:#64748b;font-weight:500;margin:0;display:flex;align-items:center;gap:7px}.bank-line-footer select{font-size:11px;padding:6px;width:auto;max-width:210px;min-height:30px}.quotation-catalog{margin-top:18px}.bank-line-footer .small{font-size:10px}#librarySyncStatus{line-height:1.7}
