:root{--main-color: #2fa86f;--brand-color: #44bc81;--secondary-color: #2f845a;--secondary-color-darker: #1e563a;--premium-color: #f59e0b;--pro-color: #1E4D4D;--pavement-color: #44bc81;--edging-color: #2f845a;--utilities-color: #68d3a0;--misc-color: #1e563a;--earthworks-color: #f59e0b;--construction-color: #d97706;--general-color: #f97316;--haulage-color: #6b7280;--danger-color: #ef4444}body{font-family:Instrument Sans,sans-serif;font-size:.875rem;min-height:100vh}h1,h2,h3,h4,h5,h6{font-family:Montserrat,sans-serif;font-weight:800}table{border-collapse:collapse;width:100%}tbody tr{border-bottom:1px solid #e2e8f0;transition:background-color .1s ease;height:2.5rem}tbody tr:hover{background-color:#f8fafc}td.p-2{padding:.25rem .5rem;vertical-align:middle}.table-input,.table-select{width:100%;padding:0 .5rem;font-family:inherit;font-size:.875rem;border-radius:.375rem;background-color:#fff;border:1px solid #cbd5e1;color:#1e293b;transition:border-color .2s,box-shadow .2s,background-color .2s}.table-input:not(textarea),.table-select{height:2.2rem}.table-input:not(table .table-input,textarea),.table-select:not(table .table-select){height:2.4rem}textarea.table-input{padding:.5rem;height:auto}td .table-input,td .table-select{background-color:transparent;border-color:transparent}.table-input:hover,.table-select:hover{background-color:#fff;border-color:#94a3b8}.table-input:focus,.table-select:focus{outline:none;background-color:#fff;border-color:var(--brand-color);box-shadow:0 0 0 1px var(--brand-color)}.table-input{text-align:right}input[type=text].table-input{text-align:left}.table-select{cursor:pointer;padding-right:2rem}thead th{border-bottom:2px solid #e2e8f0;padding-bottom:.75rem}.item-description-cell{width:250px}.item-description-cell .table-input{text-align:left}.material-cell{min-width:200px}.table-calc-cell{min-width:120px}.output-cell{background-color:#f1f5f9;text-align:right;padding:.5rem;border-radius:0rem;font-weight:500}.actions-cell{min-width:120px;white-space:nowrap}.actions-cell button{margin-right:4px}.primary-btn{background-color:var(--main-color);color:#fff;padding:.5rem 1rem;border-radius:.625rem;font-weight:500;cursor:pointer;border:1px solid transparent;transition:background-color .2s;text-shadow:0 1px 1px rgba(0,0,0,.1)}.primary-btn:hover{background-color:var(--secondary-color)}.ghost-btn{background-color:transparent;color:var(--secondary-color);border:1px solid var(--main-color);padding:.5rem 1rem;border-radius:.625rem;font-weight:500;cursor:pointer;transition:all .2s ease-in-out;text-align:center!important}.ghost-btn:hover{background-color:var(--main-color);color:#fff;text-shadow:0 1px 1px rgba(0,0,0,.1)}.secondary-btn{background-color:#64748b;color:#fff;text-shadow:0 1px 1px rgba(0,0,0,.1);padding:.5rem 1rem;border-radius:.625rem;font-weight:500}.secondary-btn:hover{background-color:#475569}.header-icon-btn{background-color:transparent;color:#64748b;padding:.5rem;border-radius:.625rem;transition:all .2s ease-in-out}.header-icon-btn:hover{background-color:#f1f5f9;color:var(--main-color);transform:scale(1.1)}.table-icon-btn{background-color:transparent;color:#64748b;padding:.25rem;border-radius:.625rem;transition:all .2s ease-in-out}.table-icon-btn:hover{background-color:#f1f5f9;color:var(--main-color)}.table-icon-btn:focus{outline:none;box-shadow:0 0 0 2px #ffffffe6,0 0 0 4px var(--brand-color)}.primary-btn:focus,.ghost-btn:focus,.header-icon-btn:focus{outline:none;box-shadow:0 0 0 2px #ffffffe6,0 0 0 4px var(--brand-color)}.primary-btn:active,.ghost-btn:active,.header-icon-btn:active{transform:scale(.98);filter:brightness(.95)}.tab-button.active{border-bottom-color:var(--main-color);color:var(--main-color);font-weight:600}.tab-button{color:#64748b;font-weight:500;border-bottom:2px solid transparent;transition:color .2s ease-in-out,border-color .2s ease-in-out}.tab-button:not(.active):hover{color:#334155;border-bottom-color:#cbd5e1}.add-row-btn{background-color:var(--main-color);color:#fff;padding:.5rem 1rem;border-radius:.625rem;font-weight:500;transition:background-color .2s;text-shadow:0 1px 1px rgba(0,0,0,.1);display:flex;justify-content:center}.add-row-btn:hover{background-color:var(--secondary-color)}.remove-row-btn{background-color:#ef4444;color:#fff;text-shadow:0 1px 1px rgba(0,0,0,.1);padding:.25rem .5rem;border-radius:.625rem;line-height:1rem}.actions-cell .remove-row-btn{font-size:.75rem}.remove-row-btn:hover{background-color:#dc2626}.destructive-btn{background-color:#ef4444;color:#fff;text-shadow:0 1px 1px rgba(0,0,0,.1);padding:.5rem 1rem;border-radius:.625rem;font-weight:500}.destructive-btn:hover{background-color:#dc2626}#scenario-modal .ghost-btn{padding:.25rem .75rem;border-radius:.625rem}#scenario-modal .remove-row-btn{border-radius:.625rem;line-height:inherit}#confirmation-modal .remove-row-btn{padding:.5rem 1rem!important}.actions-cell .remove-row-btn,.component-row .remove-row-btn,#custom-materials-tbody .remove-row-btn{background-color:transparent;color:#ef4444;border:1px solid #fca5a5;font-weight:500;transition:all .2s ease-in-out;padding:.25rem .5rem;font-size:.75rem;line-height:1rem}.actions-cell .remove-row-btn:hover,.component-row .remove-row-btn:hover,#custom-materials-tbody .remove-row-btn:hover{background-color:#fee2e2;color:#b91c1c;border-color:#ef4444}.epd-btn,.duplicate-row-btn{background-color:transparent;color:#64748b;border:1px solid #cbd5e1;font-weight:500;padding:.25rem .5rem;border-radius:.625rem;font-size:.75rem;line-height:1rem;transition:all .2s ease-in-out}.epd-btn:hover,.duplicate-row-btn:hover{background-color:#f1f5f9;border-color:#94a3b8;color:#1e293b}.epd-btn.active{background-color:var(--main-color);border-color:var(--main-color);color:#fff;text-shadow:0 1px 1px rgba(0,0,0,.1)}.epd-btn.active:hover{background-color:var(--secondary-color);border-color:var(--secondary-color);color:#fff}#tour-finish .primary-btn{visibility:hidden;display:none}@media(max-width:1024px){table.responsive-table{min-width:900px;width:auto}}#auth-submit-btn{background-color:var(--main-color);transition:background-color .2s ease-in-out}#auth-submit-btn:hover{background-color:var(--secondary-color)}.auth-modal-link{color:var(--main-color);transition:color .2s ease-in-out}.auth-modal-link:hover{color:var(--secondary-color)}#tour-spotlight{position:fixed;border-radius:.625rem;box-shadow:0 0 0 9999px #00000080;transition:all .3s ease-in-out;pointer-events:none;z-index:9998}#tour-modal{transition:opacity .3s ease-in-out,transform .3s ease-in-out;z-index:9999}.tour-step h3{font-family:Montserrat,sans-serif;font-weight:700;font-size:1.125rem;color:#1e293b}.tour-step p{color:#475569;margin-top:.5rem}.premium-lock{cursor:pointer;position:relative}.premium-lock:after{content:"";position:absolute;top:-8px;right:-8px;width:18px;height:18px;background-color:transparent;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath opacity='1' d='M22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12Z' fill='%231E4D4D'%3E%3C/path%3E%3Cpath d='M10.4127 8.49812L10.5766 8.20419C11.2099 7.06807 11.5266 6.5 12 6.5C12.4734 6.5 12.7901 7.06806 13.4234 8.20419L13.5873 8.49813C13.7672 8.82097 13.8572 8.98239 13.9975 9.0889C14.1378 9.19541 14.3126 9.23495 14.6621 9.31402L14.9802 9.38601C16.2101 9.66428 16.825 9.80341 16.9713 10.2739C17.1176 10.7443 16.6984 11.2345 15.86 12.215L15.643 12.4686C15.4048 12.7472 15.2857 12.8865 15.2321 13.0589C15.1785 13.2312 15.1965 13.4171 15.2325 13.7888L15.2653 14.1272C15.3921 15.4353 15.4554 16.0894 15.0724 16.3801C14.6894 16.6709 14.1137 16.4058 12.9622 15.8756L12.6643 15.7384C12.337 15.5878 12.1734 15.5124 12 15.5124C11.8266 15.5124 11.663 15.5878 11.3357 15.7384L11.0378 15.8756C9.88633 16.4058 9.31059 16.6709 8.92757 16.3801C8.54456 16.0894 8.60794 15.4353 8.7347 14.1272L8.76749 13.7888C8.80351 13.4171 8.82152 13.2312 8.76793 13.0589C8.71434 12.8865 8.59521 12.7472 8.35696 12.4686L8.14005 12.215C7.30162 11.2345 6.88241 10.7443 7.02871 10.2739C7.17501 9.80341 7.78994 9.66427 9.01977 9.38601L9.33794 9.31402C9.68743 9.23495 9.86217 9.19541 10.0025 9.0889C10.1428 8.98239 10.2328 8.82097 10.4127 8.49812Z' fill='white'%3E%3C/path%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center;background-size:16px 16px;border-radius:.25rem;z-index:100}.tab-button.premium-lock:after{right:4px;top:2px}.account-tier-badge{font-size:.75rem;font-weight:600;padding:.25rem .75rem;border-radius:9999px;text-transform:uppercase;letter-spacing:.05em}.pro-plan-badge{background-color:var(--pro-color);color:#fff;padding:4px 10px;border-radius:12px}.upgrade-btn-header{background-color:var(--main-color);color:#fff;text-shadow:0 1px 1px rgba(0,0,0,.1);padding:.5rem 1rem;border-radius:.625rem;font-weight:600;cursor:pointer;transition:all .2s ease-in-out;white-space:nowrap;border:1px solid transparent}.upgrade-btn-header:hover{background-color:var(--secondary-color);transform:translateY(-1px);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a}.pro-feature-item{display:flex;align-items:flex-start;gap:.75rem;color:#334155}.pro-feature-icon{flex-shrink:0;width:1.25rem;height:1.25rem;color:var(--main-color)}#save-status{transition:opacity .3s ease-in-out}#save-status .icon-spin{animation:spin 1s linear infinite}#save-status.status-fade-out{opacity:0;transition:opacity .5s 2s ease-in-out}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.skeleton{background:#e2e8f0;background:linear-gradient(to right,#e2e8f0 8%,#f1f5f9 18%,#e2e8f0 33%);background-size:800px 104px;animation:shimmer 1.5s infinite linear;border-radius:4px}@keyframes shimmer{0%{background-position:-468px 0}to{background-position:468px 0}}.project-list-header{display:flex;justify-content:space-between;padding:.5rem 1rem;font-size:.75rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid #e2e8f0}.project-item{display:flex;justify-content:space-between;align-items:center;padding:.5rem 1rem;border-radius:.625rem;transition:background-color .2s}.project-item:hover{background-color:#f8fafc}.project-item-name{display:flex;flex-direction:column}.project-item-details{display:flex;align-items:center;gap:.25rem;flex-shrink:0;flex-direction:column;align-items:flex-end}.project-item-details .ghost-btn{padding:.25rem .75rem}.project-item-details .remove-row-btn{padding:.375rem;color:#64748b;background-color:transparent}.project-item-details .remove-row-btn:hover{color:#dc2626;background-color:#fee2e2}.project-list-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1rem;text-align:center;border-radius:.625rem;border:2px dashed #e2e8f0;margin-top:1rem}.project-button-group{display:flex;align-items:center;gap:.75rem}.project-item-details .duplicate-project-btn{padding:.375rem;color:#64748b;background-color:transparent;border:none;border-radius:.625rem}.project-item-details .duplicate-project-btn:hover{color:var(--main-color);background-color:#f1f5f9}.ai-teaser-container{position:relative;overflow:hidden;border-radius:.5rem;background-color:transparent}.ai-teaser-headline{font-family:Montserrat,sans-serif;font-weight:700;font-size:1.125rem}.ai-teaser-text{color:#475569;margin-top:.5rem;margin-bottom:1rem}.ai-teaser-button{display:inline-flex;background-color:var(--main-color);color:#fff;text-shadow:0 1px 1px rgba(0,0,0,.1);padding:.5rem 1.25rem;border-radius:.625rem;font-weight:600;transition:all .2s ease-in-out;text-decoration:none}.ai-teaser-button:hover{background-color:var(--secondary-color);transform:translateY(-1px)}.blurred-text{color:#cbd5e1;filter:blur(1px);-webkit-user-select:none;user-select:none;margin-top:1rem;line-height:1.2;border-top:1px solid #e2e8f0;padding-top:1rem}.app-header{background-color:#fff;border-bottom:1px solid #e2e8f0;top:0;z-index:10;padding:.75rem 1rem}.app-header-main{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem}.app-header-left{display:flex;align-items:center;gap:1rem;min-width:0;flex-shrink:1;flex-grow:1}.app-header-right{width:100%;flex-shrink:0}.header-actions{display:flex;flex-direction:column;gap:.75rem;width:100%}@media(max-width:1024px){.header-actions .primary-btn,.header-actions .secondary-btn,.header-actions .ghost-btn{width:100%;justify-content:center;white-space:nowrap}}.header-divider{display:none}.header-icon-group{display:flex;justify-content:space-around;width:100%;background-color:#f8fafc;padding:.5rem;border-radius:.5rem;align-items:center}.app-branding{display:flex;align-items:center;gap:.75rem;padding-right:1rem;border-right:1px solid #e2e8f0}.app-logo{height:2rem;width:auto;flex-shrink:0;object-fit:contain}.app-title{font-size:1.125rem;font-weight:800;color:#1e293b;white-space:nowrap}.app-project-name{flex-grow:1;min-width:0}.app-project-name input{font-size:1.5rem;font-weight:700;color:#1e293b;width:100%;padding:.2rem;margin-left:-.2rem;margin-right:-.2rem;border-radius:.2rem;border:1px solid transparent;background-color:transparent;transition:all .2s}.app-project-name input:focus{outline:none;border-color:var(--brand-color);box-shadow:0 0 0 1px var(--brand-color);background-color:#44bc810d}.app-project-name input:hover{border-color:#e2e8f0;background-color:#fff}.beta-badge{background-color:#2f845a;color:#fff;font-weight:600;font-size:.7rem;padding:2px 6px;border-radius:9px;display:hidden}@media(max-width:640px){.app-header-left{flex-direction:row;align-items:center;width:auto;flex-grow:1;gap:.5rem}.app-branding{border-right:none;padding-bottom:0;padding-right:0;width:auto}.app-project-name{padding-left:0;min-width:0}}@media(max-width:1360px){.app-title{display:none}}@media(min-width:1024px){.app-header{position:sticky;top:0;z-index:10}.app-header-right{width:auto}.app-header-right>.hidden{align-items:stretch}.header-actions{flex-direction:row;width:auto}.header-actions .primary-btn,.header-actions .ghost-btn,.header-actions .secondary-btn{width:auto;min-width:6.2rem;justify-content:center}.header-divider{display:block;border-left:1px solid #e2e8f0;margin:0 .5rem}.header-icon-group{display:contents;gap:.5rem}.secondary-btn,.ghost-btn{width:auto}}input#project-name:-webkit-autofill,input#project-name:-webkit-autofill:hover,input#project-name:-webkit-autofill:focus,input#project-name:-webkit-autofill:active{-webkit-text-fill-color:#1e293b;-webkit-box-shadow:0 0 0px 1000px #ffffff inset;transition:background-color 5000s ease-in-out 0s}.add-row-btn,.remove-row-btn,.primary-btn,.ghost-btn,.epd-btn,.scenario-btn,.duplicate-row-btn,.header-icon-btn:focus .secondary-btn:focus{transition:background-color .2s ease-in-out,box-shadow .2s ease-in-out}.add-row-btn:focus,.remove-row-btn:focus,.primary-btn:focus,.ghost-btn:focus,.epd-btn:focus,.scenario-btn:focus,.duplicate-row-btn:focus,.header-icon-btn:focus .secondary-btn:focus{outline:none;box-shadow:0 0 0 2px #ffffffe6,0 0 0 4px var(--brand-color)}.add-row-btn:active,.remove-row-btn:active,.primary-btn:active,.ghost-btn:active,.epd-btn:active,.scenario-btn:active,.duplicate-row-btn:active,.header-icon-btn:active{transform:scale(.98);filter:brightness(.95)}.primary-btn:hover,.ghost-btn:hover{transform:translateY(-1px);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a}.table-auto tbody tr td{transition:background-color .15s ease-in-out}.table-auto tbody tr:hover td{background-color:#f8fafc}#confirmation-modal{z-index:60}#loading-overlay{z-index:52}.component-row{display:flex;gap:.5rem;align-items:center}.component-row .table-select{flex-grow:1}.component-row .table-input{width:80px}.component-row .remove-row-btn{flex-shrink:0;padding:.5rem;line-height:1}.inline-bar-container{width:100%;height:8px;background-color:#f1f5f9;border-radius:9999px;overflow:hidden}.inline-bar{height:100%;width:0%;border-radius:9999px;transition:width .5s ease-out}.diff-positive{color:var(--danger-color);font-weight:600}.diff-negative{color:var(--main-color);font-weight:600}.diff-neutral{color:#64748b}.prose-content h2{font-size:1.25rem;font-weight:600;margin-bottom:1rem}.prose-content h3{font-size:1rem;font-weight:600;margin-top:1.5rem;margin-bottom:.5rem;color:#1e293b}.prose-content p,.prose-content li{font-size:.875rem;color:#334155}.prose-content p{margin-bottom:1rem}.prose-content ul,.prose-content ol{margin-top:.5rem;margin-bottom:1rem;list-style-position:outside;padding-left:1.5rem}.prose-content ul{list-style-type:disc}.prose-content ol{list-style-type:decimal}.prose-content li{padding-left:.5rem;margin-bottom:.5rem}.external-link{display:inline-flex;align-items:center;text-decoration:underline;color:var(--main-color);font-weight:500;transition:color .2s ease-in-out}.external-link:hover{color:var(--secondary-color)}.external-link-icon{height:1em;width:1em;margin-left:.25rem}.delta-pill{display:inline-flex;align-items:center;justify-content:center;padding:1px 6px;border-radius:4px;font-size:.75rem;font-weight:600;margin-left:8px;white-space:nowrap}.delta-pill.positive{color:var(--main-color)}.delta-pill.negative{color:var(--danger-color)}.delta-pill.neutral{color:#64748b}@layer base{img{display:inline-block!important}}body.pdf-export-mode .container{width:1300px!important;max-width:1300px!important}body.pdf-export-mode .bg-white,body.pdf-export-mode .kpi-card{border:1px solid#e2e8f0;box-shadow:none!important}body.pdf-export-mode #summary .grid .summary-chart{display:flex;gap:2rem}body.pdf-export-mode #summary .grid .summary-chart>.lg\\:col-span-2{flex:2}body.pdf-export-mode #summary .grid .summary-chart>.space-y-8{flex:1}.summary-print-scale h2,.summary-print-scale h3{font-size:1.6rem!important}.summary-print-scale p,.summary-print-scale label,.summary-print-scale li,.summary-print-scale span{font-size:1.1rem!important}.pdf-export-mode input,.pdf-export-mode select{padding-top:7px!important}.pdf-export-mode input:not(table input),.pdf-export-mode select:not(table select){padding-top:8px!important}.pdf-export-mode textarea{height:auto!important}.pdf-export-mode input[type=text]{text-align:left!important}.pdf-export-mode #add-pavement-row,.pdf-export-mode #add-edging-row,.pdf-export-mode #add-pipe-row,.pdf-export-mode #add-pit-row,.pdf-export-mode #add-misc-row,.pdf-export-mode #add-general-row,.pdf-export-mode #add-custom-material,.pdf-export-mode #add-custom-fuel,.pdf-export-mode #add-clearing-row,.pdf-export-mode #add-general-haulage-row,.pdf-export-mode #open-composite-creator-btn,.pdf-export-mode .remove-row-btn,.pdf-export-mode .epd-btn,.pdf-export-mode .duplicate-row-btn,.pdf-export-mode .actions-cell,.pdf-export-mode .table-icon-btn,.pdf-export-mode #custom-materials-empty-msg,.pdf-export-mode #open-benchmark-btn,.pdf-export-mode #reconfigure-benchmark-btn{display:none!important}#message-console{opacity:0;transform:translateY(100px);transition:opacity .3s ease-out,transform .3s ease-out;z-index:100;left:0;right:0;margin-left:auto;margin-right:auto}#message-console.success{background-color:var(--secondary-color)}#message-console.error{background-color:#dc2626}#message-console.info{background-color:#475569}#message-console.show{opacity:1;transform:translateY(0)}
