:root{--ink:#173047;--muted:#61748a;--line:#dfe6ed;--brand:#087d84;--bg:#f3f6fa;--warning:#fff8e7}*{box-sizing:border-box}.roof-app{margin:0;background:var(--bg);color:var(--ink);font-family:Arial,sans-serif;font-size:16px;line-height:1.55}.roof-app h1,.roof-app h2,.roof-app h3,.roof-app strong{color:var(--ink);font-family:inherit}.roof-app h1{font-size:30px;line-height:1.2;letter-spacing:-.8px;margin:8px 0 12px}.roof-app h2{font-size:22px;line-height:1.3;margin:8px 0 16px}.roof-app h3{font-size:17px;margin:20px 0 8px}.roof-app p{margin:8px 0 16px}.roof-app .app-header{height:76px;min-height:76px;padding:8px 28px;background:#fff;border-bottom:1px solid var(--line);box-shadow:none;gap:28px;position:sticky;top:0;z-index:10}.app-header img{object-fit:contain;width:172px;height:56px}.app-header>div{border-left:1px solid var(--line);padding-left:26px;flex:1}.app-header strong{font-size:15px}.app-header small{color:var(--muted);font-size:12px;letter-spacing:1.3px}.roof-app a{color:var(--brand)}.roof-app .button,.roof-app button{border-radius:7px;background:var(--brand);color:#fff;border:1px solid var(--brand);padding:11px 17px;font:600 14px Arial,sans-serif;min-height:44px;cursor:pointer;text-decoration:none}.roof-app button:disabled{opacity:.5;cursor:not-allowed}.roof-app .secondary{background:#fff;color:var(--ink);border:1px solid #ced8e3}.roof-app :focus-visible{outline:3px solid #37b3d4;outline-offset:3px}.app-sidebar{position:fixed;top:76px;bottom:0;width:198px;border-right:1px solid var(--line);background:#fff;padding:25px 13px;display:flex;flex-direction:column;gap:6px;overflow-y:auto}.app-sidebar small{font-size:12px;letter-spacing:1.5px;color:var(--muted);margin:12px}.app-sidebar a{color:var(--muted);padding:10px 12px;border-radius:7px;text-decoration:none;font-weight:600;min-height:44px}.app-sidebar a[aria-current]{background:#e6f4f4;color:var(--brand)}.app-sidebar p{margin:auto 12px 0;font-size:12px;color:var(--muted)}.app-sidebar span{font-size:12px}.roof-app #field-main{max-width:none;margin:0 0 0 198px;padding:28px clamp(20px,3vw,48px) 60px;outline:none}.roof-app.customer-app #field-main{margin:0 auto;max-width:1130px}.roof-app .card{background:#fff;padding:24px;border:1px solid var(--line);border-radius:10px;box-shadow:0 2px 3px #19334d03;margin:0 0 18px;min-width:0}.roof-app .field-layout{grid-template-columns:minmax(0,1fr) 282px;gap:24px}.roof-app .field-aside{min-width:0}.roof-app .field-aside>.card:first-child{position:sticky;top:96px}.roof-app .field{font-size:14px;font-weight:600;color:#314a60;gap:7px;margin-bottom:16px}.roof-app input,.roof-app select,.roof-app textarea{background:#fff;border:1px solid #cdd8e4;border-radius:6px;padding:11px 12px;width:100%;min-height:44px;color:var(--ink);font:400 15px Arial,sans-serif;line-height:1.45}.roof-app textarea{resize:vertical;min-height:120px}.roof-app input[type=checkbox]{width:18px;min-width:18px;height:18px;min-height:18px;accent-color:var(--brand);margin-top:3px}.roof-app .two{gap:0 20px}.roof-app .eyebrow{color:var(--brand);letter-spacing:1.8px;font-size:12px;font-weight:700}.roof-app .muted,.roof-app small{color:var(--muted)}.roof-app .notice{background:#edf6fa;border:1px solid #d5e9f1;border-left:3px solid #78afc5;border-radius:5px;padding:13px 15px;font-size:14px;line-height:1.6}.roof-app .notice.warning{background:var(--warning);border-color:#f1ddb3}.roof-app .workbench-steps{background:none;gap:0;padding:0;margin:0 0 20px;display:grid;grid-template-columns:repeat(4,1fr);counter-reset:none}.roof-app .workbench-steps li{display:flex;align-items:center;border-bottom:2px solid var(--line);padding:10px 3px 14px;font-size:12px;gap:8px}.roof-app .workbench-steps b{border-radius:50%;background:#e2e9f1;color:var(--muted);height:25px;width:25px;display:grid;place-items:center;flex-shrink:0}.roof-app .workbench-steps .current{border-color:var(--brand);color:var(--brand);font-weight:700}.roof-app .workbench-steps .current b,.roof-app .workbench-steps .done b{background:var(--brand);color:white}.roof-app .section-heading{align-items:flex-start;margin-bottom:18px}.roof-app .section-heading p{font-size:12px;color:var(--muted)}.roof-app .roof-option-grid{gap:10px}.roof-app .roof-option{padding:14px;border-radius:7px;text-align:left;line-height:1.5}.roof-app .roof-option.selected{background:#e7f5f4;border:2px solid var(--brand)}.roof-app .roof-option strong{font-size:14px}.roof-app .roof-option span{font-size:12px}.roof-app .roof-option small{font-size:12px}.roof-app .measurement-strip{background:#f4f8fb;border:1px solid var(--line);border-radius:7px;padding:18px;gap:20px}.roof-app .measurement-strip strong{font-size:22px}.roof-app .measurement-strip span{font-size:12px}.roof-app .table-wrap{border:1px solid var(--line);border-radius:7px;max-width:100%;overflow:auto;margin:12px 0}.roof-app table{font-size:14px;border-collapse:collapse;margin:0;width:100%}.roof-app th{background:#f6f8fb;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;padding:12px;text-align:left}.roof-app td{padding:12px;vertical-align:top;border-bottom:1px solid #edf1f5}.roof-app .material-table input{width:92px;min-width:76px;padding:8px;font-size:14px;min-height:44px}.roof-app .material-table td:first-child{min-width:175px}.material-table .shortage{background:#fff3e4}.worksheet-summary{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.pill{background:#e9f4f2;color:var(--brand);border:0;font-size:12px}.term-editor{border-top:1px solid var(--line);padding-top:14px;margin-top:14px}.term-editor>div{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.roof-app .term-editor button{font-size:12px;min-height:32px;padding:5px 10px}.roof-app .saved-estimate{padding:12px;box-shadow:none;text-align:left;width:100%;margin-bottom:7px;font-size:12px}.roof-app .aside-price{font-size:32px;letter-spacing:-1px}.roof-app .wizard-actions{justify-content:space-between;padding-top:20px;border-top:1px solid var(--line);margin-top:22px}.roof-app details>summary{font-weight:600;cursor:pointer;padding:8px 0;min-height:44px}.roof-app details[open]>summary{margin-bottom:14px}.roof-app .verify-check{font-size:14px;align-items:flex-start;padding:13px 0}.roof-app #global-status:empty{display:none}.roof-app #global-status{padding:12px 16px;margin:0 0 18px;border-radius:7px;background:#e4f3f1;color:#16575d}.roof-app #global-status.error,.request-error{background:#fff0eb;color:#923e30;border:1px solid #ecc9bb}.request-error{padding:16px;border-radius:7px;font-size:14px}.measure-layout{display:grid;grid-template-columns:310px minmax(0,1fr);gap:22px;align-items:start}.map-stage{min-height:420px}.map-empty{display:flex;min-height:420px;align-items:center;justify-content:center;text-align:center;background:linear-gradient(135deg,#f3f7fb,#e5eff3);border:1px dashed #c9d7e1;border-radius:8px;padding:32px}.map-empty .map-symbol{font-size:56px;color:#9db4c6;display:block}.map-content{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:20px}.roof-app .satellite-preview{width:100%;height:auto;object-fit:contain;border-radius:8px;background:#edf1f5}.roof-app .takeoff-candidate-list{display:grid;gap:8px}.roof-app .takeoff-candidate-list button{text-align:left;display:block;width:100%;font-weight:400}.takeoff-candidate-list strong,.takeoff-candidate-list small{display:block}.quote-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:24px}.quote-intro{max-width:690px;margin-bottom:18px}.quote-intro h1{font-size:28px}.quote-trust{display:flex;gap:18px;font-size:12px;color:var(--muted)}.quote-price{font-size:38px;letter-spacing:-1px;display:block}.quote-sidebar{align-self:start;position:sticky;top:100px}.quote-layout .wizard-actions{margin-bottom:0}.quote-progress{display:flex;gap:8px;list-style:none;padding:0;margin:0 0 24px}.quote-progress li{flex:1;padding:9px 0;border-bottom:2px solid var(--line);font-size:12px;color:var(--muted)}.quote-progress .active{border-color:var(--brand);font-weight:bold;color:var(--brand)}.quote-map{margin-bottom:16px}.roof-app .agreement-document{max-width:940px;margin:auto}.roof-app .signature-name{font-size:28px}.insurance-notice{font-size:14pt;font-weight:700;line-height:1.55}.emergency-notice{font-size:18pt;font-weight:700}.lien-notice{font-size:12pt;font-weight:700;text-transform:uppercase;white-space:pre-line}.roof-app .document-hash{overflow-wrap:anywhere;font-size:12px}.job-dialog{border:1px solid var(--line);border-radius:12px;max-width:1050px;width:calc(100% - 32px);max-height:90vh;padding:28px;color:var(--ink);background:var(--bg)}.job-dialog::backdrop{background:#172e4599}.job-dialog .doc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.job-dialog .card{margin:0;padding:20px}.job-print{display:none}.roof-app.dashboard-app .portal-header{box-shadow:none;background:#fff;border-bottom:1px solid var(--line)}.roof-app.dashboard-app .dashboard-main{max-width:none}.workspace-launchers{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:20px 0}.workspace-launchers a{display:block;text-decoration:none}.workspace-launchers .card{height:100%;margin:0}.workspace-launchers h3{margin-top:8px}.roof-app [hidden]{display:none!important}
@media(max-width:1250px){.map-content{grid-template-columns:1fr}.roof-app .field-layout{grid-template-columns:minmax(0,1fr) 248px}.roof-app .roof-option-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:1050px){.app-sidebar{position:static;width:100%;padding:5px 16px;flex-direction:row;overflow-x:auto;border-right:0;border-bottom:1px solid var(--line)}.app-sidebar small,.app-sidebar p{display:none}.app-sidebar a{white-space:nowrap;font-size:12px}.roof-app #field-main{margin:0;padding:24px}.measure-layout{grid-template-columns:280px minmax(0,1fr)}.app-header>div{padding-left:18px}.job-dialog .doc-grid{grid-template-columns:1fr}}
@media(max-width:760px){.roof-app .app-header{height:68px;min-height:68px;padding:6px 16px;gap:12px}.app-header img{width:130px;height:48px}.app-header>div{border:0;padding:0}.app-header small{font-size:12px}.app-header strong{font-size:12px}.app-header>.button{display:none}.help-link{font-size:12px;white-space:nowrap}.roof-app #field-main{padding:18px 14px 40px}.roof-app .card{padding:19px;border-radius:9px}.roof-app h1{font-size:26px}.roof-app h2{font-size:20px}.roof-app .field-layout,.measure-layout,.quote-layout{grid-template-columns:1fr;gap:12px}.roof-app .field-aside{display:flex;flex-direction:column}.roof-app .field-aside>.card:first-child,.quote-sidebar{position:static}.roof-app .two{grid-template-columns:1fr}.roof-app .workbench-steps li{flex-direction:column;align-items:start;font-size:12px;gap:7px}.roof-app .workbench-steps{gap:6px}.roof-app .section-heading{display:block}.roof-app .section-heading .actions{margin-top:16px}.roof-app .actions{gap:8px;flex-wrap:wrap}.roof-app .measurement-strip{gap:12px;padding:14px}.roof-app .measurement-strip strong{font-size:18px}.roof-app .measurement-strip span{font-size:12px}.map-stage,.map-empty{min-height:260px}.quote-intro h1{font-size:26px}.quote-trust{flex-wrap:wrap;gap:8px 18px}.quote-progress li{font-size:12px}.workspace-launchers{grid-template-columns:1fr}.roof-app .wizard-actions{gap:10px}.roof-app .wizard-actions button{flex:1}.roof-app .material-table{min-width:640px}.roof-app .pre-wrap{overflow-wrap:anywhere}.insurance-notice{font-size:14pt}.job-dialog{padding:16px}.roof-app .roof-option-grid{grid-template-columns:1fr 1fr}}
@media print{.roof-app{background:white;color:black;font-size:11pt}.roof-app .portal-header,.app-sidebar,.field-actions,.field-aside,#global-status,.quote-progress{display:none!important}.roof-app #field-main{padding:0;margin:0;max-width:none}.roof-app .card{border:0;border-radius:0;box-shadow:none;padding:12px 0;break-inside:auto}.roof-app .field-layout{display:block}.roof-app .signature-section,.lien-page{break-before:page}.insurance-notice{font-size:14pt;font-weight:bold}.emergency-notice{font-size:18pt;font-weight:bold}.lien-notice{font-size:12pt;font-weight:bold}.roof-app table{font-size:10pt}.roof-app th,.roof-app td{padding:7px}.roof-app .table-wrap{overflow:visible}.roof-app .agreement-document{max-width:none}.roof-app.printing-job #field-root{display:none}.roof-app.printing-job .job-print{display:block}.roof-app.printing-job dialog{display:none}.job-print .card{break-before:page}.roof-app .workbench-steps{display:none!important}}

html:has(.roof-app){background:var(--bg)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

.roof-app .workbench-steps li,.roof-app .quote-progress li,.roof-app .app-sidebar a{font-size:14px}.roof-app .notice,.roof-app .verify-check,.roof-app .roof-option span{font-size:14px}.roof-app .signature-section p{overflow-wrap:anywhere}.roof-app .field-layout>*{min-width:0}.roof-app .measurement-strip>div{min-width:0}.roof-app .measurement-strip strong{overflow-wrap:anywhere}

/* Public estimator navigation retains SOS branding without changing staff layouts. */
.customer-app{font-family:Inter,Arial,sans-serif}.customer-app .quote-public-footer{max-width:1130px;margin:0 auto;padding:22px 28px 36px;border-top:1px solid #dfe6ed;display:flex;flex-wrap:wrap;gap:14px 24px}.customer-app .quote-public-footer a{font-size:14px;font-weight:600;min-height:32px}.customer-app .quote-public-footer p{width:100%;font-size:12px;color:#61748a;margin:0}.customer-app .quote-public-footer a:focus-visible{outline:3px solid #1099a3;outline-offset:4px}

/* Keep the app palette readable inside the inherited dark learning surfaces. */
.roof-app .card.hero h1,.roof-app .card.hero h2,.roof-app .card.hero h3,.roof-app .card.hero strong,
.roof-app .certificate h1,.roof-app .certificate h2,.roof-app .certificate h3,
.roof-app .course-sidebar h2{color:#fff}
.roof-app .card.hero .eyebrow{color:#98d9dc}
.roof-app .card.hero .pill{background:#284e62;color:#fff}
.roof-app .course-sidebar .help strong{color:#dbe9ee}
.roof-app .course-sidebar button{background:transparent;color:#fff;border-color:transparent}
.roof-app .course-sidebar button.active{background:#ffffff1c;border-color:#8ad1d5}
.roof-app .owner-nav button:not(.active){background:transparent;color:#4e636f;border-color:transparent}
.roof-app .owner-nav button:not(.active):hover{background:#dce8ec}
@media print{.roof-app .certificate h1,.roof-app .certificate h2,.roof-app .certificate h3{color:#000}}
