:root{color-scheme:light;font-family:Inter,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.4;--ink: #17212b;--muted: #627184;--soft: #eef2ee;--surface: #ffffff;--surface-strong: #f8faf7;--line: #d8e0dc;--accent: #0f766e;--accent-dark: #115e59;--blue: #2563eb;--blue-soft: #e7f0ff;--amber: #f59e0b;--danger: #b42318;--shadow: 0 18px 48px rgba(23, 33, 43, .14)}*{box-sizing:border-box}[hidden]{display:none!important}html,body{height:100%}body{margin:0;background:#f2f4ee;color:var(--ink);overflow:hidden}.app-shell{height:100dvh;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);gap:.75rem;padding:.75rem;overflow:hidden}.top-controls{display:grid;grid-template-columns:1fr;gap:.65rem;max-height:min(48dvh,24rem);overflow:auto;background:#fffffff5;border:1px solid var(--line);border-radius:8px;padding:.75rem;box-shadow:0 8px 28px #17212b14}.brand-strip{display:grid;grid-template-columns:2.4rem minmax(0,1fr) auto;gap:.65rem;align-items:center}.brand-mark{width:2.4rem;height:2.4rem;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;background:#173f3c;color:#fff;font-weight:800}.brand-copy{min-width:0;display:grid;gap:.1rem}.brand-copy strong{font-size:1rem;line-height:1.1}output{min-width:3.6rem;padding:.38rem .55rem;border-radius:999px;background:#e8efe9;color:#21413d;font-size:.9rem;font-weight:750;text-align:center}.control-group{display:flex;min-width:0;flex-direction:column;gap:.32rem}.control-group--search{min-width:min(22rem,100%)}.control-group--debug{min-width:min(100%,20rem)}.control-group--annotate{min-width:min(100%,22rem)}label,.label{color:#415163;font-size:.78rem;font-weight:700}input[type=text],input[type=number],input[type=search],select,button,.upload-button{width:100%;min-height:2.55rem;border:1px solid #bdcac4;border-radius:8px;background:var(--surface);color:var(--ink);font:inherit;letter-spacing:0}input[type=text],input[type=number],input[type=search],select{padding:.58rem .72rem}button,.upload-button{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;padding:.52rem .68rem;cursor:pointer;font-weight:700;white-space:nowrap}button{background:#f2f7f5;transition:background-color .16s ease,border-color .16s ease,color .16s ease,transform .16s ease}button:hover:not(:disabled){border-color:#7aa59c;background:#e8f2ef}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.62;cursor:not-allowed}#mapUpload{display:none}.upload-button{width:fit-content}.search-primary{padding:.7rem;border:1px solid #bfd4cc;border-radius:8px;background:var(--surface-strong)}.search-bar{display:grid;grid-template-columns:minmax(0,1fr) minmax(4.7rem,auto);gap:.45rem}.search-bar input{min-height:3rem;font-size:1rem;font-weight:650}#plotSearchButton{min-height:3rem;border-color:var(--accent-dark);background:var(--accent);color:#fff}#plotSearchButton:hover:not(:disabled){border-color:#0b4b45;background:var(--accent-dark)}.detection-summary{min-height:1.05rem;color:var(--muted);font-size:.76rem}.search-matches{display:grid;grid-template-columns:repeat(auto-fit,minmax(8.5rem,1fr));gap:.4rem}.search-match{flex-direction:column;align-items:flex-start;justify-content:flex-start;min-height:3.1rem;padding:.55rem .65rem;border-color:#c7d8cf;background:#fff;text-align:left}.search-match__main,.search-match__detail{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis}.search-match__main{color:#173f3c;font-size:.9rem;font-weight:800}.search-match__detail{color:var(--muted);font-size:.72rem;font-weight:550}.search-result{display:grid;gap:.42rem;border:1px solid #c7d8cf;border-radius:8px;background:#fff;padding:.62rem .7rem}.search-result__head{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.search-result__head strong{font-size:.98rem}.search-result__status{border-radius:999px;padding:.16rem .5rem;background:var(--blue-soft);color:#1d4ed8;font-size:.7rem;font-weight:800;text-transform:uppercase;white-space:nowrap}.search-result__details{display:grid;grid-template-columns:1fr;gap:.25rem .7rem;color:#4b5b6c;font-size:.78rem}.search-result__details span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.flow-controls{display:grid;grid-template-columns:1fr;gap:.6rem}.panel-launchers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem}.panel-toggle.is-active,.panel-tabs .filter-btn.is-active{border-color:var(--accent);background:#dff1eb;color:#0f4f49}.tools-menu,.dev-options{min-width:0}.tools-menu>summary,.dev-options>summary{display:inline-flex;width:fit-content;min-height:2.3rem;align-items:center;border:1px solid #bdcac4;border-radius:8px;background:#fff;color:#334155;cursor:pointer;font-size:.82rem;font-weight:750;list-style:none;padding:.45rem .68rem;-webkit-user-select:none;user-select:none}.tools-menu>summary::-webkit-details-marker,.dev-options>summary::-webkit-details-marker{display:none}.tools-menu>summary:before,.dev-options>summary:before{content:">";display:inline-block;margin-right:.35rem;transition:transform .16s ease}.tools-menu[open]>summary:before,.dev-options[open]>summary:before{transform:rotate(90deg)}.control-actions,.dev-options__body{display:grid;gap:.5rem;margin-top:.55rem;padding:.65rem;border:1px solid var(--line);border-radius:8px;background:#fbfcfa}.dev-options{border-top:1px solid #e3ebe6;padding-top:.55rem}.debug-toggles,.annotate-bar,.filters,.view-toggle{display:flex;flex-wrap:wrap;gap:.35rem}.annotate-bar{align-items:center}.annotate-bar input[type=number]{width:5.6rem}.filter-btn{width:auto;min-height:2.2rem;padding:.35rem .58rem;font-size:.8rem}.filter-btn.is-active{border-color:var(--blue);background:var(--blue-soft);color:#1d4ed8}#annotateToggle.is-active{border-color:#e11d48;background:#fce7f3;color:#be123c}.content-layout{position:relative;min-height:0;display:grid;grid-template-columns:minmax(0,1fr);overflow:hidden}.map-pane{position:relative;min-width:0;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden;border:1px solid #cbd6d1;border-radius:8px;background:#101820;padding:.5rem}.map-canvas{width:100%;height:100%;display:block;cursor:grab;touch-action:none}.map-canvas.is-panning{cursor:grabbing}.map-pane.annotate-mode .map-canvas{cursor:crosshair}.map-pane.annotate-mode .map-canvas.is-panning{cursor:grabbing}.map-tools{position:absolute;right:.75rem;top:.75rem;z-index:3;display:grid;grid-template-columns:2.35rem 3.1rem 2.35rem;gap:.32rem;border:1px solid rgba(189,202,196,.9);border-radius:8px;background:#fffffff2;box-shadow:0 10px 28px #10182029;padding:.32rem}.map-tools button{min-width:0;width:100%;min-height:2.25rem;height:2.25rem;padding:0;border-radius:6px}.state-card{max-width:24rem;padding:1rem;color:#e7f0ed;text-align:center}.state-card h1{margin:0 0 .35rem;font-size:1.25rem}.state-card p{margin:0;color:#b8c6c1}.loading-indicator{position:absolute;left:.75rem;right:.75rem;top:.75rem;z-index:2;display:flex;flex-direction:column;gap:.5rem;border:1px solid #c7d8cf;border-radius:8px;background:#fffffff5;box-shadow:var(--shadow);padding:.75rem}.loading-indicator__header{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem}.loading-indicator__header strong{font-size:.9rem}#mapProgress{width:100%;height:.72rem;accent-color:var(--accent)}#progressText{color:#475569;font-size:.8rem}.list-pane{position:fixed;left:.75rem;right:.75rem;bottom:.75rem;z-index:8;max-height:min(78dvh,38rem);min-height:18rem;display:flex;flex-direction:column;gap:.65rem;border:1px solid #cbd6d1;border-radius:8px;background:#fffffffa;box-shadow:var(--shadow);padding:.75rem;opacity:0;pointer-events:none;transform:translateY(calc(100% + 1.5rem));transition:opacity .18s ease,transform .22s ease}.list-pane.is-open{opacity:1;pointer-events:auto;transform:translateY(0)}.panel-head,.sale-panel__head,.list-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.panel-tabs{display:flex;gap:.35rem;border:1px solid #dbe5e0;border-radius:8px;background:#f6f9f7;padding:.25rem}.panel-close{width:2.35rem;min-height:2.35rem;padding:0;font-size:1.3rem;line-height:1}.panel-section{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:.55rem}.sale-panel h2,.list-head h2{margin:0;font-size:1rem}.sale-list{flex:1 1 auto;min-height:11rem;overflow:auto;display:grid;align-content:start;gap:.45rem;border:1px solid #dbe5e0;border-radius:8px;background:#f7faf8;padding:.45rem}.sale-empty,.list-empty{margin:0;color:var(--muted);font-size:.84rem}.sale-item{width:100%;min-height:3.5rem;display:grid;gap:.25rem;border:1px solid #d4ded9;border-radius:8px;background:#fff;padding:.56rem .65rem;text-align:left}.sale-item:hover:not(:disabled){border-color:var(--accent);background:#f0faf6}.sale-item.is-active{border-color:var(--blue);background:var(--blue-soft)}.sale-item__top{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem}.sale-item__plot{min-width:0;overflow:hidden;color:#101828;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.sale-item__sector{flex:0 0 auto;border-radius:999px;background:#e0f2fe;color:#0369a1;font-size:.72rem;font-weight:750;padding:.08rem .42rem}.sale-item__description{color:#4b5b6c;font-size:.78rem;line-height:1.3}.list-head-actions{display:flex;justify-content:flex-end}.plot-list-virtual{flex:1 1 auto;min-height:12rem;overflow:auto;border:1px solid #dbe5e0;border-radius:8px;background:#f7faf8}#plotListInner{position:relative}.plot-row{position:absolute;left:0;right:0;padding:0 .35rem}.plot-row-btn{width:100%;margin-top:3px;display:grid;gap:.25rem;overflow:hidden;border:1px solid #d4ded9;background:#fff;font-size:.82rem;text-align:left}.plot-row-btn--compact{height:42px;grid-template-columns:minmax(4.2rem,.8fr) minmax(0,1fr) auto auto;align-items:center}.plot-row-btn--detail{min-height:68px;grid-template-columns:1fr;align-content:center}.plot-main,.plot-detail-line{min-width:0;display:flex;align-items:center;gap:.45rem}.plot-number{color:#111827;font-weight:800;white-space:nowrap}.plot-confidence{color:#334155;font-variant-numeric:tabular-nums;white-space:nowrap}.plot-row.is-suggested .plot-row-btn{border-color:var(--amber);background:#fff7ed}.plot-row.is-active .plot-row-btn{border-color:var(--blue);background:var(--blue-soft)}.plot-row.is-hover .plot-row-btn{border-color:#8bb7fb}.plot-status{color:#4b5b6c;font-size:.67rem;font-weight:750;text-transform:uppercase}.plot-coords{margin-left:auto;color:#1f2937;font-variant-numeric:tabular-nums;white-space:nowrap}.plot-availability{color:var(--blue);font-size:.72rem}.plot-review{color:var(--accent);font-size:.72rem}.plot-meta{max-width:7rem;overflow:hidden;color:#4b5b6c;font-size:.7rem;text-overflow:ellipsis;white-space:nowrap}.warnings{flex:0 0 auto;min-height:1.2em;color:var(--danger);font-size:.82rem}@media(max-width:520px){.app-shell{padding:.55rem;gap:.55rem}.top-controls{max-height:50dvh;padding:.62rem}.brand-copy .detection-summary{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-bar{grid-template-columns:minmax(0,1fr) 4.35rem}.search-result__details span{white-space:normal}.sale-panel__head,.list-head{align-items:stretch;flex-direction:column}.list-pane{left:.55rem;right:.55rem;bottom:.55rem;max-height:82dvh}}@media(min-width:760px){.app-shell{padding:1rem;gap:1rem}.top-controls{grid-template-columns:minmax(12rem,.7fr) minmax(22rem,1.5fr) minmax(17rem,.9fr);align-items:start;max-height:32dvh;padding:.85rem}.brand-strip{align-self:center}.flow-controls{grid-template-columns:minmax(0,1fr);align-self:stretch}.control-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.dev-options{grid-column:1 / -1}.dev-options__body{grid-template-columns:repeat(3,minmax(10rem,1fr));align-items:end}.search-result__details{grid-template-columns:repeat(2,minmax(0,1fr))}.map-pane{padding:.75rem}.list-pane{top:calc(1rem + min(32dvh,16rem));right:1rem;bottom:1rem;left:auto;width:min(28rem,calc(100vw - 2rem));max-height:none;min-height:0;transform:translate(calc(100% + 1.5rem))}.list-pane.is-open{transform:translate(0)}}@media(min-width:1120px){.top-controls{grid-template-columns:minmax(12rem,.62fr) minmax(24rem,1.55fr) minmax(20rem,.9fr);max-height:28dvh}.list-pane{top:7.4rem;width:min(30rem,34vw)}}
