@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@500;600;700;800&display=swap";:root{font-family:DM Sans,sans-serif;color:#172827;background:#f2f4ef;font-synthesis:none;--ink:#172827;--muted:#71807e;--line:#dfe5df;--panel:#fff;--green:#176f69;--green-dark:#123e3b;--cream:#f7f5ed;--amber:#e29a3b}*{box-sizing:border-box}html,body,#root{margin:0;min-width:320px;min-height:100%}body{background:radial-gradient(circle at 90% 0%,#e4ece5 0,transparent 27%),#f2f4ef}button,input,select{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh}.topbar{height:72px;padding:0 26px;display:flex;align-items:center;justify-content:space-between;color:#fff;background:linear-gradient(105deg,#102d2b,#173e3a 60%,#1d514a);box-shadow:0 8px 28px #14302d26;position:relative;z-index:20}.brand,.topbar-actions,.connection,.sidebar-heading,.view-switcher,.stat-card,.source-card,.notice,.list-toolbar,.pagination,.coordinate-link{display:flex;align-items:center}.brand{gap:12px}.brand-mark{width:40px;height:40px;border-radius:13px;display:grid;place-items:center;background:linear-gradient(145deg,#f3b35d,#d58d32);box-shadow:inset 0 1px #ffffff80,0 6px 18px #00000024}.brand strong{font:800 19px Manrope;letter-spacing:-.3px;display:block}.brand span{font-size:11px;color:#b9cfca;letter-spacing:.5px;text-transform:uppercase}.topbar-actions{gap:14px}.connection{gap:8px;font-size:12px;color:#c7d8d4}.connection i{width:8px;height:8px;border-radius:50%;background:#ef7464;box-shadow:0 0 0 4px #ef74641f}.connection.online i{background:#71d2a0;box-shadow:0 0 0 4px #71d2a01f}.icon-button{width:38px;height:38px;border:1px solid rgba(255,255,255,.16);border-radius:11px;background:#ffffff14;color:inherit;display:grid;place-items:center}.icon-button:hover{background:#ffffff24}.workspace{display:grid;grid-template-columns:282px minmax(0,1fr);min-height:calc(100vh - 72px)}.sidebar{padding:28px 22px;border-right:1px solid var(--line);background:#fafbf7e0;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.sidebar-heading{justify-content:space-between;margin-bottom:24px}.sidebar-heading>div>span,.eyebrow{color:#8b9997;font-size:10px;letter-spacing:1.5px;font-weight:700}.sidebar-heading h1{font:700 22px Manrope;margin:3px 0 0;letter-spacing:-.5px}.field-label{display:block;margin:0 0 7px;color:#5d6c6a;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.7px}.control{width:100%;height:42px;border:1px solid #d8dfda;border-radius:10px;padding:0 12px;background:#fff;color:var(--ink);outline:none;transition:.2s}.control:focus{border-color:#66a49e;box-shadow:0 0 0 3px #176f6917}select.control{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%235d6c6a' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 12px center}.input-with-icon{position:relative}.input-with-icon svg{position:absolute;left:12px;top:13px;color:#8c9997}.input-with-icon .control{padding-left:36px}.filter-divider{height:1px;background:var(--line);margin:22px 0}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}.check-row{display:flex;align-items:center;gap:9px;font-size:13px;color:#51615f;margin-top:14px;cursor:pointer}.check-row input{width:16px;height:16px;accent-color:var(--green)}.filter-actions{margin-top:22px}.primary-button{width:100%;height:44px;border:0;border-radius:11px;background:linear-gradient(135deg,#176f69,#135c57);box-shadow:0 8px 20px #176f6933;color:#fff;display:flex;align-items:center;justify-content:center;gap:8px;font-weight:700}.primary-button:hover{transform:translateY(-1px);box-shadow:0 10px 24px #176f6940}.text-button{width:100%;border:0;background:none;color:#71807e;font-size:12px;padding:12px}.source-card{gap:10px;margin-top:26px;padding:13px;border:1px solid #dde4df;border-radius:12px;background:#f4f7f3;color:#51706c}.source-card div{min-width:0}.source-card strong,.source-card span{display:block;overflow:hidden;text-overflow:ellipsis}.source-card strong{font-size:12px}.source-card span{font-size:10px;color:#84928f;margin-top:2px}.content{min-width:0;padding:27px}.content-header{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:20px}.content-header h2{font:700 25px Manrope;margin:4px 0 0;letter-spacing:-.7px}.view-switcher{padding:4px;background:#e6eae5;border-radius:11px}.view-switcher button{border:0;background:transparent;color:#677573;height:34px;padding:0 11px;border-radius:8px;display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600}.view-switcher button.active{background:#fff;color:#174f4b;box-shadow:0 3px 9px #1b353117}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.stat-card{gap:12px;background:#ffffffdb;border:1px solid #e0e5df;border-radius:14px;padding:15px 16px;box-shadow:0 4px 15px #20342e09}.stat-icon{width:36px;height:36px;border-radius:11px;background:#e8f2ee;color:var(--green);display:grid;place-items:center}.stat-card span,.stat-card strong{display:block}.stat-card span{font-size:11px;color:#7a8986}.stat-card strong{font:700 20px Manrope;margin-top:2px}.notice{gap:12px;border-radius:13px;padding:13px 15px;margin-bottom:15px}.error-notice{background:#fff1ee;color:#94453b;border:1px solid #f2d5cf}.notice strong,.notice span{display:block}.notice strong{font-size:13px}.notice span{font-size:12px;opacity:.8;margin-top:2px}.data-stage{height:calc(100vh - 270px);min-height:520px;display:grid;gap:12px}.mode-split{grid-template-columns:minmax(360px,1.08fr) minmax(430px,.92fr)}.mode-map,.mode-list{grid-template-columns:1fr}.map-panel,.list-panel{min-width:0;min-height:0;background:#fff;border:1px solid #dfe5df;border-radius:16px;overflow:hidden;box-shadow:0 10px 30px #1f332d0f;position:relative}.map-canvas{position:absolute;top:0;right:0;bottom:0;left:0}.map-empty{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:#657471;background:linear-gradient(145deg,#e9efea,#f7f8f5)}.map-empty span{font-size:12px;max-width:330px;text-align:center}.map-badge{position:absolute;left:14px;bottom:14px;z-index:2;background:#122d2be6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;border-radius:9px;padding:8px 11px;display:flex;align-items:center;gap:6px;font-size:11px;box-shadow:0 5px 14px #0000002e}.mapboxgl-ctrl-group{border-radius:10px!important;overflow:hidden;box-shadow:0 3px 14px #0000001f!important}.mapboxgl-ctrl-attrib{font-size:9px!important}.list-panel{display:flex;flex-direction:column}.list-toolbar{height:58px;flex:0 0 58px;justify-content:space-between;padding:0 16px;border-bottom:1px solid #e6eae6}.list-toolbar strong,.list-toolbar span{display:block}.list-toolbar strong{font:700 14px Manrope}.list-toolbar span{color:#899592;font-size:10px;margin-top:2px}.table-scroll{min-height:0;overflow:auto;flex:1}table{width:100%;border-collapse:collapse;font-size:12px}th{position:sticky;top:0;z-index:1;background:#f7f8f5;color:#82908e;text-transform:uppercase;letter-spacing:.5px;font-size:9px;text-align:left;padding:10px 12px;border-bottom:1px solid #e5e9e5}td{padding:11px 12px;border-bottom:1px solid #edf0ed;color:#4e5d5b}tbody tr{cursor:pointer;transition:.15s}tbody tr:hover{background:#f5faf7}tbody tr.selected{background:#eaf4f0;box-shadow:inset 3px 0 var(--green)}td strong,td span{display:block}td strong{color:#263936;font-size:12px}td span{color:#8b9896;font-size:9px;margin-top:2px}.row-arrow{width:28px;height:28px;border:0;border-radius:8px;background:#edf2ef;color:#52726e;display:grid;place-items:center}.empty-state{padding:50px 12px;display:flex;flex-direction:column;align-items:center;gap:5px;color:#8a9694}.empty-state strong{margin-top:5px}.empty-state span{font-size:11px}.pagination{min-height:52px;justify-content:space-between;padding:8px 12px;border-top:1px solid #e6eae6;background:#fafbf9}.pagination button{border:1px solid #dce2dd;border-radius:8px;background:#fff;height:32px;padding:0 9px;color:#52625f;display:flex;align-items:center;gap:3px;font-size:10px}.pagination button:disabled{opacity:.4;cursor:not-allowed}.pagination span{font-size:10px;color:#7f8d8a}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:39;border:0;background:#09181740;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.detail-drawer{position:fixed;z-index:40;right:0;top:0;width:min(520px,94vw);height:100vh;background:#fbfcf9;box-shadow:-20px 0 55px #0f252233;animation:drawer-in .24s ease-out}.drawer-header{min-height:130px;padding:26px 25px;display:flex;justify-content:space-between;color:#fff;background:linear-gradient(135deg,#143d39,#1c5d56)}.drawer-header span{color:#9fc4bd;font-size:10px;text-transform:uppercase;letter-spacing:1px}.drawer-header h3{font:700 23px Manrope;margin:5px 0 2px}.drawer-header p{margin:0;color:#d3e1de;font-size:12px}.drawer-scroll{height:calc(100vh - 130px);overflow:auto;padding:20px 22px 34px}.street-image{display:block;height:220px;border-radius:14px;overflow:hidden;position:relative;background:#dfe5df;margin-bottom:14px}.street-image img{width:100%;height:100%;object-fit:cover}.street-image>span{position:absolute;right:10px;bottom:10px;color:#fff;background:#122725cc;padding:7px 9px;border-radius:8px;display:flex;align-items:center;gap:5px;font-size:10px}.detail-highlights{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}.detail-highlights>div{padding:12px;background:#fff;border:1px solid #e1e6e1;border-radius:11px}.detail-highlights span,.detail-highlights strong{display:block}.detail-highlights span{color:#8a9795;font-size:9px}.detail-highlights strong{font:700 14px Manrope;margin-top:4px}.coordinate-link{gap:8px;padding:11px 12px;margin-bottom:19px;border-radius:10px;background:#eaf3f0;color:#17645f;text-decoration:none;font-size:11px}.coordinate-link span{flex:1}.detail-section{margin:20px 0}.detail-section h4{font:700 13px Manrope;margin:0 0 9px;color:#293c39}.entity-card{background:#fff;border:1px solid #e0e5e0;border-radius:11px;padding:12px;margin-bottom:8px}.entity-card>strong{font-size:12px;color:#24413d}.entity-card>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:10px}.entity-card span{font-size:11px;overflow:hidden;text-overflow:ellipsis}.entity-card small{display:block;color:#8a9795;font-size:9px;margin-bottom:2px}.key-value-grid{background:#fff;border:1px solid #e0e5e0;border-radius:11px;overflow:hidden}.key-value-grid>div{display:grid;grid-template-columns:42% 58%;gap:10px;padding:9px 11px;border-bottom:1px solid #edf0ed;font-size:10px}.key-value-grid>div:last-child{border-bottom:0}.key-value-grid span{color:#85928f}.key-value-grid strong{color:#354845;overflow-wrap:anywhere}.record-meta{margin-top:24px;padding-top:16px;border-top:1px solid #dfe4df}.record-meta>span,.record-meta>strong{display:block;font-size:10px}.record-meta>span{color:#8a9795}.record-meta>a{color:var(--green);font-size:11px;font-weight:700;text-decoration:none;display:flex;align-items:center;gap:5px;margin-top:10px}.spin{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes drawer-in{0%{transform:translate(100%)}}@media(max-width:1100px){.workspace{grid-template-columns:240px minmax(0,1fr)}.mode-split{grid-template-columns:1fr}.data-stage.mode-split{height:auto}.mode-split .map-panel{height:480px}.mode-split .list-panel{height:520px}.stats-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.topbar{height:64px;padding:0 14px}.brand span,.connection{display:none}.workspace{display:block}.sidebar{border-right:0;border-bottom:1px solid var(--line);padding:20px}.content{padding:18px 12px}.content-header{align-items:flex-start;flex-direction:column}.stats-grid{grid-template-columns:repeat(2,1fr)}.view-switcher{width:100%}.view-switcher button{flex:1;justify-content:center}.data-stage{height:620px;min-height:500px}.mode-split{height:auto}.mode-split .map-panel{height:420px}.mode-split .list-panel{height:560px}.stat-card{padding:12px}.detail-drawer{width:100vw}.entity-card>div{grid-template-columns:1fr}.drawer-header{padding:22px 18px}.drawer-scroll{padding:16px}.street-image{height:190px}}
