:root{font-family:Segoe UI,Arial,sans-serif;color:#252525;background:#f5f5f5}*{box-sizing:border-box}body{margin:0;display:flex;min-height:100vh}aside{background:#101010;color:#fff;width:245px;padding:35px 24px;position:fixed;height:100vh}.brand{font-size:42px;font-weight:800;color:#d1b36b}.brand span{display:block;font-size:14px;color:#fff;letter-spacing:2px}aside p{color:#c4c4c4;font-size:14px}aside small{position:absolute;bottom:28px;color:#c4c4c4}nav{margin-top:48px}nav button{display:block;width:100%;text-align:left;margin:8px 0;background:#292929}main{margin-left:245px;padding:32px 5%;width:calc(100% - 245px)}header{border-bottom:1px solid #dce4e9;display:flex;justify-content:space-between;align-items:center;font-size:12px;letter-spacing:1px}h1{font-size:32px;margin-bottom:10px}p{line-height:1.6}.muted{color:#666666}button{background:#292929;color:white;border:0;border-radius:7px;padding:11px 17px;cursor:pointer;font:inherit}button:hover{filter:brightness(.93)}button.secondary{background:#e7e7e7;color:#252525}input,select{display:block;border:1px solid #b7c8d1;border-radius:6px;padding:11px;width:100%;font:inherit;margin:6px 0 18px;background:white}input[type=checkbox]{display:inline;width:auto;margin-right:8px}label{display:block;font-size:14px}form{max-width:640px}.card{background:white;padding:28px;border:1px solid #dce4e9;border-radius:12px;margin-top:24px}.login{max-width:460px;margin:55px auto}table{width:100%;border-collapse:collapse;background:white;margin-top:22px}th,td{text-align:left;padding:16px;border-bottom:1px solid #e6ecef;font-size:14px}th{color:#617787;font-size:12px}td button{padding:7px 10px;margin:3px;font-size:12px}.badge{display:inline-block;background:#e7e7e7;padding:5px 9px;border-radius:20px}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:15px}.toolbar input{max-width:320px;margin:0}#message{color:#a03523;white-space:pre-wrap}dialog{border:0;border-radius:12px;padding:30px;width:min(700px,95vw);max-height:90vh;overflow:auto}dialog::backdrop{background:#10101088}pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px}a{color:#292929}.scroll{overflow:auto}@media(max-width:800px){aside{position:static;width:100%;height:auto}aside small{position:static}body{display:block}main{margin:0;width:100%;padding:20px}nav{margin:15px 0}nav button{width:auto;display:inline-block}header{display:block}.toolbar{flex-wrap:wrap}}

.brand img{display:block;width:100%;height:110px;object-fit:cover;border-radius:6px}
[hidden]{display:none!important}

button{transition:background .15s ease}button:hover{background:#111;filter:none}button.secondary:hover{background:#d2d2d2}button:focus-visible{outline:3px solid #b59a5d;outline-offset:3px}

.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px}fieldset{border:1px solid #ccc;border-radius:8px;margin:16px 0;padding:18px}legend{font-weight:600}.cct-parameter{border-top:1px solid #ddd;margin-top:18px;padding-top:18px}.selection-list{max-height:180px;overflow:auto}.selection-list button,#cct-city-selected button{margin:4px;font-size:13px}#editor form>button{margin:12px 0}

textarea{display:block;width:100%;font:inherit;padding:11px;border:1px solid #b7c8d1;border-radius:6px;margin:6px 0 18px;resize:vertical}.cct-parameter legend{font-size:14px}.cct-parameter .muted{font-size:13px}

.categories-panel{max-width:720px;margin:18px 0;border:1px solid #ddd;border-radius:8px;background:#fff;padding:12px 14px}.categories-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.categories-heading h2{font-size:16px;margin:0}.categories-heading button,#category-list button{font-size:12px;padding:6px 9px}#category-list{max-height:145px;overflow-y:auto;scrollbar-gutter:stable;margin-top:8px}#category-list p{font-size:13px;margin:0;padding:7px 0;border-top:1px solid #eee;line-height:1.5}#category-list:focus-visible{outline:2px solid #b59a5d;outline-offset:2px}

.resource-component{display:flex;align-items:center;gap:12px;border-top:1px solid #ddd;padding:10px 0;flex-wrap:wrap}.resource-component strong{flex:1;min-width:140px}.resource-component input{width:110px;margin:4px 0}.resource-component button{padding:6px 10px;font-size:13px}

aside{overflow-y:auto}

.quote-post{border-top:1px solid #ddd;margin-top:20px;padding-top:12px}.quote-post li{margin:10px 0}.quote-post button{font-size:13px;padding:7px 10px}

.quote-pending{background:#f5f3ee;border-left:3px solid #8b7650;padding:12px 16px;margin:16px 0}.quote-pending ul{margin-bottom:0}#quote-results td:first-child{max-width:600px;overflow-wrap:anywhere}#quote-results button{white-space:nowrap}#quote-results .toolbar{margin-top:16px}button:disabled{opacity:.45;cursor:default}

/* Keep long CCT lists inside their own accessible scrolling regions. */
.cct-scroll-panel{max-height:360px;overflow-y:auto;overscroll-behavior-y:contain;scrollbar-gutter:stable;border:1px solid #d5d5d5;border-radius:8px;padding:10px;background:#fafafa;margin:10px 0}
.cct-scroll-panel:empty{display:none}.cct-scroll-panel:focus-visible{outline:2px solid #8b7650;outline-offset:2px}
#jobs-editor>.card{margin:0 0 8px;padding:10px;background:#fff}#jobs-editor>.card>summary{font-size:14px;line-height:1.4;cursor:pointer}
#jobs-editor>[hidden]{display:none}#common-parameters>.cct-parameter{background:white;margin-top:0}
@media(max-height:650px){.cct-scroll-panel{max-height:260px}}

.validity-counters{display:flex;gap:12px;flex-wrap:wrap;margin:20px 0}.validity-card{min-width:150px;flex:1;text-align:left;border:1px solid currentColor}.validity-card strong{display:block;font-size:28px;margin-bottom:6px}.validity-card[aria-pressed=true]{outline:3px solid #222;outline-offset:2px}.validity-badge{display:inline-block;border-radius:6px;padding:7px 10px;font-weight:600;white-space:nowrap}.validity-expired{background:#fce2e2;color:#8c1717}.validity-warning,.validity-review{background:#fff1c2;color:#705000}.validity-ok{background:#def3e4;color:#1e6232}.validity-future{background:#e1ecfa;color:#204e7e}.validity-inactive{background:#eee;color:#555}.validity-table{max-height:58vh;overflow:auto}.validity-table th{position:sticky;top:0;background:#f4f4f4;z-index:1}.validity-table td{vertical-align:top}#validity-rows td:nth-child(2){min-width:220px;max-width:420px;overflow-wrap:anywhere}

#cost-job-options{max-height:220px;overflow-y:auto;overscroll-behavior:contain}#cost-job-options label[hidden]{display:none}

@media print{body>aside,body>main{display:none!important}}
.component-combo{position:relative}.component-combo [role=listbox]{max-height:220px;overflow:auto;border:1px solid #aaa;border-radius:6px;background:white;margin-top:-10px;margin-bottom:12px}.component-combo [role=option]{padding:12px;cursor:pointer}.component-combo [role=option]:hover,.component-combo [aria-selected=true]{background:#e8e8e8}.component-combo [role=listbox] p{padding:12px}

.sheet-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.sheet-lines{max-height:48vh;overflow:auto;padding:4px}.sheet-lines textarea{width:100%;box-sizing:border-box;font-family:monospace}.sheet-lines .card{margin:8px 0}#sheet-results{max-height:55vh;overflow:auto}#sheet-form #sheet-field{width:100%;max-width:100%}

#sheet-form{font-family:Segoe UI,Arial,sans-serif}.sheet-formula-preview{font-size:12px;overflow-wrap:anywhere}.sheet-lines textarea{font-size:14px;padding:10px;border:1px solid #aaa;border-radius:6px}aside{overflow-y:auto}

.sheet-wide{width:min(1220px,96vw)}#sheet-form{max-width:none}.sheet-meta{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:12px}.sheet-grid-scroll{max-height:48vh;overflow:auto;margin:12px 0}.sheet-grid-scroll table{margin:0}.sheet-grid-scroll th{position:sticky;top:0;background:#f2f2f2;z-index:1}.sheet-grid-scroll td,.sheet-grid-scroll th{padding:7px 9px}.sheet-grid-scroll input,.sheet-grid-scroll select{padding:8px;margin:0}.sheet-grid-table{min-width:960px;table-layout:fixed}.sheet-grid-table th:nth-child(1){width:20%}.sheet-grid-table th:nth-child(2){width:24%}.sheet-grid-table th:nth-child(3){width:38%}.sheet-grid-table th:nth-child(4){width:6%}.sheet-grid-table th:nth-child(5){width:12%}.sheet-grid-table [data-part=formula]{font-family:monospace}.sheet-insert,.sheet-actions{display:flex;align-items:center;gap:3px}.sheet-insert input{min-width:0}.sheet-actions button{padding:5px}.sheet-ops{justify-content:flex-start;gap:5px;flex-wrap:wrap}.sheet-ops button{padding:6px 12px}.sheet-meta input,.sheet-meta select{margin-bottom:8px}@media(max-width:800px){.sheet-meta{grid-template-columns:1fr 1fr}}

.sheet-company-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}

.sheet-grid-table{min-width:1120px}.sheet-grid-table th:nth-child(1){width:17%}.sheet-grid-table th:nth-child(2){width:20%}.sheet-grid-table th:nth-child(3){width:27%}.sheet-grid-table th:nth-child(4){width:22%}.sheet-grid-table th:nth-child(5){width:5%}.sheet-grid-table th:nth-child(6){width:9%}.sheet-grid-table textarea{width:100%;box-sizing:border-box;min-height:54px;resize:vertical;padding:8px;font:inherit}
/* Compact, hierarchical navigation. */
aside{display:flex;flex-direction:column;padding:24px 18px;overflow:hidden}#nav{display:flex;flex:1;min-height:0;flex-direction:column;margin-top:26px}#nav[hidden],#nav [hidden]{display:none!important}#nav-menu{flex:1;overflow-y:auto;min-height:0}#nav button{display:block;width:100%;font-size:14px;line-height:1.35;padding:9px 12px;margin:3px 0;border-radius:5px;background:transparent;color:#dedede}#nav button:hover{background:#292929;filter:none}#nav button.is-current{background:#343434;color:#fff;box-shadow:inset 3px 0 #d1b36b}#nav button:focus-visible{outline:2px solid #d1b36b;outline-offset:-2px}.nav-title{font-size:11px;text-transform:uppercase;letter-spacing:1px;margin:12px 12px 10px;color:#aaa}#nav .nav-back{color:#bdbdbd;border-bottom:1px solid #303030;padding-bottom:12px;margin-bottom:15px}#nav #logout{flex-shrink:0;border-top:1px solid #303030;margin-top:16px;padding-top:13px}#nav-depot{display:none!important}@media(max-width:800px){aside{height:auto;max-height:70vh}#nav{flex:auto;margin-top:14px}#nav-menu{max-height:40vh}#nav button{width:100%}}

#dialog:has(.proposal-form){width:min(1450px,96vw);max-width:96vw}.proposal-companies{display:flex;gap:20px;flex-wrap:wrap}.proposal-companies label{display:flex;align-items:center;gap:8px}.proposal-companies input{width:auto}.proposal-workspace{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr);gap:20px}.proposal-toolbar{display:flex;align-items:center;gap:12px;margin:12px 0;font-size:13px}.word-preview{height:65vh;overflow:auto;background:#eee;padding:24px;user-select:text}.word-part{background:white;padding:28px 40px;color:#222;font:12pt Georgia,serif}.word-part p{min-height:1em;line-height:1.5;margin:0 0 12px;white-space:pre-wrap}.word-part img{max-width:100%;max-height:160px;object-fit:contain}.word-part table{width:100%;border-collapse:collapse}.word-part td{border:1px solid #bbb;padding:5px;vertical-align:top}.word-marked{background:#fff6d8;box-shadow:inset 3px 0 #aa8844}.proposal-block-panel{max-height:76vh;overflow:auto;padding:12px;background:#f6f6f6}#proposal-block-list{display:flex;gap:6px;flex-wrap:wrap}#proposal-block-list .selected{outline:2px solid #b79959}.word-block-editor{background:#fff;border:1px solid #bbb;padding:16px;max-height:34vh;overflow:auto;margin:12px 0;font:15px/1.6 Georgia,serif}.word-block-editor p{white-space:pre-wrap;min-height:1em;margin:0 0 12px}.word-block-editor p:focus{outline:1px dashed #aaa}#proposal-field{width:100%;font-size:13px}@media(max-width:900px){.proposal-workspace{grid-template-columns:1fr}.word-preview{height:45vh}}

.proposal-form{max-width:none;width:100%}

/* Active/inactive registration tabs. Hidden rows must not inherit display rules. */
[data-status-list] [hidden] { display:none !important; }
.registration-tabs { display:flex; gap:4px; margin:12px 0; border-bottom:1px solid #ccc; }
.registration-tabs button { background:transparent; color:#555; border:0; border-bottom:3px solid transparent; border-radius:0; padding:8px 14px; margin:0; font-size:.9rem; }
.registration-tabs button[aria-selected="true"] { color:#111; border-bottom-color:#111; font-weight:700; }
.registration-tabs button:focus-visible { outline:2px solid #555; outline-offset:2px; }
[data-status-empty] { color:#666; }

#message.message-success{color:#176c3a} .quote-supplies .selection-list{max-height:210px}

.sheet-formula-cell{display:flex;align-items:center;gap:4px}.sheet-formula-cell input{min-width:0;flex:1}.sheet-formula-cell button{flex:none;padding:6px 9px;margin:0}.formula-popup{width:min(1000px,94vw);box-sizing:border-box}.formula-popup textarea{box-sizing:border-box;width:100%;height:48vh;min-height:180px;max-height:60vh;resize:vertical;font:16px/1.65 Consolas,monospace;padding:16px;white-space:pre-wrap;overflow-wrap:anywhere}.formula-popup .toolbar{justify-content:flex-end;gap:10px;flex-wrap:wrap}.formula-line-name{overflow-wrap:anywhere}
.formula-workbench{width:min(1260px,96vw)}.formula-workspace{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,1fr);gap:18px}.formula-edit-area{height:42vh;min-height:180px;overflow:auto;border:1px solid #777;border-radius:6px;padding:14px;font:16px/2 Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere;background:#fff}.formula-edit-area:focus{outline:2px solid #b79959}.formula-reference{display:inline;padding:3px 6px;border-radius:4px;background:#e9e9e9;color:#222;font:14px/1.8 system-ui;box-decoration-break:clone;-webkit-box-decoration-break:clone}.formula-edit-area .formula-reference{cursor:pointer}.formula-reference.selected{background:#ead9ae;outline:2px solid #927333}.formula-operators{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:10px}.formula-operators button{padding:5px 9px;margin:0}.formula-field-list{height:48vh;overflow:auto}.formula-field-list button{display:block;width:100%;text-align:left;padding:8px;margin:0 0 5px;white-space:normal}.formula-selection-hint{font-size:13px;min-height:36px}.sheet-formula-preview{max-height:76px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;margin-bottom:5px;font-family:monospace}.sheet-grid-table th:nth-child(1){width:18%}.sheet-grid-table th:nth-child(2){width:39%}.sheet-grid-table th:nth-child(3){width:27%}.sheet-grid-table th:nth-child(4){width:6%}.sheet-grid-table th:nth-child(5){width:10%}@media(max-width:800px){.formula-workspace{grid-template-columns:1fr}.formula-field-list{height:22vh}.formula-edit-area{height:30vh}}
