:root{font-family:Segoe UI,Arial,sans-serif;color:#173044;background:#f3f6fa;font-size:16px;--ink:#0c263a;--muted:#617488;--line:#dce4eb;--accent:#087c70;--pale:#e5f5f0}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:3px}button{cursor:pointer;border:1px solid var(--line);background:white;color:var(--ink);padding:10px 15px;border-radius:7px;font-size:.875rem;font-weight:600;transition:background .15s}button:hover{background:#eef4f6}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--accent);color:white;border-color:var(--accent)}button.primary:hover{background:#05695f}button.danger{color:#a42b30}input,select,textarea{width:100%;min-height:39px;border:1px solid #cad6df;background:white;border-radius:6px;padding:8px 10px;color:var(--ink)}textarea{min-height:80px;resize:vertical}label{display:flex;flex-direction:column;gap:6px;font-size:.875rem;font-weight:600;color:#445b6d}label small{font-weight:400}.sidebar{position:fixed;inset:0 auto 0 0;width:238px;background:var(--ink);color:#c0ceda;padding:34px 20px;display:flex;flex-direction:column}.brand{display:flex;gap:12px;align-items:center;margin-bottom:55px;color:white}.mark{border:2px solid #28bd9d;color:#28d4ae;font-size:27px;width:42px;height:42px;display:grid;place-items:center;border-radius:9px}.brand strong{font-size:23px;letter-spacing:3px}.brand span{display:block;font-size:11px;letter-spacing:2px;margin-top:3px}.workspace-label{font-size:11px;letter-spacing:1.5px;margin:0 10px 15px;color:#86a2b8}nav{display:flex;flex-direction:column;gap:7px}nav button{background:transparent;border:0;color:#b7cbdc;display:flex;gap:13px;text-align:left;padding:13px 12px;font-weight:500;font-size:1rem}nav button:hover{background:#183a50}nav button.active{background:#17483f;color:#88f0d4;box-shadow:inset 3px 0 #27bd9d}.side-bottom{margin-top:auto;padding:20px 10px 0;border-top:1px solid #294355;font-size:.875rem}.side-bottom small{display:block;margin-top:9px;color:#94aabd}main{margin-left:238px;padding:28px 34px 50px;max-width:1900px}.top{display:flex;align-items:center;justify-content:space-between;margin-bottom:25px;gap:20px}.eyebrow{font-size:11px;letter-spacing:1.8px;color:var(--muted);font-weight:700}h1{font-size:1.85rem;letter-spacing:-.7px;margin:6px 0}h2{font-size:1.2rem;margin:0 0 16px}h3{font-size:1rem;margin:0 0 10px}p{line-height:1.55}.top-actions{display:flex;align-items:center;gap:16px}#save-status{font-size:.875rem;color:var(--muted)}.project-bar{display:flex;align-items:end;gap:12px;margin-bottom:24px}.project-bar label{min-width:320px;max-width:580px;flex:1}.project-bar select{font-weight:600}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:24px}.card{background:white;border:1px solid var(--line);border-radius:9px;padding:20px}.card .label{font-size:.875rem;color:var(--muted);margin-bottom:10px}.card .value{font-size:1.65rem;font-weight:700;letter-spacing:-.7px}.card small{display:block;color:var(--muted);margin-top:8px;font-size:.8rem}.card.total{background:var(--ink);color:white;border-color:var(--ink)}.card.total .label,.card.total small{color:#b4c8d6}.panel{background:white;border:1px solid var(--line);border-radius:9px;padding:22px;margin-bottom:22px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:18px}.panel-head h2{margin:0}.toolbar{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.full{grid-column:1/-1}.muted{color:var(--muted);font-size:.875rem}.badge{display:inline-block;background:var(--pale);color:#08675b;font-size:.75rem;padding:4px 8px;border-radius:4px}.badge.warn{background:#fff1da;color:#925908}.notice{padding:13px 16px;background:#edf3f7;border-left:3px solid #8aa5b8;font-size:.875rem;line-height:1.5;margin-bottom:18px}.notice.warn{background:#fff3de;border-color:#dd9c33;color:#745017}.notice.error,#global-error{padding:15px;background:#ffeded;color:#902b30;border-left:3px solid #c45050;margin-bottom:15px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:.875rem}th{text-align:left;background:#f5f8fa;color:#5b7182;font-size:.75rem;letter-spacing:.4px;padding:12px 10px;white-space:nowrap}td{padding:13px 10px;border-bottom:1px solid #e8edf1;vertical-align:middle}td.description{min-width:230px;max-width:400px;font-weight:500;line-height:1.45}td input{min-width:82px;width:100px;text-align:right}td.num,th.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}tr.stage td{background:#eff5f5;color:#22564f;font-weight:700;padding:12px 10px}tr.invalid td{background:#fff9ee}td .sub{font-size:.75rem;color:var(--muted);margin-top:3px}.icon-btn{padding:6px 9px;font-weight:400}.empty{text-align:center;padding:50px 20px;color:var(--muted)}.empty h2{color:var(--ink)}.search-row{display:flex;gap:12px;align-items:end;margin-bottom:18px}.search-row label:first-child{flex:1}.search-row label{min-width:150px}.pagination{display:flex;justify-content:space-between;align-items:center;margin-top:18px;font-size:.875rem;color:var(--muted)}.actions{display:flex;gap:10px;justify-content:end;margin-top:20px}.price{font-variant-numeric:tabular-nums;white-space:nowrap}dialog{border:0;border-radius:12px;box-shadow:0 25px 100px #06172d45;width:min(950px,94vw);max-height:90vh;padding:25px}dialog::backdrop{background:#071f3880}.dialog-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.dialog-head h2{margin:0}.dialog-head button{border:0;font-size:25px}#toast{position:fixed;bottom:25px;right:25px;background:var(--ink);color:white;padding:15px 22px;box-shadow:0 5px 20px #0002;border-radius:8px;z-index:20}.details-list{display:grid;grid-template-columns:140px 1fr;gap:12px;font-size:.9rem}.details-list dt{color:var(--muted)}.details-list dd{margin:0}.bdi-formula{font-size:1rem;padding:20px;background:var(--ink);color:#b3efdc;border-radius:8px;line-height:1.7}.bar{height:7px;background:#e5ecef;border-radius:4px;min-width:110px}.bar i{display:block;height:7px;background:var(--accent);border-radius:4px}.split{display:grid;grid-template-columns:2fr 1fr;gap:22px}.form-error{color:#982a30;font-size:.875rem}.version-list{line-height:1.8;font-size:.95rem}.inline-link{color:var(--accent);font-weight:600}.sticky-total{display:flex;justify-content:space-between;align-items:center;background:#edf6f3;padding:18px;font-weight:700;margin-top:15px}.file-label{background:#eef5f3;padding:14px;border:1px dashed #92bcb1;border-radius:8px}.inline-field{max-width:120px}.row-actions{display:flex;gap:4px}[hidden]{display:none!important}@media(max-width:1150px){.sidebar{width:200px;padding:25px 12px}main{margin-left:200px;padding:23px}.cards{grid-template-columns:repeat(2,1fr)}.grid{grid-template-columns:repeat(2,1fr)}.split{grid-template-columns:1fr}.card .value{font-size:1.5rem}}@media(max-width:750px){.sidebar{position:static;width:100%;padding:15px}.brand{margin:0 0 15px}.workspace-label,.side-bottom{display:none}nav{flex-direction:row;overflow:auto}nav button{white-space:nowrap;font-size:.875rem}main{margin:0;padding:20px 14px}.top{align-items:start}.top-actions{flex-direction:column-reverse;align-items:end;gap:5px}.project-bar{flex-wrap:wrap}.project-bar label{min-width:100%;max-width:none}.grid,.grid.two{grid-template-columns:1fr}.cards{gap:10px}.card{padding:15px}.card .value{font-size:1.2rem}.panel{padding:16px}.panel-head{align-items:start;flex-direction:column}.search-row{flex-wrap:wrap}.search-row label{width:100%}.details-list{grid-template-columns:1fr}.details-list dd{margin-bottom:10px}h1{font-size:1.55rem}}

.budget-table{min-width:1400px}.cost-material,.cost-labor{color:#176558;background:#f6fbf9}.cost-summary{display:flex;gap:30px;flex-wrap:wrap;padding:20px;background:#edf6f3;margin-top:20px;border-radius:8px}.cost-summary span{font-size:.875rem;color:#536f66}.cost-summary strong{display:block;color:#173b31;margin-top:7px;font-size:1.2rem}

.material-with-bdi,.labor-with-bdi{font-weight:600;background:#f0f8f5;color:#14584a}
