/* Portal v2 keeps the established paper, charcoal and orange palette. */
.field input[readonly]{background:#e9eee3;border-color:#bbcbb5;font-family:Consolas,monospace;font-weight:600}.mass-formula{font:13px Consolas,monospace;line-height:1.8}
.demo-banner{background:var(--dark);color:#dfe8dc;text-align:center;padding:11px 20px;font-size:11px;letter-spacing:.45px;line-height:1.6}.notice{background:#eee9d8;border-left:3px solid #bc7b27;padding:15px 19px;font-size:13px;line-height:1.8;color:#66532c}.notice.compact{font-size:11px;padding:10px 14px;margin-bottom:20px}.help{font-size:12px;line-height:1.8;color:var(--muted);margin:13px 0}.contractor-card{background:#faf9f4;border:1px solid var(--line);padding:28px;display:grid;grid-template-columns:1.8fr 1fr;gap:40px;align-items:center}.contractor-card label{margin-bottom:10px}.contractor-card select{font-size:17px;padding:13px}.pill{display:inline-block;border-radius:3px;padding:6px 9px;font-size:11px;line-height:1.6;max-width:100%}.pill.warn{color:#785421;background:#f3e6c9}.pill.good{color:#315a38;background:#dfeada}.file-unit{font-size:10px;padding:5px;margin:7px 0;max-width:190px}.technology-state{display:block;font-size:9px;margin-top:7px;line-height:1.6;color:#866328;max-width:145px}.results-table .file-name{min-width:190px}.results-table th:nth-child(4){min-width:130px}.excel-tools{margin-top:25px;border:1px solid var(--line);padding:15px}.excel-tools>summary{cursor:pointer;font-size:12px;font-weight:600;line-height:1.8}.selected-path,.contour-preview svg polyline.selected-path{stroke:#f07545;stroke-width:1.8;fill:none}.omitted-path,.contour-preview svg polyline.omitted-path{stroke:#a5ada8;stroke-width:1;stroke-dasharray:5 4;fill:none;opacity:.8}.warning-line{color:#825c25;background:#f4ecda;padding:9px 12px;font-size:11px;line-height:1.8;margin:8px 0}.part-forms{display:grid;gap:20px}.part-card{border:1px solid var(--line);border-radius:4px;padding:25px;background:#faf9f4;min-width:0}.part-title,.quote-card-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.part-title h3,.quote-card-head h3{font-size:17px;margin:0;overflow-wrap:anywhere}.part-meta{font:12px Consolas,monospace;color:var(--muted);line-height:1.8;margin:14px 0 22px}.part-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.field>span{display:block;font-size:12px;margin:0 0 9px;color:var(--ink);font-weight:600}.field>small{font-size:10px;line-height:1.7;font-weight:400;color:var(--muted);display:block;margin-top:8px}.field input,.field select,.field textarea{font:14px 'Segoe UI',Arial,sans-serif;width:100%;padding:11px;min-height:43px}.field input[type=checkbox],.checkbox-label input,.checkbox-field input{appearance:auto;width:18px;height:18px;min-height:18px;padding:0;accent-color:var(--orange)}.field.checkbox-field{display:flex;flex-wrap:wrap;align-content:flex-start;gap:8px}.field.checkbox-field>span{width:100%;margin-bottom:2px}.field.checkbox-field>small{margin:0;flex:1}.field-error,.field>small.field-error{color:#9a301b;font-size:12px;line-height:1.7}.field input[aria-invalid=true]{border-color:#a43922}.technology-warnings{margin-top:22px;border-top:1px solid var(--line);padding-top:16px}.technology-warnings summary{cursor:pointer;font-size:12px;font-weight:600}.technology-warnings p{font-size:12px;line-height:1.8;color:#746044;margin:10px 0 0}.estimate-card{background:var(--dark);color:#f4f2eb;padding:30px;border-radius:4px;margin-top:25px}.estimate-card .eyebrow{color:#bccfbe}.price-main{font:42px Consolas,monospace;letter-spacing:-1px;display:inline-block;margin-bottom:12px}.price-gross{font-size:13px;line-height:1.8}.estimate-card .help{color:#bbc8bb}.price-breakdown{border-top:1px solid #526053;margin-top:18px;padding-top:18px;font-size:12px}.price-breakdown summary{cursor:pointer}.price-breakdown p{line-height:1.8;color:#d0dacf;overflow-wrap:anywhere}.cost-row{display:flex;justify-content:space-between;gap:25px;padding:7px 0;border-bottom:1px solid #526053}.quote-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:23px 0}.quote-actions .small-button{font-size:12px;padding:10px 13px}.empty-state{border:1px dashed var(--line);padding:35px;color:var(--muted);font-size:14px;line-height:1.8}.quote-card{border:1px solid var(--line);background:#faf9f4;border-radius:4px;padding:25px;margin:18px 0}.quote-card-price{font:23px Consolas,monospace;display:block;margin-top:18px}.quote-card .quote-actions{margin-bottom:0}.panel-title{font-size:54px}.panel-tabs{display:flex;gap:10px;margin:30px 0}.panel-tabs button{font-size:13px;padding:12px 17px}.panel-tabs button[aria-pressed=true]{background:var(--ink);color:white;border-color:var(--ink)}#queue-filter{max-width:380px;margin:10px 0 22px}#rates-section h2{margin:35px 0 18px}.profile-fields{grid-template-columns:repeat(4,minmax(0,1fr));margin:30px 0}.table-scroll{overflow:auto;max-width:100%;border:1px solid var(--line);margin:18px 0}.rate-table,.layer-table{border-collapse:collapse;width:100%;font-size:12px;text-align:left}.rate-table{min-width:940px}.rate-table th,.rate-table td,.layer-table th,.layer-table td{padding:10px;border-bottom:1px solid var(--line);vertical-align:top}.rate-table th,.layer-table th{background:#e8ecdf;font-size:11px}.rate-table input{padding:9px;font:13px 'Segoe UI',Arial,sans-serif;min-width:90px}.rate-table td:first-child{min-width:190px}.layer-table{min-width:600px}.layer-table td{overflow-wrap:anywhere}.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);z-index:10000;max-width:calc(100% - 32px);width:620px;padding:17px 22px;background:#233e2b;color:white;border-radius:4px;box-shadow:0 6px 35px #0002;font-size:13px;line-height:1.8;margin:0}.toast.error{background:#813b24}dialog{width:min(1120px,calc(100% - 28px));max-height:92vh;border:1px solid var(--line);border-radius:5px;padding:25px;background:var(--paper);color:var(--ink);box-shadow:0 15px 70px #0003}dialog::backdrop{background:#15211abf}.dialog-header{display:flex;justify-content:space-between;gap:20px;align-items:center;position:sticky;top:-25px;background:var(--paper);padding:10px 0 20px;border-bottom:1px solid var(--line);z-index:2}.dialog-header h2{font-size:26px;letter-spacing:-1px}.snapshot-file{border:1px solid var(--line);border-radius:4px;margin:22px 0;padding:20px;background:#faf9f4}.snapshot-file summary{font-size:17px;font-weight:600;cursor:pointer;overflow-wrap:anywhere}.snapshot-file>p{font-size:12px;line-height:1.8;margin:14px 0}.snapshot-preview{width:100%;height:330px;display:block;background:var(--dark);border-radius:3px}.hash{font:10px Consolas,monospace;overflow-wrap:anywhere;color:var(--muted);line-height:1.8}.snapshot-rates{font-size:12px;margin:24px 0}.snapshot-rates pre{white-space:pre-wrap;font-size:11px;line-height:1.8;max-height:250px;overflow:auto}.history{font-size:12px;padding-left:20px;line-height:1.9}.history li{margin-bottom:10px}.decision-form{margin-top:30px;border-top:2px solid var(--orange);padding-top:25px;display:grid;gap:18px}.decision-form .checkbox-label{font-size:13px;gap:12px}.decision-form textarea{min-height:100px;resize:vertical;background:#fffefa;border:1px solid #c2c9bb}.decision-form input[type=number]{max-width:350px}.confirmed-price{font:24px Consolas,monospace;color:#325838;line-height:1.7}.button{cursor:pointer}#layer-report{padding:10px 16px}#layer-report p{padding:5px 0}
@media(max-width:1050px){.part-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.profile-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.contractor-card{gap:25px}.header nav{gap:15px;font-size:12px}}
@media(max-width:760px){.demo-banner{font-size:9px;padding:9px 14px}.header-inner{flex-wrap:wrap;padding:18px 0;gap:18px}.header nav{width:100%;justify-content:space-between;gap:10px}.header nav>a:not(.nav-download){display:block}.header nav a{font-size:10px}.nav-download{padding:8px}.contractor-card{grid-template-columns:1fr;padding:20px;gap:16px}.contractor-card select{font-size:15px}.part-card,.quote-card{padding:19px}.part-title,.quote-card-head{display:block}.part-title .pill,.quote-card-head .pill{margin-top:12px}.part-grid{grid-template-columns:1fr 1fr;gap:18px 13px}.field input,.field select,.field textarea{font-size:13px;padding:10px}.field>span{font-size:11px}.part-meta{font-size:11px}.price-main{font-size:34px}.estimate-card{padding:22px}.price-gross{display:block}.panel-title{font-size:43px}.quote-actions .button{font-size:12px;padding:14px 16px}.quote-card-price{font-size:19px}.profile-fields{gap:20px 13px}.snapshot-file{padding:15px}.snapshot-preview{height:230px}.dialog-header h2{font-size:20px}dialog{padding:18px}.dialog-header{top:-18px}.notice{font-size:12px}.empty-state{font-size:13px;padding:23px}.hero{padding-top:45px}.panel-tabs button{font-size:11px;padding:10px}.rate-table{min-width:900px}}
@media(max-width:420px){.part-grid,.profile-fields{grid-template-columns:1fr}.price-main{font-size:30px}.hero h1{font-size:52px}.quote-actions{align-items:stretch;flex-direction:column}.quote-actions button{justify-content:center}.part-title h3{font-size:16px}.header nav a{font-size:9px}.nav-download{padding:7px}.contractor-card select{font-size:13px}}
@media print{.demo-banner{color:#111;background:#fff;border:1px solid #777}.quote-actions,.panel-tabs,.toast{display:none}.estimate-card{background:#fff;color:#111;border:1px solid #777}.estimate-card p,.estimate-card .help{color:#333}.snapshot-preview{break-inside:avoid}dialog{position:static;display:block;width:100%;max-height:none;box-shadow:none}}
