*{box-sizing:border-box}
:root{color-scheme:light;--ink:#14283d;--muted:#51667c;--line:#dce5ef;--accent:#075b56;--accent-strong:#064743;--paper:#f4f7fa;--white:#fff;font-family:"Segoe UI",system-ui,sans-serif}
body{margin:0;color:var(--ink);background:var(--paper);font-size:15px;line-height:1.5}
[hidden]{display:none!important}
button,input,textarea,select{font:inherit}
button{cursor:pointer}
button:disabled{cursor:not-allowed;opacity:.55}
button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #318c9b;outline-offset:2px}
.shell{width:min(1180px,calc(100% - 64px));margin-inline:auto}
.top{background:var(--white);border-bottom:1px solid var(--line)}
.brand-row{display:flex;align-items:center;justify-content:space-between;min-height:68px}
.brand{display:flex;align-items:center;gap:12px;font-size:20px;font-weight:750;letter-spacing:-.5px}
.logo,.upload-icon{display:grid;place-items:center;border-radius:12px}
.logo{width:38px;height:38px;background:var(--accent);color:white}
svg{width:23px;height:23px}
.local{display:inline-flex;align-items:center;gap:8px;color:var(--accent-strong);background:#e9f6f1;padding:6px 12px;border-radius:30px;font-size:13px;font-weight:650}
.local span{width:7px;height:7px;border-radius:50%;background:#19816b}
.account-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px}
.hero{display:grid;grid-template-columns:1.08fr .92fr;gap:42px;align-items:center;background:#122c41;color:#f4f8fd;margin-top:36px;padding:46px 54px;border-radius:26px}
.eyebrow{margin:0 0 10px;color:#24736f;font-size:12px;font-weight:800;letter-spacing:.12em}
.hero .eyebrow{color:#90dcc9}
h1,h2,p{margin-top:0}
h1{font-size:clamp(44px,6.4vw,82px);line-height:.99;letter-spacing:-.065em;margin-bottom:22px}
h2{margin-bottom:4px;font-size:28px;letter-spacing:-.035em;line-height:1.2}
.intro{max-width:465px;margin-bottom:0;color:#d1dfeb;font-size:18px}
.upload{color:var(--ink);text-align:center;background:#f7fafb;border:2px dashed #a3babf;border-radius:18px;padding:22px 16px 15px;transition:background .15s,border .15s}
.upload.is-dragging{background:#daf0e8;border-color:#288777}
.upload-icon{margin:0 auto 12px;width:42px;height:42px;color:var(--accent);background:#e3f2ee}
.upload h2{font-size:22px}
.upload p{color:var(--muted);margin:7px 0 16px;font-size:13px}
.login-card{color:var(--ink);background:var(--white);border:1px solid var(--line);border-radius:18px;padding:24px;min-width:0}
.login-card label{margin-top:14px}
.login-card .button{width:100%;margin-top:16px}
.login-card .notice{margin-bottom:0}
.login-features{padding-left:22px;margin:16px 0 0;color:#d1dfeb}
.login-features li+li{margin-top:5px}
.button{display:inline-flex;justify-content:center;align-items:center;border:1px solid transparent;border-radius:9px;padding:9px 17px;font-weight:690;min-height:42px}
.primary{background:var(--accent);color:white}
.primary:hover:not(:disabled){background:var(--accent-strong)}
.sample{display:flex;margin:6px auto 0;padding:5px 10px;color:var(--accent);font-size:13px;gap:8px;background:transparent}
.sample:hover:not(:disabled),.quiet:hover{background:#e4f0ed}
.quiet{color:var(--accent);background:white;border-color:var(--line)}
.notice{margin-top:16px;padding:12px 16px;border:1px solid #bad3d1;border-radius:10px;background:#eaf6f3;color:#174643;overflow-wrap:anywhere}
.notice.error{color:#8b2b27;background:#fff0ee;border-color:#eebebb}
.result{margin-top:32px}
.result-head{display:flex;justify-content:space-between;align-items:flex-end;gap:14px;margin-bottom:15px}
.export-area{display:grid;gap:4px;justify-items:end;text-align:right;flex-shrink:0}
.file-name{margin:5px 0 0;color:var(--muted);font-size:13px;overflow-wrap:anywhere}
.meta{margin:0;font-size:12px;color:var(--muted)}
.cost-summary{margin-bottom:16px;padding:15px 16px;background:white;border:1px solid var(--line);border-radius:16px}
.cost-summary h3{margin:0 0 10px;font-size:16px}
.cost-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0}
.cost-card{background:var(--paper);padding:9px 12px;border-radius:9px}
.cost-card dt{color:var(--muted);font-size:12px}
.cost-card dd{margin:2px 0 0;font-weight:750;font-size:17px;font-variant-numeric:tabular-nums}
.cost-card .cost-source{font-size:11px;font-weight:400;color:var(--muted)}
.cost-grand{background:#e4f2ed;color:var(--accent-strong)}
.cost-summary details{padding-top:10px;border-top:1px solid var(--line)}
.cost-summary details p{margin:8px 0}
.cost-summary .table-wrap{max-height:320px;border:1px solid var(--line);border-radius:9px}
.detail-table th,.quote-table th{position:sticky;top:0}
.workspace{background:white;border:1px solid var(--line);border-radius:16px;overflow:hidden}
.purchase-cost{padding:8px 13px 12px}
.purchase-cost p{margin:0}
.purchase-cost strong{margin-left:5px;color:var(--accent-strong);white-space:nowrap}
.quote-panel{margin-top:20px;padding:17px 16px;background:white;border:1px solid var(--line);border-radius:16px}
.quote-steps{padding-left:24px;color:var(--muted);margin:10px 0 15px}
.quote-steps li{padding-left:3px;margin:5px 0}
.quote-panel .meta{margin-top:6px}
.development-label{margin:4px 0 0;color:var(--muted);font-size:12px}
.installer-export{margin-top:12px;padding-top:9px;border-top:1px solid var(--line)}
.quote-panel h3{margin:16px 0 8px;overflow-wrap:anywhere}
.quote-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:12px 0}
.quote-actions .meta{flex-basis:100%}
.quote-confirm{font-weight:600}
.quote-confirm input{width:auto;margin:0;vertical-align:middle}
.manual-prices{margin-top:14px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#f8fbfc}
.manual-prices summary{color:var(--accent-strong);font-size:15px}
.manual-prices fieldset{min-width:0;margin:0;padding:0;border:0}
.manual-tax{display:flex;gap:10px;flex-wrap:wrap}
.manual-tax label{min-width:min(100%,210px)}
.manual-prices td:last-child{min-width:140px}
.manual-prices .button{margin-top:10px}
.work-table table{min-width:940px}
.work-table input{min-width:90px}
#work-totals{margin-top:12px}
.dashboard .meta{margin-top:8px}
.dashboard-scenario{margin-top:16px;padding-top:15px;border-top:1px solid var(--line)}
.dashboard-inputs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-width:660px}
.dashboard-inputs label{margin-top:0}
.dashboard-inputs [aria-invalid=true]{border-color:#a33b37}
.discount-label{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:16px;max-width:660px}
.discount-label output{font-size:18px;color:var(--accent-strong);font-variant-numeric:tabular-nums}
#contract-discount{max-width:660px;margin:2px 0 0;padding:0;accent-color:var(--accent)}
#scenario-summary{margin-top:12px}
.scenario-warning{color:#8b2b27;font-weight:650}
.main-tabs{display:flex;flex-wrap:wrap;gap:6px;margin:18px 0 12px;padding:5px;border:1px solid var(--line);border-radius:12px;background:white}
.main-tabs button{flex:1 1 auto;border:0;border-radius:8px;padding:10px 13px;background:transparent;color:var(--muted);font-weight:680}
.main-tabs button[aria-selected=true]{background:#e4f2ed;color:var(--accent-strong)}
.project-bar,.next-step{margin-bottom:12px;padding:11px 14px;border:1px solid var(--line);border-radius:12px;background:white}
.project-bar>div,.next-step{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.project-bar p,.next-step p{margin:0}
.project-bar .meta,.project-bar input{margin-top:7px}
.next-step{justify-content:space-between;background:#e4f2ed}
.next-step p{font-weight:650}
.tab-export-area{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 10px;text-align:left}
[role=tabpanel].quote-panel{margin-top:0}
.quote-table{margin-top:10px;max-height:540px;border:1px solid var(--line);border-radius:9px}
.quote-table td:first-child{min-width:200px}
.toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px}
.filters{display:flex;flex-wrap:wrap;gap:4px}
.filters button{border:none;background:transparent;color:var(--muted);padding:8px 11px;border-radius:8px;font-weight:650}
.filters button[aria-pressed=true]{background:#e4f2ed;color:var(--accent-strong)}
.filters b{margin-left:5px;font-variant-numeric:tabular-nums}
input,select,textarea{width:100%;padding:8px 10px;border:1px solid #b8c8d7;border-radius:7px;background:white;color:var(--ink)}
input[type=search]{max-width:260px}
.table-wrap{overflow:auto}
table{width:100%;min-width:630px;border-collapse:collapse}
th,td{border-top:1px solid var(--line);padding:10px 13px;text-align:left;vertical-align:top}
th{background:#edf3f8;color:#425a70;font-size:12px;font-weight:750;white-space:nowrap}
td:nth-child(4){font-variant-numeric:tabular-nums}
td:nth-child(3),td:nth-child(4){white-space:nowrap}
.price{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.row-name{font-weight:610;overflow-wrap:anywhere}
.row-meta,.row-reason{font-size:12px;margin:4px 0 0;color:var(--muted);overflow-wrap:anywhere}
.row-reason{color:#8a4c09}
.small{font-size:13px;min-height:34px;padding:4px 9px}
.empty{margin:0;padding:21px;color:var(--muted);text-align:center}
footer{margin:24px 0;color:var(--muted);font-size:13px}
dialog{width:min(650px,calc(100% - 24px));border:1px solid var(--line);border-radius:18px;color:var(--ink);padding:22px;max-height:calc(100% - 24px)}
dialog::backdrop{background:#0a213a88}
.editor-head,.editor-actions{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}
.editor-actions{margin-top:16px}
.icon-button{border:0;background:var(--paper);color:var(--ink);border-radius:8px;width:38px;height:38px;font-size:22px}
.editor-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:10px}
label{display:block;margin-top:10px;font-size:13px;font-weight:690}
label :is(input,textarea,select){margin-top:3px;font-size:15px;font-weight:400}
textarea{resize:vertical}
.issue{background:#fff3dc;border-radius:8px;color:#704408;padding:9px 12px;margin:10px 0;font-size:13px}
details{margin-top:12px;font-size:13px;color:var(--muted)}
details ul{padding-left:20px;max-height:180px;overflow:auto}
details li{margin:6px 0}
summary{cursor:pointer;font-weight:700}
.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:750px){.shell{width:calc(100% - 28px)}.hero{grid-template-columns:1fr;gap:24px;padding:25px;margin-top:20px}.intro{font-size:16px}.toolbar{align-items:stretch;flex-direction:column}.result-head{align-items:flex-start;flex-direction:column}.export-area{justify-items:start;text-align:left}input[type=search]{max-width:none}}
@media(max-width:620px){.cost-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){
  .work-table{max-height:560px}
  .work-table table,.work-table tbody{display:block;width:100%;min-width:0}
  .work-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
  .work-table tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding:8px;gap:7px;border-top:1px solid var(--line)}
  .work-table td{min-width:0!important;border:0;padding:2px 3px;text-align:left;white-space:normal;overflow-wrap:anywhere}
  .work-table td:first-child,.work-table td:nth-child(5){grid-column:1/-1}
  .work-table td[data-label]::before{content:attr(data-label);display:block;color:var(--muted);font-size:11px}
}
@media(max-width:410px){.dashboard-inputs{grid-template-columns:1fr}}
@media(max-width:410px){.brand{font-size:17px}.local{font-size:11px}.hero{padding:20px}.editor-grid{grid-template-columns:1fr 1fr}.editor-grid label:first-child{grid-column:1/-1}}

