.app-shell{color:#17202a;background:#eef2f5;min-height:100vh}.app-topbar{background:#fff;border-bottom:1px solid #d9e1e8;grid-template-columns:minmax(0,1fr) minmax(360px,520px);align-items:end;gap:28px;padding:28px 32px 24px;display:grid}.app-topbar h1{letter-spacing:0;margin:6px 0 8px;font-size:30px;font-weight:700;line-height:1.15}.topbar-copy{color:#5c6b78;max-width:760px;margin:0;font-size:15px;line-height:1.45}.eyebrow,.section-kicker{color:#527084;letter-spacing:0;text-transform:uppercase;font-size:12px;font-weight:700;display:block}.topbar-side{gap:10px;display:grid}.user-strip{color:#41515e;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;font-size:13px;display:flex}.user-strip strong{color:#17202a;background:#f4f7f9;border:1px solid #d9e1e8;border-radius:999px;padding:4px 9px}.login-shell{place-items:center;padding:24px;display:grid}.login-panel{background:#fff;border:1px solid #d9e1e8;border-radius:8px;gap:12px;width:min(420px,100%);padding:24px;display:grid;box-shadow:0 2px 10px #131f2b12}.login-panel h1{color:#17202a;margin:0;font-size:24px;line-height:1.15}.login-panel p{color:#5c6b78;margin:0;line-height:1.45}.status-summary{background:#f8fafb;border:1px solid #d8e0e7;border-radius:8px;grid-template-columns:repeat(4,minmax(0,1fr));min-height:74px;display:grid;overflow:hidden}.workspace{grid-template-columns:minmax(320px,390px) minmax(0,1fr);gap:20px;width:min(1480px,100% - 40px);margin:20px auto 0;padding-bottom:32px;display:grid}.left-rail{align-content:start;gap:20px;display:grid}.workspace-pane{background:#fff;border:1px solid #d9e1e8;border-radius:8px;box-shadow:0 1px 2px #131f2b0a}.pane-heading{justify-content:space-between;gap:16px;padding:18px 18px 0;display:flex}.pane-heading--inline{align-items:center}.pane-heading h2,.detail-header h2,.section-title h3,.empty-detail h2{color:#17202a;letter-spacing:0;margin:4px 0 0;font-size:20px;line-height:1.2}.create-form{gap:12px;padding:18px;display:grid}.input-label{color:#41515e;font-size:13px;font-weight:700}input,select{color:#17202a;background:#fff;border:1px solid #cdd8e1;border-radius:8px;outline:none;width:100%;min-height:40px;padding:9px 11px}input:focus,select:focus{border-color:#2f7a9d;box-shadow:0 0 0 3px #2f7a9d24}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.upload-target{color:#17202a;text-align:left;background:#f8fafb;border:1px dashed #8aa0af;border-radius:8px;align-content:center;gap:6px;width:100%;min-height:112px;padding:18px;display:grid}.upload-target:hover,.upload-target:focus{background:#f2f8fa;border-color:#2f7a9d}.upload-target.has-file{background:#eef8f6;border-style:solid;border-color:#2f7a9d}.upload-target span{overflow-wrap:anywhere;font-weight:700}.upload-target small{color:#5c6b78}.primary-button,.secondary-button,.ghost-button{white-space:nowrap;border:1px solid #0000;border-radius:8px;min-height:40px;padding:9px 14px;font-weight:700}.primary-button{color:#fff;background:#1f6f54}.primary-button:hover:not(:disabled){background:#195d47}.secondary-button{color:#fff;background:#265f80}.secondary-button:hover:not(:disabled){background:#214f6a}.ghost-button{color:#2b3b47;background:#fff;border-color:#cdd8e1}.ghost-button:hover:not(:disabled){background:#f4f7f9}button:disabled{opacity:.56}.reports-pane{min-height:360px}.reports-pane select,.reports-pane>.input-label{width:calc(100% - 36px);margin-left:18px}.reports-pane select{margin-top:8px}.report-list{gap:8px;max-height:520px;padding:18px;display:grid;overflow:auto}.report-row{color:#17202a;text-align:left;background:#fff;border:1px solid #d9e1e8;border-radius:8px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px 10px;width:100%;min-height:82px;padding:12px;display:grid}.report-row:hover,.report-row.is-active{background:#f2f8fa;border-color:#2f7a9d}.report-row strong{text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.report-row span:nth-child(3),.report-row span:nth-child(4){color:#5c6b78;font-size:13px}.report-row span:nth-child(4){grid-column:2/4}.detail-pane{min-height:760px;padding:22px}.detail-header{border-bottom:1px solid #d9e1e8;justify-content:space-between;align-items:flex-start;gap:18px;padding-bottom:18px;display:flex}.detail-header p{color:#5c6b78;margin:8px 0 0;line-height:1.45}.detail-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.metrics-strip{background:#f8fafb;border:1px solid #d9e1e8;border-radius:8px;grid-template-columns:repeat(5,minmax(0,1fr));margin:18px 0 4px;display:grid;overflow:hidden}.metric-cell{border-right:1px solid #d9e1e8;min-width:0;min-height:70px;padding:12px 14px}.metric-cell:last-child{border-right:0}.metric-cell span{color:#5c6b78;font-size:12px;line-height:1.25;display:block}.metric-cell strong{overflow-wrap:anywhere;color:#17202a;letter-spacing:0;margin-top:8px;font-size:21px;line-height:1.1;display:block}.metric-cell--green strong{color:#1f6f54}.metric-cell--amber strong{color:#946200}.metric-cell--blue strong{color:#265f80}.detail-grid{grid-template-columns:minmax(0,.86fr) minmax(360px,1.14fr);gap:22px;display:grid}.section-block{padding-top:24px}.section-block--wide{margin-top:2px}.section-title{margin-bottom:12px}.section-title--row{justify-content:space-between;align-items:center;gap:16px;display:flex}.field-list{border-top:1px solid #d9e1e8;gap:0;margin:0;display:grid}.field-row{border-bottom:1px solid #d9e1e8;grid-template-columns:minmax(120px,190px) minmax(0,1fr);gap:14px;min-height:46px;padding:11px 0;display:grid}.field-row dt{color:#5c6b78;font-size:13px}.field-row dd{overflow-wrap:anywhere;color:#17202a;min-width:0;margin:0;font-size:14px}.parcel-map{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;background:#dfe7ec;border:1px solid #d9e1e8;border-radius:8px;width:100%;height:340px;position:relative;overflow:hidden}.parcel-map.is-dragging{cursor:grabbing}.map-tile-pane,.map-vector-overlay,.map-wms-layer{position:absolute;inset:0}.map-tile-pane img{width:256px;max-width:none;height:256px;position:absolute}.map-wms-layer{object-fit:fill;width:100%;height:100%}.map-vector-overlay{pointer-events:none;width:100%;height:100%}.map-vector-overlay path{fill:#1f6f542e;stroke:#1f6f54;stroke-width:3px;filter:drop-shadow(0 1px 1px #00000042)}.map-controls{align-items:flex-start;gap:8px;display:flex;position:absolute;top:12px;left:12px}.zoom-control{background:#fff;border:1px solid #bdcbd6;border-radius:8px;display:grid;overflow:hidden;box-shadow:0 2px 6px #131f2b29}.zoom-control button,.fit-button{color:#17202a;background:#fff;border:0;min-width:38px;min-height:34px;font-weight:800}.zoom-control button+button{border-top:1px solid #d9e1e8}.fit-button{border:1px solid #bdcbd6;border-radius:8px;padding:0 10px;font-size:13px;box-shadow:0 2px 6px #131f2b29}.zoom-control button:hover:not(:disabled),.fit-button:hover:not(:disabled){background:#f4f7f9}.map-layer-control{background:#fffffff5;border:1px solid #bdcbd6;border-radius:8px;gap:4px;min-width:172px;padding:8px;display:grid;position:absolute;top:12px;right:12px;box-shadow:0 2px 6px #131f2b29}.map-layer-control label{color:#41515e;text-transform:uppercase;font-size:11px;font-weight:800}.map-layer-control select{border-radius:6px;min-height:32px;padding:5px 8px;font-size:13px}.map-empty-overlay,.map-warning,.map-attribution{z-index:2;border-radius:6px;padding:5px 8px;font-size:12px;position:absolute}.map-empty-overlay{color:#5c6b78;text-align:center;background:#ffffffeb;top:50%;left:50%;transform:translate(-50%,-50%)}.map-warning{color:#7c5400;background:#fff8e5f5;border:1px solid #e6c671;max-width:calc(100% - 24px);font-weight:700;bottom:34px;left:12px}.map-attribution{color:#41515e;background:#ffffffdb;max-width:calc(100% - 16px);bottom:8px;right:8px}.geometry-empty{color:#5c6b78;text-align:center;border:1px dashed #cdd8e1;border-radius:8px;place-items:center;min-height:180px;padding:18px;display:grid}.geometry-facts{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.geometry-facts span{color:#41515e;border:1px solid #d9e1e8;border-radius:8px;min-height:28px;padding:5px 9px;font-size:13px}.checkbox-line{color:#41515e;align-items:center;gap:8px;font-size:13px;font-weight:700;display:inline-flex}.checkbox-line input{accent-color:#1f6f54;width:16px;min-height:16px}.sentinel-diagnostics{background:#f8fafb;border:1px solid #d9e1e8;border-radius:8px;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:12px;display:grid;overflow:hidden}.sentinel-diagnostic-cell{border-right:1px solid #d9e1e8;min-height:62px;padding:11px 13px}.sentinel-diagnostic-cell:last-child{border-right:0}.sentinel-diagnostic-cell span{color:#5c6b78;font-size:12px;display:block}.sentinel-diagnostic-cell strong{color:#17202a;margin-top:7px;font-size:20px;line-height:1.1;display:block}.quarter-card-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px;display:grid}.quarter-card{background:#fff;border:1px solid #d9e1e8;border-radius:8px;overflow:hidden}.quarter-preview{aspect-ratio:4/3;color:#1f6f54;background:linear-gradient(135deg,#1f6f542e,#265f8024),#edf3f0;place-items:center;font-size:30px;font-weight:800;display:grid;position:relative}.quarter-preview img{object-fit:cover;width:100%;height:100%}.quarter-preview .status-badge{position:absolute;top:8px;right:8px;box-shadow:0 1px 3px #131f2b2e}.quarter-body{padding:11px}.quarter-body h4{color:#17202a;letter-spacing:0;margin:0 0 8px;font-size:16px}.quarter-body dl{gap:6px;margin:0;display:grid}.quarter-body dl div{color:#41515e;justify-content:space-between;gap:10px;font-size:12px;display:flex}.quarter-body dt,.quarter-body dd{margin:0}.quarter-body dd{color:#17202a;font-weight:700}.scene-card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0 0 14px;display:grid}.scene-card{background:#fff;border:1px solid #d9e1e8;border-radius:8px;grid-template-columns:132px minmax(0,1fr);gap:12px;padding:12px;display:grid}.scene-card-header{grid-column:1/-1;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.scene-card-header h4{overflow-wrap:anywhere;color:#17202a;letter-spacing:0;margin:3px 0 0;font-size:15px;line-height:1.25}.scene-preview{aspect-ratio:4/3;color:#1f6f54;background:linear-gradient(135deg,#1f6f5424,#52708429),#edf3f0;border:1px solid #d9e1e8;border-radius:8px;place-items:center;width:132px;font-size:24px;font-weight:800;display:grid;overflow:hidden}.scene-preview img{object-fit:cover;width:100%;height:100%}.scene-field-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 10px;min-width:0;display:grid}.scene-field{min-width:0}.scene-field span{color:#5c6b78;font-size:11px;line-height:1.25;display:block}.scene-field strong{overflow-wrap:anywhere;color:#17202a;margin-top:3px;font-size:13px;line-height:1.25;display:block}.scene-fallback{grid-column:2;gap:6px;min-width:0;display:grid}.scene-fallback>span{color:#5c6b78;font-size:11px;line-height:1.25}.scene-fallback div{flex-wrap:wrap;gap:6px;display:flex}.scene-fallback-pill{overflow-wrap:anywhere;color:#31414f;background:#f6f8fa;border:1px solid #d9e1e8;border-radius:999px;max-width:100%;padding:4px 8px;font-size:12px;line-height:1.25}.scene-source-link{color:#265f80;grid-column:2;width:fit-content;font-size:13px;font-weight:700;text-decoration:none}.scene-source-link:hover{text-decoration:underline}.table-scroll{border:1px solid #d9e1e8;border-radius:8px;overflow-x:auto}table{border-collapse:collapse;background:#fff;width:100%;min-width:760px}th,td{text-align:left;border-bottom:1px solid #d9e1e8;padding:11px 12px;font-size:13px}th{color:#41515e;background:#f4f7f9;font-weight:700}tr:last-child td{border-bottom:0}.artifact-summary{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.artifact-summary span{color:#41515e;border:1px solid #d9e1e8;border-radius:8px;min-height:28px;padding:5px 9px;font-size:13px}.artifact-list{gap:8px;display:grid}.artifact-row{background:#fff;border:1px solid #d9e1e8;border-radius:8px;grid-template-columns:minmax(180px,1.6fr) minmax(90px,.7fr) minmax(80px,.5fr) minmax(140px,.9fr) auto;align-items:center;gap:10px;min-height:54px;padding:10px 12px;display:grid}.artifact-row div{min-width:0}.artifact-row strong,.artifact-row span,.artifact-row time{overflow-wrap:anywhere;min-width:0;font-size:13px;display:block}.artifact-row strong{color:#17202a}.artifact-row span,.artifact-row time{color:#5c6b78}.artifact-link{color:#265f80;white-space:nowrap;border:1px solid #cdd8e1;border-radius:8px;justify-self:end;padding:7px 10px;font-size:13px;font-weight:700;text-decoration:none}.artifact-link:hover{background:#f4f7f9}.audit-log{gap:10px;margin:0;padding:0;list-style:none;display:grid}.audit-log li{border-bottom:1px solid #d9e1e8;grid-template-columns:150px 110px auto minmax(0,1fr);align-items:center;gap:10px;min-height:46px;padding:10px 0;display:grid}.audit-log time,.audit-log p{color:#5c6b78;font-size:13px}.audit-log strong{color:#17202a;font-size:13px}.audit-log p{overflow-wrap:anywhere;margin:0}.status-badge{white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;width:fit-content;min-height:24px;padding:3px 9px;font-size:12px;font-weight:700;line-height:1.2;display:inline-flex}.status-badge--neutral{color:#41515e;background:#eef2f5}.status-badge--info{color:#265f80;background:#e3f0f5}.status-badge--success{color:#1f6f54;background:#e2f2ea}.status-badge--warning{color:#946200;background:#fff3d3}.status-badge--danger{color:#a33b31;background:#fde2df}.alert{border-radius:8px;grid-column:1/-1;padding:12px 14px;font-weight:700}.alert--danger{color:#8f2f28;background:#fdecea;border:1px solid #e5a4a0}.alert--warning{color:#7c5400;background:#fff8e5;border:1px solid #e6c671;margin:14px 0 0}.alert--compact{margin:0 0 12px}.empty-state,.empty-detail{color:#5c6b78;text-align:center;border:1px dashed #cdd8e1;border-radius:8px;place-items:center;min-height:150px;padding:18px;display:grid}.empty-state--inline{min-height:84px}.empty-detail{min-height:680px}.empty-detail p{max-width:460px;margin:8px 0 0;line-height:1.45}@media (width<=1180px){.app-topbar,.workspace{grid-template-columns:1fr}.left-rail{grid-template-columns:minmax(280px,.9fr) minmax(360px,1.1fr)}}@media (width<=860px){.app-topbar{padding:22px 18px}.app-topbar h1{font-size:24px}.workspace{width:calc(100% - 24px);margin-top:12px}.status-summary,.metrics-strip,.left-rail,.detail-grid,.quarter-card-grid,.scene-card-grid,.sentinel-diagnostics{grid-template-columns:1fr}.metric-cell,.sentinel-diagnostic-cell{border-bottom:1px solid #d9e1e8;border-right:0}.metric-cell:last-child,.sentinel-diagnostic-cell:last-child{border-bottom:0}.detail-header,.section-title--row{flex-direction:column;align-items:stretch}.detail-actions{justify-content:stretch}.detail-actions button,.create-form button{width:100%}.field-row,.audit-log li,.artifact-row,.user-row{grid-template-columns:1fr}.artifact-summary,.user-strip{justify-content:flex-start}.artifact-link{justify-self:start}.scene-card{grid-template-columns:1fr}.scene-preview{width:100%}.scene-fallback,.scene-source-link{grid-column:1}}.organizations-pane{min-height:280px}.muted-counter{color:#41515e;border:1px solid #d8e0e7;border-radius:8px;justify-content:center;align-items:center;min-width:32px;height:28px;font-size:13px;font-weight:700;display:inline-flex}.organization-form{border-bottom:1px solid #e3e9ee;gap:10px;padding:18px 18px 12px;display:grid}.organization-list{gap:8px;max-height:290px;padding:12px 18px;display:grid;overflow:auto}.organization-row{color:#17202a;text-align:left;background:#fff;border:1px solid #d9e1e8;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 10px;width:100%;min-height:64px;padding:10px 12px;display:grid}.organization-row:hover,.organization-row.is-active{background:#f2f8fa;border-color:#2f7a9d}.organization-row strong{overflow-wrap:anywhere;min-width:0}.organization-row span{color:#5c6b78;font-size:12px}.organization-row span:last-child{grid-column:1/-1}.organization-footer{color:#5c6b78;justify-content:space-between;gap:12px;padding:0 18px 16px;font-size:12px;display:flex}.portfolio-panel{margin-bottom:18px}.portfolio-controls{grid-template-columns:minmax(140px,180px) minmax(220px,1fr);align-items:center;gap:10px 14px;margin-top:14px;display:grid}.portfolio-controls .input-label{margin:0}.portfolio-metrics{background:#d8e0e7;border:1px solid #d8e0e7;border-radius:8px;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin-top:14px;display:grid;overflow:hidden}.portfolio-metrics .metric{background:#fff}.history-panel{gap:12px;display:grid}.history-summary{background:#f8fafb;border:1px solid #d9e1e8;border-radius:8px;grid-template-columns:repeat(5,minmax(0,1fr));display:grid;overflow:hidden}.history-summary-cell{border-right:1px solid #d9e1e8;min-width:0;min-height:66px;padding:11px 13px}.history-summary-cell:last-child{border-right:0}.history-summary-cell span{color:#5c6b78;font-size:12px;line-height:1.25;display:block}.history-summary-cell strong{overflow-wrap:anywhere;color:#17202a;margin-top:7px;font-size:19px;line-height:1.15;display:block}.history-summary-cell .status-badge{display:inline-flex}.history-table-scroll table{min-width:860px}.portfolio-history{gap:10px;margin-top:16px;display:grid}@media (width<=900px){.portfolio-controls,.portfolio-metrics,.history-summary{grid-template-columns:1fr}.history-summary-cell{border-bottom:1px solid #d9e1e8;border-right:0}.history-summary-cell:last-child{border-bottom:0}}.admin-pane{min-height:280px}.user-form{border-bottom:1px solid #e3e9ee;gap:10px;padding:18px 18px 12px;display:grid}.user-list{gap:8px;max-height:320px;padding:12px 18px 16px;display:grid;overflow:auto}.user-row{background:#fff;border:1px solid #d9e1e8;border-radius:8px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;min-height:58px;padding:10px 12px;display:grid}.user-row div{min-width:0}.user-row strong,.user-row span{overflow-wrap:anywhere;min-width:0;display:block}.user-row strong{color:#17202a;font-size:14px}.user-row div span{color:#5c6b78;margin-top:3px;font-size:12px}.artifact-actions{flex-wrap:wrap;gap:8px;margin:0 0 12px;display:flex}.artifact-actions .ghost-button{min-height:34px;padding:7px 10px;font-size:13px}button.artifact-link{cursor:pointer;background:#fff}button.artifact-link:disabled{cursor:default}:root{color:#17202a;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#eef2f5;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Arial,sans-serif}*{box-sizing:border-box}html,body,#root{width:100%;min-height:100%}body{background:#eef2f5;margin:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}
