@font-face{font-family:system;src:local('Inter')}*{box-sizing:border-box}html,body{margin:0;background:#10191d;color:#e7eeec;font:14px system,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}button,input,select,textarea{font:inherit}button{border:1px solid #344549;border-radius:7px;background:#1b292d;color:#d7e4e0;padding:9px 13px;cursor:pointer;transition:.15s}button:hover{background:#2a3b3e;border-color:#84ac97}button:disabled{opacity:.4;cursor:wait}button.active,.primary{background:#bae4c4;color:#18362c;border-color:#bae4c4}header{height:74px;padding:0 28px;display:flex;align-items:center;gap:24px;border-bottom:1px solid #2b383c}.brand{display:flex;gap:12px;align-items:center;color:inherit;text-decoration:none;font-weight:750;letter-spacing:1px;font-size:18px}.brand small{display:block;font-size:9px;color:#83a49c;font-weight:500;letter-spacing:2px;margin-top:5px}.logo{font-size:27px;color:#cbead0;background:#233b32;width:41px;height:41px;display:flex;align-items:center;justify-content:center;border-radius:8px}.logo span{font-size:15px;margin-left:-4px}.status{margin-left:auto;display:flex;align-items:center;gap:9px;color:#99b1a9;font-size:12px}.status i,.evidence i{background:#a7d9b2;width:6px;height:6px;border-radius:50%;display:inline-block}.tag{margin-left:12px;padding:6px 10px;border:1px solid #33473b;border-radius:5px;color:#bde2c3}main{display:grid;grid-template-columns:337px minmax(0,1fr);height:calc(100vh - 74px)}.controls{padding:27px 23px 0;overflow:auto;border-right:1px solid #2b383c;scrollbar-color:#394945 #142025}.eyebrow{font-size:9px;font-weight:700;letter-spacing:1.6px;color:#84a494}.intro h1{font-size:35px;line-height:1.13;letter-spacing:-1px;margin:14px 0 13px;font-weight:550}.intro p{font-size:12px;line-height:1.7;color:#849b93}.tabs{display:flex;padding:4px;background:#0d1518;border:1px solid #243337;border-radius:8px;margin:24px 0}.tabs button{border:0;background:none;font-size:11px;padding:10px 11px;flex:1;white-space:nowrap}.tabs .active{background:#273e33;color:#c8e2d0}.section-heading{font-size:10px;font-weight:700;letter-spacing:1.5px;margin:26px 0 14px;display:flex;justify-content:space-between;align-items:center}.section-heading span{font-size:8px;letter-spacing:.7px;color:#86a899;background:#22312a;border-radius:4px;padding:4px 6px}label{display:block;font-size:11px;color:#9eb3ab;margin:0 0 14px}input:not([type=range]):not([type=checkbox]):not([type=file]),select,textarea{display:block;width:100%;margin-top:7px;border:1px solid #344345;background:#132024;border-radius:6px;padding:10px 11px;color:#d4e3dc;outline:none;min-width:0}input:focus,textarea:focus,select:focus{border-color:#9abea5}input:invalid{border-color:#e8a371}input[type=date]{color-scheme:dark}textarea{font:11px ui-monospace,monospace;line-height:1.6;resize:vertical}.pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}.panel-spec{display:flex;gap:13px;padding:14px 12px;background:#1a292d;border:1px solid #2c4141;border-radius:8px;margin-bottom:16px}.panel-spec svg{width:22px;height:36px;fill:#203641;stroke:#839fab;stroke-width:1}.panel-spec strong{font-size:12px;font-weight:600}.panel-spec small{display:block;color:#8fa79e;font-size:10px;margin-top:7px}.quantity{display:flex;gap:10px;align-items:flex-end}.quantity label{flex:1;margin:0}.quantity button{margin-bottom:1px}.note{font-size:11px;line-height:1.7;color:#819b91}.note.warning{color:#e5b785}.face-row{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid #263438;font-size:11px}.face-row .check{margin:0}.face-row small{color:#8eaaa0;margin-left:9px}.check{display:flex;gap:9px;align-items:center;font-size:11px}.check input{accent-color:#bde5c4}.face-count{color:#b5d2be;font-size:11px}details{margin-top:19px;border-top:1px solid #293b3d;padding-top:16px}summary{font-size:11px;cursor:pointer;margin-bottom:16px;color:#aec5b9}details button{margin-bottom:16px;font-size:11px}footer{font-size:9px;letter-spacing:1.5px;margin:30px 0 22px;line-height:1.9;color:#608575}footer span{font-size:9px;letter-spacing:0;color:#718780}.workspace{padding:28px 30px 22px;display:flex;flex-direction:column;min-height:0;overflow:auto;gap:20px}.workspace-bar{display:flex;justify-content:space-between;align-items:center;gap:15px}.workspace-bar h2{font-size:19px;font-weight:500;letter-spacing:-.3px;margin:9px 0 0}.view-buttons{display:flex;gap:6px}.view-buttons button{font-size:11px;padding:8px 10px}#viewport{position:relative;min-height:340px;flex:1;border:1px solid #344548;border-radius:13px;overflow:hidden;background:#1e2c32}#viewport canvas{display:block;width:100%;height:100%;touch-action:none}.viewport-label{position:absolute;left:20px;top:20px;z-index:1;pointer-events:none}.viewport-label span{font-size:9px;font-weight:600;letter-spacing:1.2px;border:1px solid #627873;color:#cad8ce;padding:6px 8px;border-radius:4px;background:#1b2b31aa}.viewport-label small{display:block;font-size:10px;color:#9bb5aa;margin-top:13px}.viewport-hint{position:absolute;bottom:16px;left:20px;font-size:10px;color:#9eb7b3;pointer-events:none}#viewer-error{position:absolute;inset:60px;z-index:2;color:#edbd9c;background:#162127;padding:30px}.metrics{display:grid;grid-template-columns:repeat(4,1fr);background:#172428;border:1px solid #304145;border-radius:10px;flex:none;padding:20px 0}.metrics>div{padding:0 22px;border-right:1px solid #304145}.metrics>div:last-child{border-right:0}.metrics span:not(#kwp):not(#roof-area){display:block;color:#829e90;font-size:9px;font-weight:600;letter-spacing:1.3px}.metrics strong{display:block;font-size:31px;line-height:1.5;font-weight:500;color:#d3e8d4}.metrics em{font-size:15px;font-style:normal;color:#81998d}.metrics small{color:#7e958b;font-size:9px}.evidence{display:flex;justify-content:space-between;align-items:center;gap:10px}.evidence strong{font-size:11px;font-weight:500;color:#a4b5a9;margin-left:7px}.evidence span{display:block;font-size:10px;color:#6f8c80;margin-top:7px}.evidence button{font-size:10px;white-space:nowrap}.time-display{display:flex;align-items:baseline;justify-content:space-between;margin:28px 0 20px}.time-display span{font-size:40px;letter-spacing:-1px;color:#d0e6d4}.time-display small{color:#86a694;font-size:10px}input[type=range]{accent-color:#bae4c4;width:100%;margin:0;cursor:pointer}.range-labels{display:flex;justify-content:space-between;font-size:10px;color:#6f9783;margin:10px 0 23px}.wide{width:100%;margin-bottom:20px}.sun-stats{border-top:1px solid #34423f;margin:0 0 23px;padding-top:20px;display:flex;gap:20px;justify-content:space-between;font-size:10px;color:#829e91}.sun-stats strong{display:block;font-size:20px;color:#c2dcc5;margin-top:9px;font-weight:500}.upload{position:relative;border:1px dashed #527361;background:#1c3028;border-radius:8px;padding:18px 12px;color:#c5dfca;cursor:pointer;text-align:center;margin:20px 0 12px}.upload input{position:absolute;opacity:0;inset:0;width:100%;cursor:pointer}.upload small{display:block;font-size:9px;margin-top:8px;color:#8fafa0}.file-link{font-size:10px;color:#b2cdb9;text-decoration:none}.pipeline{margin:23px 0;border-top:1px solid #314338}.pipeline>div{padding:13px 0;font-size:10px;border-bottom:1px solid #314338;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.pipeline b{font-size:8px;letter-spacing:.5px;margin-left:auto;color:#89a394}.pipeline i{width:5px;height:5px;background:#a8d1b2;border-radius:50%}.pipeline .pending{background:#b68b54}.metadata-card{padding:13px;border:1px solid #3c5145;border-radius:7px;margin:10px 0;font-size:10px;line-height:1.7;overflow-wrap:anywhere}.metadata-card strong{display:block;color:#c8dfcf}.metadata-card span{color:#9dafab}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}#toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,20px);background:#c3e4c8;color:#163026;padding:13px 22px;border-radius:8px;font-size:12px;z-index:10;opacity:0;pointer-events:none;transition:.2s;max-width:80vw}#toast.show{opacity:1;transform:translate(-50%,0)}dialog{background:#19292d;color:#d1dfd6;border:1px solid #577061;border-radius:13px;max-width:540px;padding:30px}dialog::backdrop{background:#06100acc}dialog h2{font-size:20px;font-weight:500}#check-results>div{margin:14px 0;padding-bottom:12px;border-bottom:1px solid #344941;font-size:12px}#check-results span{display:block;color:#88a697;font-size:10px;margin-top:7px}@media(min-width:1600px){main{grid-template-columns:365px 1fr}.workspace{padding:35px 40px}.controls{padding:30px}}@media(max-width:1150px){main{grid-template-columns:305px 1fr}.controls{padding:24px 19px}.workspace{padding:25px 18px;gap:16px}.workspace-bar{align-items:flex-start;flex-direction:column}.metrics>div{padding:0 12px}.metrics strong{font-size:25px}.metrics small{font-size:8px}}@media(max-width:740px){header{padding:0 16px;height:65px;gap:10px}.brand{font-size:14px}.status{font-size:0;gap:0}.tag{font-size:9px}.status i{display:none}header button{font-size:10px;padding:8px}main{display:flex;flex-direction:column;height:auto}.workspace{order:0;padding:20px 15px}.controls{order:1;border-right:0;border-top:1px solid #30413a;overflow:visible;padding:25px}.intro h1 br{display:none}.intro h1{font-size:30px}.intro p br{display:none}.workspace-bar h2{font-size:16px}.view-buttons{flex-wrap:wrap}#viewport{height:390px;min-height:390px;flex:none}.metrics{grid-template-columns:1fr 1fr;gap:20px;padding:17px 0}.metrics>div:nth-child(2){border-right:0}.metrics strong{font-size:28px}.evidence{align-items:flex-start}.evidence span{line-height:1.6}.evidence button{font-size:9px}.tabs button{font-size:12px}.tab-content{max-width:540px}.viewport-hint{font-size:9px}} 
#report-dialog{width:92vw;max-width:1100px;height:90vh;padding:16px}#report-frame{display:block;background:white;width:100%;height:calc(100% - 55px);border:0;border-radius:6px}.report-toolbar{display:flex;align-items:center;gap:8px;margin-bottom:16px}.report-toolbar strong{margin-right:auto;font-size:12px}.report-toolbar button{font-size:10px;padding:8px}@media(max-width:600px){.report-toolbar{flex-wrap:wrap}.report-toolbar strong{width:100%}#report-frame{height:calc(100% - 90px)}}
.tabs button{font-size:10px;padding:10px 6px}.photo-help{font-size:12px;line-height:1.85;color:#a6bcaf}.engine-state{display:flex;align-items:center;gap:8px;font-size:11px;color:#9ab8a7;margin:20px 0}.engine-state i{width:7px;height:7px;background:#c6a16d;border-radius:50%}.engine-state i.ready{background:#a7d9b2}#photo-progress{width:100%;height:7px;border:0;accent-color:#bbe5c4;margin:6px 0 19px}.reconstruction-status{padding:14px;border:1px solid #3a5145;background:#1c3028;border-radius:7px;font-size:11px;line-height:1.85;color:#bfd2c3;margin-bottom:18px;white-space:pre-wrap;overflow-wrap:anywhere}
#trace-dialog{width:94vw;max-width:1250px;height:92vh;padding:20px;overflow:auto}.trace-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;margin-bottom:12px}.trace-heading h2{margin:0 0 7px}.trace-heading p{font-size:11px;color:#b7cabb;margin:0}.trace-grid{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:20px}.trace-photo-wrap{overflow:auto;max-height:68vh;min-height:300px;background:#0d171c;border:1px solid #486456;border-radius:7px}#trace-canvas{display:block;width:100%;height:auto;cursor:crosshair;touch-action:none}.trace-toolbar{display:flex;align-items:center;gap:6px;margin-bottom:10px}.trace-toolbar button{padding:8px;font-size:10px}.trace-toolbar span{font-size:10px;color:#9fb8a8}.trace-tools{overflow:auto;max-height:78vh;padding-right:7px}.trace-tools label{margin:0 0 14px}.trace-tools input,.trace-tools select{font-size:12px}.trace-mode-buttons{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:15px}.trace-mode-buttons button{padding:10px;font-size:11px}.trace-mode-buttons .active{background:#b8d9bf;color:#142b20}.trace-actions{display:flex;gap:4px;margin-bottom:12px}.trace-actions button{font-size:10px;padding:8px}.trace-item{display:flex;align-items:center;justify-content:space-between;font-size:11px;border-bottom:1px solid #3c5346;padding:7px 0}.trace-item button{font-size:9px;padding:5px}#trace-message{font-size:12px;line-height:1.8;color:#c7dfcd;margin-top:12px;white-space:pre-wrap}#trace-list{margin-bottom:18px}.trace-tools .note{font-size:11px;line-height:1.7}@media(max-width:760px){.trace-grid{grid-template-columns:1fr}.trace-tools{max-height:none}.trace-photo-wrap{min-height:200px;max-height:55vh}.trace-toolbar{flex-wrap:wrap}}
#building-look{margin-top:25px}#building-look .check{font-size:11px;line-height:1.6;margin-bottom:13px}#building-look .note{font-size:11px;line-height:1.7}#reference-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:13px}#reference-gallery button{padding:0;overflow:hidden;height:63px;border-color:#486151}#reference-gallery img{width:100%;height:100%;object-fit:cover;display:block}#reference-dialog{max-width:94vw;width:1150px;height:90vh;padding:16px}#reference-dialog .trace-heading{align-items:center;margin-bottom:12px}#reference-caption{font-size:12px}#reference-image{display:block;width:100%;height:calc(100% - 60px);object-fit:contain;background:#101b20}
#panel-preview-controls{padding:14px;border:1px solid #827552;background:#282b24;border-radius:8px;margin-bottom:18px}#panel-preview-controls .check{font-size:12px;margin-bottom:10px}#panel-preview-controls .note{font-size:11px;margin:8px 0 0;line-height:1.7}#panel-preview-label{position:absolute;right:16px;bottom:40px;z-index:2;padding:9px 12px;background:#29291fe8;border:1px solid #9f915c;border-radius:6px;color:#f1dca4;font-size:12px;line-height:1.6;pointer-events:none}#panel-preview-label small{font-size:10px;color:#d9c99f}
#dimension-overlay{position:absolute;inset:0;z-index:1;pointer-events:none}#dimension-summary{font-size:11px;line-height:1.7;color:#bdd1c3;margin-top:-8px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}#dimension-summary .assumed{color:#e9d29d}.metrics.assumed{border-color:#827552}#image-dialog{width:96vw;max-width:1540px;height:auto;max-height:94vh;padding:18px;overflow:auto}#presentation-image{display:block;width:100%;height:auto;border-radius:8px;background:#101d22}.image-toolbar{display:flex;align-items:center;gap:15px;position:sticky;top:0;background:#152328;padding-bottom:12px;z-index:1}.image-toolbar strong{margin-right:auto;font-size:13px}.image-toolbar a{font-size:12px;text-decoration:none;color:#20352a;background:#c4e4c6;padding:10px 15px;border-radius:6px}.image-toolbar button{font-size:12px}#panel-preview-controls label{margin-bottom:12px}#panel-preview-controls input[type=number]{font-size:13px}#image-note{margin:2px 0 12px}
.building-card{border:1px solid #38504d;border-left:3px solid #b9dec0;border-radius:7px;padding:13px;margin-bottom:10px;background:#17272b}.building-card:nth-child(2){border-left-color:#a9cce5}.building-card .check{font-size:12px;color:#dde9df;margin:0 0 9px}.building-card>span{display:block;font-size:11px;color:#d8c99f;margin:5px 0}.building-card>small{font-size:11px;color:#9bb9a6}

.sun-confidence{border:1px solid #8e754e;border-radius:8px;background:#322e24;padding:13px;color:#edcf9b;font-size:12px;line-height:1.7}.sun-confidence p{margin:7px 0 0;font-size:11px}
