.source-prose {
	white-space: pre-wrap;
	overflow-wrap: anywhere;
	line-height: 1.55;
	color: var(--ink, #26312d);
	background: var(--surface-muted, #f4f5f1);
	border: 1px solid var(--line, #dfe3dc);
	border-radius: 10px;
	padding: 12px 14px;
	max-height: 360px;
	overflow: auto;
}
.catalogue-spec { margin-top: 8px; max-width: 70ch; }
.catalogue-spec summary { color: var(--accent, #416a56); cursor: pointer; font-size: .82rem; }
.catalogue-spec .source-prose { margin-top: 7px; font-size: .84rem; }
.enrichment-preview { display: grid; gap: 12px; }
.enrichment-preview .detail-section { padding: 14px; }
.enrichment-preview .detail-section p { margin: 9px 0 5px; }
:root{color-scheme:light;--ink:#242621;--muted:#62645d;--paper:#f7f6f2;--panel:#fffefa;--line:#e8e5dd;--orange:#e76b35;--orange-dark:#a9431d;--orange-soft:#fff0e8;--green:#3d765c;--green-soft:#e9f3ec;--red:#a33d32;--shadow:0 18px 48px #312b2010;--radius:14px}*{box-sizing:border-box}html{min-width:320px;background:var(--paper);scroll-behavior:smooth}body{margin:0;color:var(--ink);font:14px/1.48 Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}a{color:inherit}.skip-link{position:fixed;top:8px;left:8px;z-index:200;transform:translateY(-150%);padding:10px 14px;border-radius:8px;background:white;color:var(--ink)}.skip-link:focus{transform:none}:focus-visible{outline:3px solid #9b3c19;outline-offset:3px;border-radius:4px}.app-shell{min-height:100vh;display:grid;grid-template-columns:244px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;padding:25px 16px 18px;background:#252923;color:#f4f0e8;display:flex;flex-direction:column;gap:29px;z-index:60}.brand{display:flex;align-items:center;gap:11px;padding:0 10px;text-decoration:none;font-weight:760;font-size:21px;letter-spacing:-.04em}.brand-mark{width:31px;height:31px;border-radius:10px;background:var(--orange);display:grid;place-items:center;color:#fff;font-weight:800}.workspace-label{margin-bottom:-17px;padding:0 12px;color:#abb0a7;text-transform:uppercase;letter-spacing:.11em;font-size:10px;font-weight:700}.primary-nav{display:grid;gap:5px}.primary-nav a{position:relative;display:flex;gap:11px;align-items:center;padding:11px 12px;border-radius:10px;color:#d4d5ce;text-decoration:none;font-size:13px}.primary-nav a>span{width:18px;text-align:center;font-size:16px}.primary-nav a:hover,.primary-nav a.active{background:#ffffff13;color:#fff}.primary-nav a.active:before{content:"";position:absolute;left:-16px;width:3px;height:20px;border-radius:0 3px 3px 0;background:var(--orange)}.sidebar-foot{margin-top:auto;padding:15px 9px 0;border-top:1px solid #ffffff24;display:flex;align-items:center;gap:9px;color:#d2d4cc;font-size:11px}.local-indicator{display:inline-block;width:8px;height:8px;flex:none;border-radius:50%;background:#69a77b}.main-column{min-width:0;min-height:100vh;display:flex;flex-direction:column}.topbar{height:64px;flex:none;padding:0 clamp(18px,3vw,42px);display:flex;align-items:center;justify-content:space-between;gap:14px;border-bottom:1px solid var(--line);background:#fbfaf7}.breadcrumb{min-width:0;display:flex;align-items:center;gap:9px;font-size:11px;color:#77796f}.breadcrumb strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#34362f;font-weight:650}.local-badge{display:flex;align-items:center;gap:8px;white-space:nowrap;color:#53554e;font-size:11px}.mobile-nav-toggle{display:none}.main-content{width:100%;max-width:1500px;margin:0 auto;padding:28px clamp(16px,3vw,42px) 40px;flex:1}.app-footer{padding:12px clamp(16px,3vw,42px) 18px;color:#76786f;font-size:10px}.page-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:22px}.eyebrow{margin-bottom:5px;color:#9a542f;text-transform:uppercase;letter-spacing:.12em;font-size:10px;font-weight:750}.page-heading h1{margin:0;font-size:clamp(25px,3vw,33px);line-height:1.12;letter-spacing:-.045em}.page-heading p{max-width:600px;margin:8px 0 0;color:var(--muted);font-size:13px}.heading-actions,.button-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.button{min-height:38px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:8px 12px;border:1px solid #dcd9d0;border-radius:9px;background:#fffefa;color:#34362f;text-decoration:none;font-size:12px;font-weight:620;white-space:nowrap}.button:hover{background:#f1efe9}.button.primary{border-color:#bd4c22;background:#bd4c22;color:#fff}.button.primary:hover{background:#963a18}.button.danger{border-color:#e6cbc7;color:#8d3028}.button.quiet{background:transparent}.button.small{min-height:30px;padding:5px 9px;font-size:11px}.icon-button{width:36px;height:36px;display:inline-grid;place-items:center;border:1px solid var(--line);border-radius:9px;background:#fffefa;color:#34362f}.toolbar{display:flex;align-items:center;gap:9px;margin:18px 0 12px}.search-field{min-width:180px;max-width:480px;flex:1;position:relative}.search-field input{width:100%;height:40px;padding:0 12px 0 36px;border:1px solid #dcd9d0;border-radius:9px;background:#fffefa}.search-field:before{content:"⌕";position:absolute;left:12px;top:7px;color:#77796f;font-size:20px}.control{height:40px;min-width:130px;padding:0 32px 0 11px;border:1px solid #dcd9d0;border-radius:9px;background:#fffefa}.card{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow)}.table-card{overflow:hidden}.table-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 18px;border-bottom:1px solid var(--line)}.table-card-head h2{margin:0;font-size:14px;letter-spacing:-.01em}.subtle{color:var(--muted);font-size:11px}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse}th{padding:10px 13px;text-align:left;background:#f8f7f3;color:#62645d;text-transform:uppercase;letter-spacing:.07em;font-size:10px;font-weight:730;white-space:nowrap}td{padding:12px 13px;border-top:1px solid #eeece5;vertical-align:middle;font-size:12px}tbody tr:hover{background:#fffaf5}.project-link{display:block;text-decoration:none}.project-link strong{display:block;font-size:13px}.project-link small,.secondary-line{display:block;margin-top:3px;color:var(--muted);font-size:11px}.project-meta{color:#4e5049;font-size:11px}.status-pill{display:inline-flex;align-items:center;min-height:23px;padding:3px 8px;border-radius:99px;background:#efeee9;color:#55574f;font-size:10px;font-weight:650;white-space:nowrap}.status-review{background:#fff1df;color:#80551a}.status-approved,.status-accepted{background:var(--green-soft);color:#316247}.status-sent{background:#eaf0f6;color:#455f7d}.status-rejected{background:#f9e9e7;color:#8b3b32}.amount,.numeric{font-variant-numeric:tabular-nums;white-space:nowrap}.pagination{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px 15px;border-top:1px solid var(--line)}.pagination-controls{display:flex;gap:5px}.pagination-controls button{min-width:32px;height:30px;border:1px solid var(--line);border-radius:7px;background:#fffefa}.pagination-controls button[aria-current]{border-color:var(--orange-dark);background:var(--orange-soft);color:#713314}.empty-state,.loading-state{padding:50px 18px;text-align:center;color:var(--muted)}.empty-state h2{margin:0 0 8px;color:var(--ink);font-size:18px}.empty-state p{max-width:530px;margin:0 auto 18px;font-size:13px}.spinner{width:18px;height:18px;display:inline-block;margin-right:8px;vertical-align:middle;border:2px solid #e8e5dd;border-top-color:var(--orange-dark);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.notice{position:sticky;top:8px;z-index:40;margin-bottom:14px;padding:11px 13px;border:1px solid #e4d5bd;border-radius:9px;background:#fff6e8;color:#594629;font-size:12px;box-shadow:0 4px 16px #24262112}.notice.error{border-color:#e6c3bd;background:#fff0ee;color:#812e25}.notice.success{border-color:#c8ddcb;background:#edf7ef;color:#315a3b}.notice button{margin-left:8px}.workspace-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:start;margin-bottom:15px}.workspace-head h1{margin:3px 0 5px;font-size:clamp(22px,2.4vw,30px);line-height:1.15;letter-spacing:-.04em}.workspace-subline{color:var(--muted);font-size:11px}.workspace-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:7px}.saved-state{margin-top:9px;display:flex;align-items:center;gap:7px;color:#53634f;font-size:11px}.saved-state[data-state=dirty]{color:#8a591b}.saved-state[data-state=saving]{color:#465f7b}.saved-dot{width:7px;height:7px;border-radius:50%;background:#54845c}.saved-state[data-state=dirty] .saved-dot{background:#c47b28}.saved-state[data-state=saving] .saved-dot{background:#54708d}.workspace-summary{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center;margin-bottom:15px;padding:14px 17px;background:#2c3029;color:#fff}.workspace-summary .label{color:#e0e1da;font-size:11px}.workspace-total{margin-top:2px;font-size:clamp(23px,4vw,32px);font-weight:720;letter-spacing:-.035em;font-variant-numeric:tabular-nums;white-space:nowrap}.summary-details{display:flex;flex-wrap:wrap;gap:15px;color:#dedfd8;font-size:11px}.summary-details strong{display:block;color:#fff;font-size:13px}.workspace-tabs{display:flex;gap:20px;overflow:auto;margin:4px 0 14px;border-bottom:1px solid var(--line)}.workspace-tabs a{padding:9px 1px 10px;color:#64665e;text-decoration:none;font-size:12px;white-space:nowrap}.workspace-tabs a.active{border-bottom:2px solid var(--orange-dark);color:#34362f;font-weight:680}.workspace-toolbar{display:flex;align-items:center;justify-content:space-between;gap:9px;margin:11px 0}.workspace-toolbar .search-field{max-width:360px}.chapter-block{margin:12px 0;overflow:hidden}.chapter-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 13px;background:#efeee9}.chapter-heading.nested{padding-left:26px;background:#f4f3ef}.chapter-title{display:flex;align-items:center;gap:9px;min-width:0}.chapter-code{color:#9b4d24;font-size:10px;font-weight:760}.chapter-title strong{font-size:12px}.chapter-total{font-size:11px;font-weight:700;white-space:nowrap}.chapter-children{padding-left:14px;border-left:2px solid #e7e2d8}.estimate-table{table-layout:fixed}.estimate-table th:first-child,.estimate-table td:first-child{width:38px}.estimate-table th:nth-child(2),.estimate-table td:nth-child(2){width:92px}.estimate-table th:nth-child(4),.estimate-table td:nth-child(4){width:120px}.estimate-table th:nth-child(5),.estimate-table td:nth-child(5){width:120px}.estimate-table th:nth-child(6),.estimate-table td:nth-child(6){width:130px}.estimate-table input[type=checkbox]{accent-color:var(--orange-dark);width:15px;height:15px}.item-code{color:#9b4d24;font-size:10px;font-weight:760}.item-description{display:block;width:100%;padding:0;border:0;background:none;text-align:left;color:#292b26;font-size:12px;font-weight:650;line-height:1.35}.item-description:hover{text-decoration:underline;text-decoration-color:var(--orange-dark);text-underline-offset:3px}.item-description small{display:block;margin-top:3px;color:#66685f;font-size:10px;font-weight:450}.cell-input{width:100%;min-width:0;height:32px;padding:4px 7px;border:1px solid transparent;border-radius:6px;background:transparent;font-size:12px;text-align:right;font-variant-numeric:tabular-nums}.cell-input:hover,.cell-input:focus{border-color:#d9d5cb;background:#fff}.cell-input.textual{text-align:left}.line-amount{font-weight:680;text-align:right}.chapter-empty{padding:12px;color:var(--muted);font-size:11px}.add-row{display:flex;gap:8px;flex-wrap:wrap;padding:12px;border-top:1px solid var(--line)}.bottom-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(300px,.9fr);gap:12px;margin-top:14px}.panel{padding:15px}.panel h2{margin:0 0 10px;font-size:13px}.panel p{margin:0;color:#55574f;font-size:11px;line-height:1.6}.totals-list{display:grid;gap:7px}.totals-row{display:flex;justify-content:space-between;gap:10px;color:#55574f;font-size:11px}.totals-row strong{color:#34362f;white-space:nowrap;font-variant-numeric:tabular-nums}.totals-row.grand{margin-top:4px;padding-top:8px;border-top:1px solid var(--line);font-size:13px;font-weight:700}.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.field{display:grid;gap:5px;color:#585a52;font-size:11px;font-weight:650}.field input,.field select,.field textarea{width:100%;min-width:0;min-height:38px;padding:8px 10px;border:1px solid #dcd9d0;border-radius:8px;background:#fffefa;color:var(--ink);font-weight:450}.field textarea{min-height:76px;resize:vertical}.field.full{grid-column:1/-1}.inline-field{display:flex;align-items:center;gap:7px}.inline-field input{max-width:140px}.dialog-header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}.dialog-header h2{margin:3px 0;font-size:20px;line-height:1.2;letter-spacing:-.03em}.dialog-header p{margin:4px 0 0;color:var(--muted);font-size:11px}.dialog-content{max-height:min(72vh,700px);overflow:auto}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:17px;padding-top:12px;border-top:1px solid var(--line)}.app-dialog{width:min(780px,calc(100vw - 32px));max-width:none;max-height:min(88vh,900px);padding:20px;border:1px solid var(--line);border-radius:16px;background:#fbfaf7;color:var(--ink);box-shadow:0 24px 80px #1117}.app-dialog::backdrop{background:#171a17a8}.app-dialog[open]{animation:dialog-in .16s ease-out}@keyframes dialog-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.detail-section{padding:13px;border:1px solid var(--line);border-radius:10px;background:#fffefa}.detail-section h3{margin:0 0 8px;font-size:12px}.detail-section p{margin:0;color:#4f514a;font-size:11px;line-height:1.6}.detail-list{display:grid;gap:0}.detail-field{display:grid;grid-template-columns:110px minmax(0,1fr);gap:9px;padding:7px 0;border-top:1px solid #efede7;font-size:11px}.detail-field:first-child{border-top:0}.detail-field span{color:#62645d}.detail-field strong{overflow-wrap:anywhere;font-weight:620}.data-missing{padding:10px;border:1px dashed #cbc8be;border-radius:8px;background:#f8f7f2;color:#55574f;font-size:11px;line-height:1.55}.resource-table{width:100%;font-size:10px}.resource-table th,.resource-table td{padding:7px 6px}.resource-table td{font-size:10px}.readonly-note{margin-top:8px!important;color:#6a5c43!important}.measure-row{display:grid;grid-template-columns:minmax(80px,1.1fr) minmax(65px,.7fr) minmax(100px,1fr) 32px;gap:7px;align-items:center;padding:6px 0;border-top:1px solid #efede7}.measure-row input{min-width:0;width:100%;height:32px;padding:4px 7px;border:1px solid #dcd9d0;border-radius:6px;background:#fff;font-size:11px}.measure-row button{height:30px;border:1px solid #e4d0ce;border-radius:6px;background:#fff;color:#87362c}.catalogue-results{display:grid;gap:8px}.catalogue-result{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:9px;background:#fffefa}.catalogue-result strong{display:block;font-size:12px}.catalogue-result small{display:block;color:var(--muted);font-size:10px}.warning-list{padding-left:20px;color:#754b1c;font-size:11px}.revision-list{display:grid;gap:8px}.revision-entry{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:9px;background:#fffefa}.revision-entry strong{font-size:12px}.revision-entry small{display:block;color:var(--muted);font-size:10px}.diff-list{display:grid;gap:7px;margin-top:12px}.diff-item{padding:9px;border-left:3px solid var(--orange);background:#f5f2eb;font-size:11px}.import-drop{padding:16px;border:1px dashed #c9c5ba;border-radius:10px;background:#fffefa}.import-drop input{max-width:100%}.muted-note{margin-top:5px;color:var(--muted);font-size:10px}.kbd-hint{color:var(--muted);font-size:10px}.toast{position:fixed;right:18px;bottom:18px;z-index:120;max-width:min(440px,calc(100vw - 36px));padding:11px 14px;border-radius:9px;background:#252923;color:white;font-size:12px;box-shadow:0 10px 30px #1114}
@media(max-width:900px){.app-shell{grid-template-columns:210px minmax(0,1fr)}.sidebar{padding-right:12px;padding-left:12px}.estimate-table th:nth-child(2),.estimate-table td:nth-child(2){width:72px}.estimate-table th:nth-child(4),.estimate-table td:nth-child(4){width:95px}.estimate-table th:nth-child(5),.estimate-table td:nth-child(5){width:100px}.estimate-table th:nth-child(6),.estimate-table td:nth-child(6){width:105px}.bottom-grid{grid-template-columns:1fr}}
@media(max-width:680px){.app-shell{display:block}.sidebar{display:none}.app-shell.nav-open .sidebar{position:fixed;display:flex;inset:0 auto 0 0;width:min(84vw,310px);height:100dvh;padding:22px 18px;box-shadow:14px 0 35px #1115}.nav-scrim:not([hidden]){position:fixed;inset:0;z-index:59;display:block;background:#171a17a8}.topbar{height:52px;padding:0 12px;gap:9px}.mobile-nav-toggle{display:inline-grid;flex:none}.breadcrumb{flex:1;font-size:10px}.breadcrumb span:first-child,.breadcrumb span:nth-child(2){display:none}.local-badge{font-size:0}.local-badge .local-indicator{width:9px;height:9px}.main-content{padding:14px 12px 26px}.app-footer{padding:8px 12px 15px}.page-heading{align-items:flex-start;gap:8px;margin-bottom:14px}.page-heading h1{font-size:23px}.page-heading p{font-size:11px}.heading-actions{justify-content:flex-end}.button{min-height:35px;padding:7px 9px;font-size:11px}.toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;margin:12px 0 9px}.search-field{min-width:0}.search-field input{height:37px;font-size:12px}.control{height:37px;min-width:0;max-width:140px;font-size:11px}.table-card{border-radius:11px}.table-card-head{padding:11px 12px}.table-scroll{overflow:visible}table.project-table{display:block;width:100%}.project-table thead{display:none}.project-table tbody{display:grid}.project-table tbody tr{display:grid;grid-template-columns:minmax(0,1fr) max-content;grid-template-rows:auto auto;align-items:center;gap:5px 8px;padding:11px 12px;border-top:1px solid var(--line)}.project-table td{display:block;padding:0;border:0;font-size:11px}.project-table td:first-child{grid-column:1;grid-row:1}.project-table td:nth-child(2){grid-column:1;grid-row:2;padding-left:40px}.project-table td:nth-child(3){grid-column:2;grid-row:1;text-align:right}.project-table td:nth-child(4){grid-column:2;grid-row:2;text-align:right;font-size:11px}.project-table td:nth-child(n+5){display:none}.project-link strong{font-size:12px}.project-link small{font-size:10px}.status-pill{font-size:9px}.pagination{padding:9px 10px}.workspace-head{grid-template-columns:minmax(0,1fr);gap:8px;margin-bottom:9px}.workspace-head h1{font-size:20px}.workspace-subline{font-size:10px}.workspace-actions{justify-content:flex-start}.workspace-actions .button.optional{display:none}.saved-state{margin-top:6px;font-size:10px}.workspace-summary{grid-template-columns:minmax(0,1fr) auto;gap:6px;margin-bottom:10px;padding:10px 12px;border-radius:10px}.workspace-total{font-size:clamp(17px,5vw,22px)}.workspace-summary .label{font-size:9px}.summary-details{display:none}.workspace-tabs{gap:17px;margin-bottom:10px}.workspace-tabs a{font-size:11px}.workspace-toolbar{align-items:stretch;margin:8px 0}.workspace-toolbar .search-field{max-width:none}.workspace-toolbar .button.hide-mobile{display:none}.chapter-block{margin:9px 0}.chapter-heading{padding:8px 9px}.chapter-title{gap:6px}.chapter-title strong{font-size:10px}.chapter-total{font-size:10px}.chapter-children{padding-left:7px}.estimate-table{display:block;table-layout:auto;width:100%}.estimate-table thead{display:none}.estimate-table tbody{display:block}.estimate-table tr{display:grid;grid-template-columns:27px minmax(0,1fr) 60px 91px;grid-template-rows:auto auto;gap:3px 5px;padding:8px 6px;border-top:1px solid #efede7}.estimate-table td{display:block;padding:0;border:0;font-size:10px}.estimate-table td:nth-child(1){grid-column:1;grid-row:1/3}.estimate-table td:nth-child(2){display:none}.estimate-table td:nth-child(3){grid-column:2/5;grid-row:1}.estimate-table td:nth-child(4){grid-column:2;grid-row:2}.estimate-table td:nth-child(5){grid-column:3;grid-row:2}.estimate-table td:nth-child(6){grid-column:4;grid-row:2}.item-description{font-size:11px}.item-description small{display:none}.cell-input{height:29px;padding:3px 4px;font-size:10px}.line-amount{font-size:10px}.add-row{padding:9px}.bottom-grid{gap:8px;margin-top:9px}.panel{padding:12px}.app-dialog{width:100vw;max-width:none;height:100dvh;max-height:100dvh;margin:0;padding:15px 14px max(14px,env(safe-area-inset-bottom));border-radius:0;border:0}.dialog-content{max-height:calc(100dvh - 150px)}.dialog-header h2{font-size:18px}.detail-grid{grid-template-columns:1fr;gap:9px}.detail-section{padding:11px}.detail-field{grid-template-columns:95px minmax(0,1fr)}.resource-table{table-layout:auto}.resource-table th,.resource-table td{white-space:nowrap}.measure-row{grid-template-columns:minmax(65px,1fr) minmax(55px,.8fr) minmax(95px,1.2fr) 30px;gap:5px}.field-grid{gap:9px}.catalogue-result{grid-template-columns:minmax(0,1fr) auto}.revision-entry{grid-template-columns:minmax(0,1fr) auto}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
