/* QuickEstimate secure role portal */
:root{--qe-red:#d83b40;--qe-red-dark:#c52f35;--qe-navy:#163365;--qe-navy-dark:#0d2855;--qe-slate:#6f7b8c;--qe-text:#23385f;--qe-grey:#f0f1f5;--qe-bg:#f8f9fb;--qe-white:#fff;--qe-border:#e4e7ed;--qe-shadow:0 16px 40px rgba(15,41,84,.11)}
.qe-login-page{background:#fff}.qe-login-page .qe-topbar,.qe-login-page .qe-header,.qe-login-page .qe-footer{display:none}
.qe-login-screen{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(420px,.9fr);background:#fff}
.qe-login-brand-panel{background:linear-gradient(155deg,var(--qe-navy) 0%,var(--qe-navy-dark) 100%);color:#fff;display:flex;align-items:center;padding:64px clamp(32px,7vw,100px);position:relative;overflow:hidden}
.qe-login-brand-panel:after{content:"";position:absolute;width:520px;height:520px;border:90px solid rgba(255,255,255,.04);border-radius:50%;right:-250px;bottom:-210px}
.qe-login-brand-inner{position:relative;z-index:1;max-width:720px}.qe-login-brandmark{margin-bottom:46px}.qe-login-brandmark img{max-height:78px;width:auto}.qe-login-brandmark>span{display:inline-grid;place-items:center;width:92px;height:68px;border:3px solid #fff;border-radius:12px;font-size:2rem;font-weight:900;color:#fff}
.qe-login-kicker{display:block;text-transform:uppercase;letter-spacing:.18em;color:#f2c5c8;font-size:.8rem;font-weight:900;margin-bottom:14px}.qe-login-brand-panel h1{font-size:clamp(3.2rem,6.4vw,6.7rem);line-height:.92;letter-spacing:-.055em;margin:0 0 24px;max-width:740px}.qe-login-brand-panel>div>p{max-width:660px;color:#dce4f1;font-size:1.12rem}
.qe-login-role-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:38px}.qe-login-role-grid div{padding:18px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.07);border-radius:16px}.qe-login-role-grid strong,.qe-login-role-grid span{display:block}.qe-login-role-grid strong{font-size:1rem;margin-bottom:6px}.qe-login-role-grid span{font-size:.86rem;color:#dce4f1;line-height:1.45}
.qe-login-form-panel{display:flex;align-items:center;justify-content:center;padding:44px;background:#fff}.qe-login-card{width:min(100%,520px)}.qe-login-mini-brand{color:var(--qe-navy);font-weight:900;font-size:1.4rem;margin-bottom:40px}.qe-login-card h2{color:var(--qe-navy);font-size:clamp(2.4rem,5vw,3.7rem);line-height:1;margin:8px 0 10px}.qe-login-card>p{color:var(--qe-slate);margin:0 0 28px}.qe-login-card form label{display:block;margin-bottom:18px}.qe-login-card label>span,.qe-form-card label>span,.qe-compact-form label>span,.qe-chat-compose label>span,.qe-decision-box label>span{display:block;color:var(--qe-navy);font-weight:800;font-size:.9rem;margin-bottom:7px}.qe-login-card input,.qe-login-card select,.qe-login-card textarea,.qe-form-card input,.qe-form-card select,.qe-form-card textarea,.qe-compact-form input,.qe-compact-form select,.qe-compact-form textarea,.qe-chat-compose input,.qe-chat-compose select,.qe-chat-compose textarea,.qe-decision-box textarea{width:100%;border:1px solid #d9dde5;border-radius:14px;background:#fff;color:var(--qe-text);padding:14px 15px;font:inherit;outline:none}.qe-login-card input:focus,.qe-form-card input:focus,.qe-form-card select:focus,.qe-form-card textarea:focus,.qe-compact-form input:focus,.qe-compact-form select:focus,.qe-compact-form textarea:focus,.qe-chat-compose select:focus,.qe-chat-compose textarea:focus,.qe-decision-box textarea:focus{border-color:var(--qe-navy);box-shadow:0 0 0 3px rgba(22,51,101,.08)}
.qe-login-options{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:4px 0 22px}.qe-login-options a{color:var(--qe-red);font-weight:800;font-size:.9rem}.qe-check{display:flex!important;align-items:center!important;gap:10px!important;margin:0!important}.qe-check input{width:auto!important}.qe-check span{margin:0!important}.qe-login-submit{width:100%;border:0;border-radius:17px;background:var(--qe-red);color:#fff;font:inherit;font-weight:900;font-size:1.05rem;padding:17px 20px;cursor:pointer;box-shadow:0 12px 24px rgba(216,59,64,.2)}.qe-login-submit:hover{background:var(--qe-red-dark)}.qe-login-error{background:#fff1f1;border:1px solid #f6c8ca;color:#9b2529;border-radius:14px;padding:13px 15px;margin-bottom:18px;font-weight:700}.qe-login-support{background:var(--qe-grey);border-radius:15px;padding:16px;margin-top:20px}.qe-login-support strong,.qe-login-support span{display:block}.qe-login-support strong{color:var(--qe-navy);margin-bottom:4px}.qe-login-support span{color:var(--qe-slate);font-size:.9rem}
.qe-portal-shell{padding:34px 0 70px}.qe-portal-tabs{display:flex;align-items:center;gap:7px;overflow:auto;padding:6px;background:#fff;border:1px solid var(--qe-border);border-radius:15px;box-shadow:0 5px 16px rgba(15,41,84,.05);margin-bottom:30px;white-space:nowrap}.qe-portal-tabs a{display:flex;align-items:center;gap:7px;padding:10px 13px;border-radius:10px;color:var(--qe-navy);font-weight:800;font-size:.9rem}.qe-portal-tabs a:hover{background:var(--qe-grey)}.qe-portal-tabs .qe-portal-logout{margin-left:auto;color:var(--qe-red)}.qe-badge{display:inline-grid;place-items:center;min-width:20px;height:20px;border-radius:10px;background:var(--qe-red);color:#fff;font-size:.72rem;padding:0 5px}
.qe-portal-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:25px;margin:0 0 28px}.qe-portal-heading h1{color:var(--qe-navy);font-size:clamp(2.2rem,5vw,4rem);line-height:.98;letter-spacing:-.04em;margin:8px 0}.qe-portal-heading p{color:var(--qe-slate);max-width:760px;margin:0}.qe-user-chip{display:flex;align-items:center;gap:11px;background:#fff;border:1px solid var(--qe-border);border-radius:16px;padding:11px 14px;box-shadow:0 6px 18px rgba(15,41,84,.06)}.qe-user-chip>span{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:var(--qe-navy);color:#fff;font-weight:900;font-size:1.2rem}.qe-user-chip strong,.qe-user-chip small{display:block;white-space:nowrap}.qe-user-chip strong{color:var(--qe-navy)}.qe-user-chip small{color:var(--qe-slate)}
.qe-portal-notice{background:#effaf2;border:1px solid #bfe7c9;color:#256b38;padding:13px 16px;border-radius:13px;margin:-10px 0 22px;font-weight:800}.qe-portal-notice.is-error{background:#fff0f0;border-color:#f5c1c3;color:#9b2529}.qe-portal-stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:20px}.qe-portal-action-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:20px 0 24px}
.qe-portal-card{background:#fff;border:1px solid var(--qe-border);border-radius:20px;box-shadow:var(--qe-shadow);padding:24px;margin-bottom:20px}.qe-form-card>h2,.qe-portal-card>h2,.qe-portal-card>h3{color:var(--qe-navy);margin-top:0}.qe-form-card label,.qe-compact-form label{display:block;margin:0 0 16px}.qe-form-grid{display:grid;gap:15px}.qe-form-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.qe-form-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.qe-form-actions{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin-top:18px}.qe-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;border-radius:12px;border:1px solid transparent;padding:10px 16px;font:inherit;font-weight:900;cursor:pointer}.qe-btn-primary{background:var(--qe-red);color:#fff}.qe-btn-primary:hover{background:var(--qe-red-dark)}.qe-btn-ghost{background:var(--qe-grey);color:var(--qe-navy)}.qe-btn-danger{background:#8f1d22;color:#fff}.qe-muted{color:var(--qe-slate)}
.qe-claim-hero,.qe-report-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;background:linear-gradient(150deg,var(--qe-navy),var(--qe-navy-dark));color:#fff;border-radius:22px;padding:28px;margin-bottom:20px}.qe-claim-hero h2,.qe-report-head h2{font-size:clamp(2rem,4vw,3rem);margin:5px 0}.qe-claim-hero p,.qe-report-head p{margin:0;color:#dce4f1}.qe-status-pill{display:inline-flex;align-items:center;background:#edf1f7;color:var(--qe-navy);border-radius:999px;padding:6px 10px;font-weight:900;font-size:.78rem}.qe-status-pill.is-large{font-size:.88rem;padding:9px 13px;background:#fff;color:var(--qe-navy)}.qe-info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.qe-portal-card dl{display:grid;grid-template-columns:145px 1fr;gap:10px 16px;margin:0}.qe-portal-card dt{color:var(--qe-slate);font-weight:800}.qe-portal-card dd{margin:0;color:var(--qe-text);font-weight:700}
.qe-report-head>div:last-child{display:flex;align-items:center;gap:10px}.qe-report-totals{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:20px}.qe-report-totals>div{background:#fff;border:1px solid var(--qe-border);border-radius:16px;padding:16px}.qe-report-totals span,.qe-report-totals strong{display:block}.qe-report-totals span{color:var(--qe-slate);font-size:.82rem;font-weight:800}.qe-report-totals strong{color:var(--qe-navy);font-size:1.2rem;margin-top:5px}.qe-report-totals .is-grand{background:var(--qe-red);border-color:var(--qe-red)}.qe-report-totals .is-grand span,.qe-report-totals .is-grand strong{color:#fff}.qe-inline-action{display:flex;align-items:center;justify-content:space-between;gap:24px}.qe-inline-action h3{margin:0 0 5px}.qe-inline-action p{margin:0;color:var(--qe-slate)}
.qe-message-layout{display:grid;grid-template-columns:280px 1fr;gap:20px;min-height:610px}.qe-message-sidebar,.qe-message-thread{background:#fff;border:1px solid var(--qe-border);border-radius:20px;box-shadow:var(--qe-shadow)}.qe-message-sidebar{padding:14px}.qe-message-sidebar h3{color:var(--qe-navy);padding:4px 8px}.qe-message-sidebar a{display:block;border-radius:12px;padding:12px;margin:3px 0}.qe-message-sidebar a:hover,.qe-message-sidebar a.is-active{background:var(--qe-grey)}.qe-message-sidebar strong,.qe-message-sidebar span{display:block}.qe-message-sidebar strong{color:var(--qe-navy)}.qe-message-sidebar span{color:var(--qe-slate);font-size:.84rem}.qe-message-thread{overflow:hidden;display:flex;flex-direction:column}.qe-thread-head{padding:18px 20px;border-bottom:1px solid var(--qe-border)}.qe-thread-head h2{margin:4px 0;color:var(--qe-navy)}.qe-chat-list{padding:20px;display:flex;flex-direction:column;gap:12px;min-height:360px;max-height:540px;overflow:auto}.qe-chat{max-width:78%;border-radius:17px;padding:12px 14px}.qe-chat.is-theirs{align-self:flex-start;background:var(--qe-grey)}.qe-chat.is-mine{align-self:flex-end;background:var(--qe-navy);color:#fff}.qe-chat>div{display:flex;gap:12px;justify-content:space-between}.qe-chat strong{font-size:.84rem}.qe-chat small{opacity:.7}.qe-chat p{margin:6px 0 0}.qe-chat-compose{border-top:1px solid var(--qe-border);padding:18px}.qe-chat-compose label{display:block;margin-bottom:12px}
.qe-email-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:20px}.qe-mail-note{color:var(--qe-slate);font-size:.86rem;background:var(--qe-grey);padding:12px;border-radius:11px}.qe-mail-list{display:grid;gap:10px}.qe-mail-list article{border:1px solid var(--qe-border);border-radius:14px;padding:14px;display:grid;grid-template-columns:1fr auto;gap:7px 12px}.qe-mail-list article div strong,.qe-mail-list article div span{display:block}.qe-mail-list article div strong{color:var(--qe-navy)}.qe-mail-list article div span,.qe-mail-list article small{color:var(--qe-slate);font-size:.82rem}.qe-mail-list article p{grid-column:1/-1;margin:3px 0;color:var(--qe-text)}
.qe-profile-grid{display:grid;grid-template-columns:330px 1fr;gap:20px}.qe-profile-summary{text-align:center}.qe-avatar-large{width:92px;height:92px;border-radius:26px;display:grid;place-items:center;background:var(--qe-navy);color:#fff;font-size:2.5rem;font-weight:900;margin:0 auto 14px}.qe-profile-summary h2{margin:0 0 10px}.qe-profile-summary dl{text-align:left;margin-top:26px;grid-template-columns:80px 1fr}
@media(max-width:980px){.qe-login-screen{grid-template-columns:1fr}.qe-login-brand-panel{min-height:auto;padding:44px 30px}.qe-login-brand-panel h1{font-size:clamp(2.8rem,10vw,5rem)}.qe-login-form-panel{padding:40px 28px}.qe-login-role-grid{grid-template-columns:1fr}.qe-portal-stat-grid{grid-template-columns:repeat(2,1fr)}.qe-portal-action-grid,.qe-form-grid-3,.qe-report-totals{grid-template-columns:repeat(2,minmax(0,1fr))}.qe-message-layout,.qe-email-grid,.qe-profile-grid{grid-template-columns:1fr}.qe-message-sidebar{display:flex;gap:6px;overflow:auto}.qe-message-sidebar h3{display:none}.qe-message-sidebar a{min-width:180px}.qe-info-grid{grid-template-columns:1fr}}
@media(max-width:650px){.qe-portal-shell{padding-top:20px}.qe-portal-tabs{margin-bottom:20px}.qe-portal-heading{align-items:flex-start;flex-direction:column}.qe-user-chip{width:100%}.qe-portal-stat-grid,.qe-portal-action-grid,.qe-form-grid-2,.qe-form-grid-3,.qe-report-totals{grid-template-columns:1fr}.qe-claim-hero,.qe-report-head,.qe-inline-action{align-items:flex-start;flex-direction:column}.qe-report-head>div:last-child{align-items:flex-start;flex-wrap:wrap}.qe-portal-card dl{grid-template-columns:1fr}.qe-portal-card dd{margin-bottom:8px}.qe-chat{max-width:94%}.qe-login-form-panel{padding:32px 20px}.qe-login-brand-panel{padding:36px 22px}.qe-login-brandmark{margin-bottom:30px}}
@media print{.qe-topbar,.qe-header,.qe-footer,.qe-portal-tabs,.qe-user-chip,.qe-form-actions,.qe-inline-action,.qe-decision-box,.qe-btn{display:none!important}.qe-portal-shell{padding:0}.qe-container{width:100%}.qe-portal-card,.qe-report-totals>div{box-shadow:none}.qe-report-head{background:#fff;color:#000;border:1px solid #bbb}.qe-report-head h2,.qe-report-head p{color:#000}}

/* Assessment report photographs */
.qe-report-photo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:16px}.qe-report-photo-grid figure{margin:0;border:1px solid #e0e5ee;border-radius:12px;overflow:hidden;background:#f8f9fb}.qe-report-photo-grid img{width:100%;height:160px;object-fit:cover;display:block}.qe-report-photo-grid figcaption{padding:9px 10px;color:#162b58;font-size:.82rem;font-weight:800}@media(max-width:900px){.qe-report-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.qe-report-photo-grid{grid-template-columns:1fr}}@media print{.qe-report-photo-grid{grid-template-columns:repeat(4,1fr)}.qe-report-photo-grid img{height:110px}}

/* QuickEstimate PWA install + network status */
.qe-pwa-install{position:fixed;right:18px;bottom:18px;z-index:9997;border:0;border-radius:16px;background:#c24543;color:#fff;padding:13px 18px;font:inherit;font-weight:800;box-shadow:0 16px 38px rgba(15,23,42,.22);display:flex;align-items:center;gap:9px;cursor:pointer}
.qe-pwa-install[hidden]{display:none!important}.qe-pwa-install span:first-child{font-size:1.2em;line-height:1}
.qe-pwa-network{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);z-index:9998;border-radius:999px;padding:9px 16px;color:#fff;font-size:.9rem;font-weight:800;box-shadow:0 10px 24px rgba(15,23,42,.18)}
.qe-pwa-network.is-offline{background:#9f2f36}.qe-pwa-network.is-online{background:#176c4a}.qe-pwa-network[hidden]{display:none!important}
@media(max-width:640px){.qe-pwa-install{right:12px;bottom:12px}.qe-pwa-network{bottom:68px;max-width:calc(100vw - 24px);white-space:nowrap}}

/* Client self-registration + home assessment */
.qe-auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;background:var(--qe-grey);padding:6px;border-radius:16px;margin:0 0 28px}.qe-auth-tab{border:0;border-radius:12px;background:transparent;color:var(--qe-slate);font:inherit;font-weight:900;padding:12px 10px;cursor:pointer}.qe-auth-tab.is-active{background:#fff;color:var(--qe-navy);box-shadow:0 4px 14px rgba(20,35,67,.08)}.qe-auth-panel[hidden]{display:none!important}.qe-auth-name-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.qe-client-terms{align-items:flex-start!important;margin:10px 0 20px!important}.qe-client-terms span{font-size:.84rem!important;line-height:1.45;color:var(--qe-slate)!important;font-weight:600!important}.qe-client-check-grid{display:flex;flex-wrap:wrap;gap:10px;margin:10px 0 22px}.qe-client-check{display:flex!important;align-items:center;gap:9px;border:1px solid #d8dee8;border-radius:999px;background:#fff;padding:10px 14px;margin:0!important;color:var(--qe-navy);font-weight:800;cursor:pointer}.qe-client-check input{width:auto!important;margin:0}.qe-client-check span{margin:0!important}.qe-client-component-picker{border:1px solid #dfe4ec;border-radius:16px;padding:14px 16px;margin:16px 0 24px;background:#fafbfd}.qe-client-component-picker summary{cursor:pointer;color:var(--qe-navy);font-weight:900}.qe-client-upload-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:14px 0 22px}.qe-client-upload-card{border:1px solid #dfe4ec;border-radius:16px;padding:12px!important;background:#fafbfd;min-height:180px;display:flex!important;flex-direction:column;gap:8px;margin:0!important}.qe-client-upload-card strong{color:var(--qe-navy)}.qe-client-upload-card small{color:var(--qe-slate);line-height:1.35}.qe-client-upload-card img{width:100%;height:120px;object-fit:cover;border-radius:10px;background:#edf0f5}.qe-client-upload-card input[type=file]{font-size:.78rem;padding:9px!important;margin-top:auto}.qe-client-submit-warning{border-left:4px solid var(--qe-red);background:#fff5f5;color:#6d2f32;border-radius:12px;padding:14px 16px;margin:18px 0}.qe-client-manager-note{background:#f4f7fb;border-left:4px solid var(--qe-navy);border-radius:12px;padding:14px 16px;margin:16px 0}.qe-client-manager-note strong{color:var(--qe-navy)}.qe-client-manager-note p{margin:6px 0 0}.qe-client-photo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:18px}.qe-client-photo-grid figure{margin:0;border:1px solid #dfe4ec;border-radius:14px;overflow:hidden;background:#fff}.qe-client-photo-grid img{width:100%;height:170px;object-fit:cover;display:block}.qe-client-photo-grid figcaption{padding:9px 10px;color:var(--qe-navy);font-weight:800;font-size:.84rem}.qe-client-assessment-form h3{color:var(--qe-navy);margin:28px 0 12px}
@media(max-width:980px){.qe-client-upload-grid,.qe-client-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.qe-auth-name-grid{grid-template-columns:1fr}.qe-auth-tabs{grid-template-columns:1fr}.qe-client-upload-grid,.qe-client-photo-grid{grid-template-columns:1fr}.qe-client-check{border-radius:14px;width:100%}}


/* v2.2 insurer read-only and message topic labels */
.qe-message-topic{display:inline-flex;margin:7px 0 2px;padding:5px 10px;border-radius:999px;background:#eef2f7;color:#162b58;font-size:.76rem;font-weight:800;line-height:1.2}
.qe-chat.is-mine .qe-message-topic{background:rgba(255,255,255,.85)}
.qe-insurer-readonly{border-left:4px solid #162b58}
