@font-face{font-family:Workspace;src:local("Inter"),local("Arial");font-display:swap}

:root{font-family:Workspace,Arial,sans-serif;color:#202724;background:#f6f7f6;font-synthesis:none;letter-spacing:0;--red:#c7352c;--green:#1c5143;--muted:#738079;--line:#e1e6e3;--white:#fff}

*{box-sizing:border-box}
body{margin:0}
button,input,select,textarea{font:inherit;color:inherit;letter-spacing:0}
button,a,summary{-webkit-tap-highlight-color:transparent}
button,summary{cursor:pointer}
button{border:1px solid var(--line);background:white;border-radius:5px;padding:9px 13px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:13px;font-weight:600;min-height:36px}
button:hover{background:#f0f4f1;border-color:#bdc9c2}
button:disabled{opacity:.5;cursor:not-allowed}
button.primary{background:var(--green);color:#fff;border-color:var(--green)}
button.primary:hover{background:#153e33}
button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #a6c4b6;outline-offset:3px}
svg{width:18px;height:18px;flex-shrink:0}
a{color:inherit;text-decoration:none}
h1,h2,h3,p{margin:0}
h1{font-size:28px;font-weight:650;line-height:1.25}
h2{font-size:19px;font-weight:600}
h3{font-size:15px;font-weight:600}
small{font-size:12px}
input,select,textarea{border:1px solid #d3dcd6;border-radius:5px;background:#fff;padding:10px 11px;font-size:14px;min-width:0;width:100%;outline:none}
input:focus,select:focus,textarea:focus{border-color:#669380;box-shadow:0 0 0 3px #d9e9e1}
input[type=checkbox]{width:16px;height:16px;accent-color:var(--green);flex-shrink:0}
textarea{resize:vertical}
label{font-size:12px;font-weight:600;display:flex;flex-direction:column;gap:7px}
button.icon-button{padding:7px;border-color:transparent;width:34px;height:34px;min-height:34px;background:transparent}
button.icon-button:hover{background:#eaf0ec}

.workspace{display:grid;grid-template-columns:224px minmax(0,1fr);min-height:100vh}
.sidebar{background:#fff;border-right:1px solid var(--line);padding:30px 16px 16px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}
.brand{display:block;margin:0 12px 40px}
.brand b{font-size:28px;line-height:1;color:var(--red);font-weight:850;display:flex;align-items:baseline;gap:6px}
.brand b span{font-size:10px}
.brand small{display:block;font-size:8px;color:#6c7770;margin-top:9px}
.workspace-label{font-size:9px;color:#939d96;margin:0 12px 16px}
.sidebar nav{display:flex;flex-direction:column;gap:5px}
.sidebar button[data-view]{width:100%;border:0;justify-content:flex-start;text-align:left;color:#68766e;font-weight:500;padding:11px 12px}
.sidebar button[data-view].active{color:var(--green);background:#eaf1ec;font-weight:650}
.sidebar button small{margin-left:auto;background:white;padding:1px 6px;border-radius:4px;font-size:11px}
.sidebar-bottom{margin-top:auto;padding-top:30px}
.local-status{display:flex;align-items:center;gap:7px;color:#7c877f;font-size:11px;margin:22px 12px}
.local-status>span{width:6px;height:6px;background:#d8a253;border-radius:50%}
.profile{border-top:1px solid var(--line);padding:18px 5px 0;display:flex;gap:9px;align-items:center}
.profile strong{font-size:12px;display:block}
.profile small{color:#89948d;display:block;text-transform:capitalize;margin-top:3px}
.profile button{margin-left:auto}
.avatar{display:flex;width:30px;height:30px;align-items:center;justify-content:center;border-radius:50%;background:#eaf1ec;color:var(--green);font-size:12px;font-weight:600}

.main{min-width:0;display:flex;flex-direction:column}
.topbar{background:#fff;border-bottom:1px solid var(--line);min-height:76px;padding:15px 32px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.scenario-control{min-width:0;display:flex;align-items:center;gap:14px;flex:1}
.scenario-control>span{font-size:10px;color:#8c968f;flex-shrink:0}
.scenario-control select{border:0;background:#f5f7f5;width:min(100%,390px);font-size:13px;padding:10px}
.top-actions{display:flex;align-items:center;gap:5px}
.revision{font-size:11px;color:#809087;display:flex;align-items:center;gap:5px;white-space:nowrap;margin-left:10px}
.revision svg{width:13px;height:13px}
main:not(.login){padding:31px 32px 40px;flex:1;min-width:0}
.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:25px}
.eyebrow{font-size:9px;color:#8c968f;margin-bottom:8px}
.page-actions{display:flex;align-items:center;gap:6px}
.export-menu{position:relative}
.export-menu summary{list-style:none;display:flex;align-items:center;gap:8px;padding:9px 12px;background:#fff;border:1px solid var(--line);border-radius:5px;font-size:12px;font-weight:600}
.export-menu summary::-webkit-details-marker{display:none}
.export-menu summary svg{width:15px;height:15px}
.export-menu>div{position:absolute;z-index:4;right:0;top:44px;width:170px;background:#fff;box-shadow:0 8px 30px #1635231a;border:1px solid var(--line);border-radius:5px;padding:5px}
.export-menu a{display:block;padding:10px;font-size:12px}
.export-menu a:hover{background:#edf3ef}
.metrics{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;background:white;border-top:2px solid var(--green);border-bottom:1px solid var(--line);padding:25px 0;margin-bottom:30px}
.metrics>div{padding:0 24px;border-right:1px solid var(--line)}
.metrics>div:last-child{border:0}
.metrics span{font-size:11px;color:#708076;display:block}
.metrics strong{font-size:28px;font-weight:650;display:block;margin:10px 0 8px}
.metrics em{font-size:15px;font-style:normal;font-weight:400;color:#a1aba5}
.metrics small{font-size:10px;color:#8a958e;line-height:1.5;display:block}

.budget-layout{display:grid;grid-template-columns:181px minmax(0,1fr);gap:22px}
.categories{display:flex;flex-direction:column;gap:3px;align-self:start}
.categories button{background:transparent;border:0;text-align:left;justify-content:space-between;gap:7px;padding:9px 10px;font-weight:400;font-size:11px;line-height:1.4;min-height:32px}
.categories button.active{background:#e8efea;color:var(--green);font-weight:600}
.categories b{font-size:10px;color:#8b9990;font-weight:500;min-width:15px;text-align:right}
.categories .separate{margin-top:4px;border-top:1px solid var(--line);border-radius:0}
.costs{min-width:0;background:white;border:1px solid var(--line);border-radius:5px;overflow:hidden}
.table-tools{display:flex;align-items:center;gap:8px;padding:13px;border-bottom:1px solid var(--line)}
.search{position:relative;flex:1;min-width:120px}
.search svg{position:absolute;left:10px;top:9px;width:15px;color:#8a968e}
.search input{padding:9px 10px 9px 32px;font-size:11px;min-height:35px}
.table-tools select{width:142px;font-size:11px;padding:9px}
.table-tools button{font-size:11px;white-space:nowrap}
.table-scroll{overflow:auto;max-width:100%}
table{border-collapse:collapse;width:100%;text-align:left;font-size:13px}
th{font-size:10px;color:#87958b;font-weight:500;background:#f8faf8;padding:12px 16px;border-bottom:1px solid var(--line);white-space:nowrap}
td{padding:16px;border-bottom:1px solid #edf0ee;vertical-align:middle}
td small{display:block;font-size:10px;color:#99a29c;margin-top:5px;line-height:1.4}
.right{text-align:right}
.cost-table{min-width:690px}
.cost-table th:first-child{width:40%}
.cost-table td{padding:16px 14px;font-size:11px}
.row-title{border:0;background:none;padding:0;font-size:11px;min-height:0;font-weight:550;justify-content:space-between;text-align:left;width:100%;line-height:1.5;border-radius:0;gap:8px}
.row-title svg{width:12px;height:12px;opacity:0;flex-shrink:0}
.row-title:hover svg,.row-title:focus-visible svg{opacity:1}
.row-title:hover{background:none;color:var(--green)}
tr:hover td{background:#fbfcfb}
.amount{white-space:nowrap;font-variant-numeric:tabular-nums;font-weight:500}
.status{display:inline-flex;align-items:center;font-size:10px;padding:4px 7px;border-radius:4px;white-space:nowrap;line-height:1.3}
.status.unpriced{color:#9b6a26;background:#fbf3e5}
.status.allowance{color:#7b6395;background:#f2edf8}
.status.quoted{color:#3e6c86;background:#ebf4fa}
.status.confirmed{color:#35745b;background:#e9f3ed}
.excluded td{opacity:.6}
.table-footer{display:flex;justify-content:space-between;gap:15px;padding:14px;font-size:10px;color:#8a968e}
.table-footer b{color:#354e40;font-size:11px;margin-left:10px}
.muted{color:#98a39b}
.warning-text{color:#a36d26}
.app-footer{padding:15px 32px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:15px;font-size:9px;color:#95a098}
.app-footer b{margin:0 6px;color:#bfcbc2}
.empty{padding:60px 20px;text-align:center;color:#89978d;font-size:13px}
.loading{padding:60px;text-align:center;color:#687d70}

.section-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}
.split-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(250px,1fr);gap:60px;max-width:1160px}
.settings-form{display:flex;flex-direction:column;gap:20px;align-self:start}
.settings-form>button{align-self:start}
.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.summary-panel{border-left:1px solid var(--line);padding-left:30px}
.summary-panel dl{display:grid;grid-template-columns:1fr auto;gap:24px;margin:30px 0;font-size:13px}
.summary-panel dt{color:#7a8a80}
.summary-panel dd{font-size:22px;font-weight:600;margin:0}
.note{font-size:12px;color:#849087;line-height:1.8;margin:15px 0 24px}
.breakdown{margin-top:24px}
.breakdown>div{display:flex;justify-content:space-between;gap:20px;padding:17px 0;border-bottom:1px solid var(--line);font-size:13px}
.breakdown b{font-weight:600;white-space:nowrap}
.breakdown .sum{font-size:17px;border-top:2px solid #344e40;margin-top:15px}
.attention-list{margin-top:16px}
.attention-list button{display:flex;justify-content:space-between;width:100%;text-align:left;background:transparent;border:0;border-bottom:1px solid var(--line);padding:14px 0;border-radius:0;font-weight:400;font-size:12px}
.attention-list small{display:flex;align-items:center;gap:8px;white-space:nowrap;color:#ac803b;font-size:10px}
.attention-list svg{width:12px}
.scenario-picks{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:30px}
.scenario-picks label{flex-direction:row;align-items:center;background:white;border:1px solid var(--line);padding:12px;border-radius:5px;max-width:100%;font-size:12px}
.scenario-picks small{color:#8d9a91}
.comparison th{max-width:230px;min-width:160px;white-space:normal;line-height:1.7}
.comparison th small{display:block;color:var(--green)}
.history{max-width:900px;margin-top:26px}
.history-event{display:flex;align-items:center;gap:15px;border-bottom:1px solid var(--line);padding:20px 0;font-size:12px}
.history-event>div{flex:1}
.history-event strong{font-weight:500}
.history-event small{display:block;color:#8d9990;margin-top:7px}
.event-icon{background:#eaf1ec;color:#617d6d;border-radius:50%;display:flex;width:32px;height:32px;align-items:center;justify-content:center}
.event-icon svg{width:15px}
.change-banner{background:#fff4d9;border:1px solid #e5cd93;padding:12px 16px;margin-bottom:20px;align-items:center;justify-content:space-between;font-size:12px}
.change-banner:not([hidden]){display:flex}

dialog{border:0;border-left:1px solid var(--line);padding:0;margin:0 0 0 auto;width:500px;max-width:100vw;height:100dvh;max-height:100dvh;background:#fff;box-shadow:-20px 0 80px #162d241a}
dialog::backdrop{background:#17282045}
dialog form{height:100%;display:flex;flex-direction:column}
dialog header{padding:25px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}
dialog .drawer-body{padding:25px;overflow-y:auto;display:flex;flex-direction:column;gap:22px;flex:1}
dialog footer{padding:18px 25px;display:flex;justify-content:flex-end;gap:10px;border-top:1px solid var(--line)}
dialog h2{font-size:21px}
.check-label{flex-direction:row;align-items:center}
.formula{background:#f3f6f4;padding:12px;font-size:11px;color:#78897e;border-left:2px solid #a5beb0}
.form-error{font-size:12px;color:#b0372d;line-height:1.6}
.form-error:empty{display:none}
#toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,20px);background:#204d3d;color:white;padding:12px 22px;border-radius:5px;box-shadow:0 5px 25px #0002;font-size:13px;opacity:0;pointer-events:none;transition:.18s;z-index:10;max-width:90vw}
#toast.show{opacity:1;transform:translate(-50%,0)}
.login{min-height:100vh;display:grid;grid-template-columns:1fr minmax(320px,40%);background:white}
.login-form{max-width:420px;width:100%;padding:70px 30px;margin:auto}
.login-form .brand{margin:0 0 70px}
.login h1{font-size:32px;margin-bottom:30px}
.login form{display:flex;flex-direction:column;gap:22px;margin-bottom:30px}
.login img{width:100%;height:100vh;object-fit:cover}
.login .primary{justify-content:space-between;padding:13px}

@media(min-width:1600px){main:not(.login){padding:40px 48px}
.budget-layout{grid-template-columns:200px minmax(0,1fr)}
.cost-table td,.row-title{font-size:13px}
.cost-table td small{font-size:11px}
.categories button{font-size:12px}
.table-tools input,.table-tools select,.table-tools button{font-size:12px}
.table-tools{padding:16px}
.table-footer{font-size:11px}
}

@media(max-width:1150px){.workspace{grid-template-columns:190px minmax(0,1fr)}
.sidebar{padding:25px 10px 14px}
.brand b{font-size:24px}
.brand b span{font-size:8px}
.workspace-label{font-size:8px}
.sidebar button[data-view]{font-size:11px;padding:10px}
.topbar{padding:15px 22px}
main:not(.login){padding:26px 22px}
.metrics>div{padding:0 16px}
.metrics strong{font-size:23px}
.metrics em{font-size:12px}
.budget-layout{grid-template-columns:150px minmax(0,1fr);gap:14px}
.categories button{font-size:10px}
.table-tools{flex-wrap:wrap}
.table-tools .search{flex-basis:100%}
.table-tools select{flex:1}
.split-layout{gap:30px}
.revision{font-size:9px}
}

@media(max-width:760px){.workspace{display:block}
.sidebar{height:auto;position:static;padding:16px 16px 0;border-right:0;border-bottom:1px solid var(--line)}
.brand{margin:0 0 18px}
.brand b{font-size:26px}
.brand small{font-size:8px}
.workspace-label,.sidebar-bottom{display:none}
.sidebar nav{flex-direction:row;overflow:auto;margin:0 -16px;padding:0 10px 10px}
.sidebar button[data-view]{width:auto;white-space:nowrap;font-size:11px;padding:8px 10px}
.sidebar nav svg{width:15px;height:15px}
.sidebar button small{display:none}
.topbar{padding:12px 16px;min-height:60px}
.scenario-control{display:block}
.scenario-control>span{display:none}
.scenario-control select{font-size:11px;padding:9px 5px}
.top-actions{gap:0}
.revision{display:none}
main:not(.login){padding:24px 16px}
.page-heading{gap:10px;margin-bottom:22px}
h1{font-size:23px}
.eyebrow{font-size:8px}
.page-actions>button{display:none}
.export-menu summary{font-size:10px;padding:8px}
.export-menu svg{width:13px}
.metrics{grid-template-columns:1fr 1fr;padding:0;margin-bottom:22px}
.metrics>div{padding:18px;border-bottom:1px solid var(--line)}
.metrics>div:nth-child(2){border-right:0}
.metrics>div:nth-child(3),.metrics>div:nth-child(4){border-bottom:0}
.metrics strong{font-size:25px;margin:7px 0}
.metrics span{font-size:10px}
.metrics small{font-size:9px}
.budget-layout{display:block}
.categories{flex-direction:row;overflow-x:auto;margin-bottom:14px;padding-bottom:4px}
.categories button{flex-shrink:0;max-width:185px;min-height:32px;font-size:10px;gap:10px}
.categories button.separate{margin:0;border:0}
.table-tools{padding:10px}
.table-tools .search{flex-basis:100%}
.table-footer{font-size:9px;flex-direction:column;gap:10px}
.app-footer{padding:15px 16px;font-size:8px;flex-wrap:wrap}
.split-layout{display:flex;flex-direction:column;gap:35px}
.summary-panel{border-left:0;border-top:1px solid var(--line);padding:25px 0 0}
.settings-form{width:100%}
.field-grid{gap:16px}
.section-heading h2{font-size:17px}
.section-heading button{font-size:11px}
.history-event{font-size:11px;gap:9px}
.history-event>.muted{font-size:9px}
.scenario-picks{display:block}
.scenario-picks label{margin-bottom:10px}
.login{display:block}
.login img{display:none}
.login-form{padding:50px 30px}
.change-banner{gap:12px;line-height:1.5}
.change-banner button{font-size:10px}
.attention-list button{gap:14px}
.attention-list small{white-space:normal}
dialog header,dialog .drawer-body{padding:20px}
dialog footer{padding:16px 20px}
}

@media(prefers-reduced-motion:reduce){*{transition:none!important}
}

@media(max-width:760px){.sidebar-bottom{display:flex;align-items:center;gap:12px;padding:0 0 10px}
.sidebar-bottom>button[data-view]{width:auto;padding:7px 10px}
.sidebar-bottom .local-status{display:none}
.sidebar-bottom .profile{border:0;padding:0;margin-left:auto;gap:7px}
.sidebar-bottom .profile strong{font-size:10px}
.sidebar-bottom .profile small{font-size:9px}
.sidebar-bottom .avatar{width:25px;height:25px}
.sidebar-bottom .profile button{margin-left:0}
}

