:root{color:#17201b;background:#f4f1ea;font-size:14px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,select,textarea{font:inherit}button:disabled,input:disabled,select:disabled,textarea:disabled{cursor:not-allowed;opacity:.68}a{color:inherit;text-decoration:none}.login-page{display:grid;min-height:100vh;place-items:center;padding:24px;background:linear-gradient(#17201bb8,#17201bb8),url(https://images.unsplash.com/photo-1504917595217-d4dc5ebe6122?auto=format&fit=crop&w=1800&q=80);background-position:center;background-size:cover}.login-panel{width:min(100%,420px);border:1px solid rgba(255,255,255,.22);border-radius:8px;padding:32px;background:#fffffff0;box-shadow:0 24px 70px #00000042}.login-brand,.brand{display:inline-flex;align-items:center;gap:10px;font-weight:800}.brand-mark{display:inline-grid;width:40px;height:40px;place-items:center;border-radius:8px;background:#d84a2b;color:#fff;font-weight:900}.login-panel h1{margin:28px 0 20px;font-size:2rem;line-height:1.1}.login-form,.field{display:grid;gap:8px}.login-form{gap:16px}.login-form label,.field{color:#3f4b43;font-size:.92rem;font-weight:700}.login-form input,.field input,.field select,.field textarea,.toolbar select,.search-box input,.editor-table input,.editor-table select{min-height:40px;width:100%;border:1px solid #c8c1b4;border-radius:6px;padding:9px 11px;background:#fff;color:#17201b}.field textarea{min-height:88px;resize:vertical}.login-form input:focus,.field input:focus,.field select:focus,.field textarea:focus,.search-box input:focus,.editor-table input:focus,.editor-table select:focus{border-color:#d84a2b;outline:3px solid rgba(216,74,43,.2)}.form-error,.warning-banner,.success-banner{margin:0;border-radius:6px;padding:10px 12px;font-size:.9rem}.form-error{background:#fff1ee;color:#9f2a16}.warning-banner{background:#fff8e2;color:#795400}.success-banner{background:#eaf7ef;color:#1e6b3f}.primary-button,.secondary-button,.icon-button{display:inline-flex;align-items:center;justify-content:center;border:0;cursor:pointer;gap:8px;min-height:40px;border-radius:6px;font-weight:800;white-space:nowrap}.primary-button{padding:10px 16px;background:#d84a2b;color:#fff}.secondary-button{border:1px solid #c8c1b4;padding:9px 14px;background:#fff;color:#17201b}.icon-button{width:40px;height:40px;background:#eef0ea;color:#17201b}.compact-button{min-height:36px;padding:7px 10px}.danger-button{color:#9f2a16}.modal-backdrop{position:fixed;z-index:60;inset:0;display:grid;place-items:center;padding:20px;background:#17201b85}.confirm-dialog{display:grid;gap:14px;width:min(100%,420px);max-width:none;border:1px solid #ded7ca;border-radius:8px;padding:22px;background:#fff;box-shadow:0 24px 70px #17201b47;color:#17201b}.confirm-dialog h2,.confirm-dialog p{margin:0}.confirm-dialog h2{font-size:1.15rem}.confirm-dialog p{color:#4b574f;line-height:1.45}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:4px}.danger-confirm-button{background:#9f2a16}.app-shell{min-height:100vh;background:#f4f1ea}.topbar{position:sticky;z-index:20;top:0;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:22px;min-height:72px;border-bottom:1px solid #ded7ca;padding:0 28px;background:#fff}.primary-nav{display:flex;align-items:center;gap:6px}.primary-nav a{display:inline-flex;align-items:center;gap:7px;border-radius:6px;padding:10px 12px;color:#4b574f;font-size:.92rem;font-weight:800}.primary-nav a.active{background:#fff1ee;color:#b53c22}.user-menu,.button-row,.row-actions{display:flex;align-items:center;gap:10px}.user-menu{color:#3f4b43;font-weight:700}.main-content{width:min(1280px,100%);margin:0 auto;padding:38px 28px 56px}.stack-page,.dashboard-page,.estimate-page{display:grid;gap:22px}.page-heading{max-width:860px}.page-heading-row,.estimate-header{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;max-width:none}.page-heading p,.estimate-header p,.print-heading p{margin:0 0 8px;color:#d84a2b;font-size:.78rem;font-weight:900;letter-spacing:0;text-transform:uppercase}.page-heading h1,.estimate-header h1{margin:0;font-size:clamp(2rem,4vw,3.6rem);line-height:1}.content-panel,.summary-card,.metric-card{border:1px solid #ded7ca;border-radius:8px;background:#fff}.content-panel{min-width:0;padding:20px}.split-layout{display:grid;grid-template-columns:minmax(320px,420px) minmax(0,1fr);gap:18px;align-items:start}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.field,.field input,.field select,.field textarea{min-width:0}.full-span{grid-column:1 / -1}.panel-heading,.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.panel-heading h2{margin:0;font-size:1.1rem}.toolbar{flex-wrap:wrap}.search-box{display:flex;align-items:center;gap:8px;min-width:min(100%,360px);border:1px solid #c8c1b4;border-radius:6px;padding:0 10px;background:#fff}.search-box input{border:0;padding-left:0}.check-row{display:inline-flex;align-items:center;gap:8px;font-weight:800}.data-list{display:grid;gap:10px}.data-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;border:1px solid #ebe6dc;border-radius:8px;padding:12px;background:#fffdfa}.data-row>a,.data-row>div:first-child{display:grid;gap:4px;min-width:0}.data-row strong,.data-row span{overflow-wrap:anywhere}.data-row span,.empty-state,.field-warning{color:#68736b}.field-warning{font-size:.82rem}.empty-state{margin:0;padding:18px}.metric-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.metric-card{display:grid;gap:10px;padding:20px}.metric-card svg{color:#d84a2b}.metric-card span{color:#58635b;font-weight:800}.metric-card strong{font-size:2rem}.status-pill{display:inline-flex;align-items:center;justify-content:center;min-height:28px;border-radius:999px;padding:4px 10px;background:#eef0ea;color:#344139;font-size:.78rem;font-weight:900;text-transform:capitalize}.status-quoted,.status-approved,.status-ready_for_review{background:#e9f6ee;color:#1e6b3f}.status-lost,.status-superseded,.status-archived{background:#f1efeb;color:#6b6258}.status-won{background:#edf3ff;color:#254f97}.detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.detail-grid div{display:grid;gap:5px}.detail-grid span{color:#68736b;font-size:.82rem;font-weight:800}.text-link{display:inline-flex;align-items:center;gap:7px;width:fit-content;color:#b53c22;font-weight:900}.estimate-header{align-items:center}.estimate-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px;align-items:start}.estimate-editor{display:grid;gap:18px;min-width:0}.advanced-settings{border:1px solid #ebe6dc;border-radius:8px;padding:12px}.advanced-settings summary{cursor:pointer;font-weight:900}.advanced-settings .form-grid{margin-top:14px}.editor-table{display:grid;gap:8px;width:100%;min-width:0;overflow-x:auto;overscroll-behavior-x:contain}.table-head,.table-row{display:grid;width:100%;min-width:720px;gap:8px;align-items:center}.worktype-table .table-head,.worktype-table .table-row{grid-template-columns:minmax(132px,1.4fr) minmax(70px,.65fr) minmax(82px,.75fr) minmax(76px,.7fr) minmax(98px,.8fr) minmax(120px,1fr) minmax(58px,.55fr) 44px}.allowance-table .table-head,.allowance-table .table-row{grid-template-columns:36px minmax(132px,1.4fr) minmax(110px,1fr) minmax(70px,.7fr) minmax(76px,.7fr) minmax(88px,.8fr)}.table-head{color:#68736b;font-size:.78rem;font-weight:900;text-transform:uppercase}.table-row{border-top:1px solid #f0ece4;padding-top:8px}.table-row input[type=checkbox]{width:20px;min-height:20px}.section-list{display:grid;gap:14px}.estimate-section{min-width:0;overflow:hidden;border-top:1px solid #ebe6dc;padding-top:14px}.estimate-section-header{display:grid;grid-template-columns:40px minmax(140px,1fr) auto;gap:10px;align-items:center;margin-bottom:12px}.estimate-section-header>input{font-size:1rem;font-weight:900}.section-totals{grid-column:2 / -1;grid-row:2;display:flex;flex-wrap:wrap;justify-content:flex-start;gap:8px;color:#58635b;font-size:.86rem;font-weight:800}.section-totals span{border:1px solid #ebe6dc;border-radius:6px;padding:6px 8px;background:#faf8f3}.section-actions{grid-column:3;grid-row:1;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.section-empty{min-width:0;margin:0;padding:10px 0}.estimate-summary{position:sticky;top:94px;display:grid;gap:12px;min-width:0}.summary-card{padding:18px}.print-heading h2{margin:0 0 12px;font-size:1.35rem}.summary-row{display:flex;justify-content:space-between;gap:16px;border-top:1px solid #ebe6dc;padding:10px 0}.summary-row:nth-last-child(3),.summary-row:nth-last-child(4){font-size:1.08rem}.summary-row span{color:#58635b}.rollup-row span{display:grid;gap:2px}.rollup-row small{color:#68736b;font-size:.78rem;font-weight:800}.summary-note{margin:12px 0 0;color:#6c5949;font-size:.88rem;line-height:1.45}.summary-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.warnings{border:1px solid #f0d49c;border-radius:8px;padding:14px;background:#fff8e2}.warnings h3{margin:0 0 8px;font-size:1rem}.warnings p{margin:8px 0 0;color:#795400;line-height:1.4}@media(max-width:1040px){.topbar{grid-template-columns:1fr auto}.primary-nav{grid-column:1 / -1;overflow-x:auto;padding-bottom:10px}.estimate-layout,.split-layout{grid-template-columns:1fr}.estimate-summary{position:static}.summary-card{box-shadow:none}}@media(max-width:720px){.topbar{padding:12px 16px}.user-menu span{display:none}.main-content{padding:28px 16px 44px}.page-heading-row,.estimate-header,.panel-heading{align-items:stretch;flex-direction:column}.button-row{flex-wrap:wrap}.form-grid,.metric-grid,.detail-grid,.data-row{grid-template-columns:1fr}.row-actions{justify-content:flex-start}}@media print{:root,body,.app-shell,.main-content{background:#fff}.no-print,.topbar,.estimate-editor{display:none!important}.main-content{width:100%;padding:0}.estimate-page,.estimate-layout{display:block}.estimate-summary,.summary-card{position:static;border:0;box-shadow:none}.summary-card{padding:0}.summary-row{break-inside:avoid}}
