@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');

:root{--ink:#18283b;--muted:#8190a0;--border:#e7edf1;--bg:#f5f8f9;--navy:#11243a;--blue:#2d76e4;--green:#139e71;--gold:#e3a54e;--red:#d7664d;--shadow:0 15px 50px rgba(21,45,68,.11)}
*{box-sizing:border-box}html,body{height:100%;margin:0}body{font-family:'DM Sans',Arial,sans-serif;color:var(--ink);background:var(--bg);font-size:14px}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #a3c7ff;outline-offset:2px}.hidden{display:none!important}.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.app-shell{height:100dvh;min-height:560px;display:flex;overflow:hidden}.sidebar{width:414px;min-width:350px;max-width:460px;flex:none;z-index:900;display:flex;flex-direction:column;background:#fff;box-shadow:7px 0 36px rgba(23,43,68,.07)}.brand-bar{height:82px;display:flex;align-items:center;padding:18px 28px;border-bottom:1px solid var(--border);gap:12px;flex:none}.brand-icon{width:40px;height:40px;border-radius:13px;background:#10273c;display:flex;align-items:end;justify-content:center;gap:3px;padding:10px 9px}.brand-icon span{width:5px;border-radius:3px;background:#fff}.brand-icon span:nth-child(1){height:11px}.brand-icon span:nth-child(2){height:20px;background:#60b4f0}.brand-icon span:nth-child(3){height:15px}.brand-copy{display:flex;flex-direction:column;gap:1px}.brand-copy strong{font-family:Manrope,sans-serif;font-weight:800;font-size:21px;letter-spacing:-.8px}.brand-copy strong span{color:var(--blue)}.brand-copy small{font-size:10px;color:#95a2ae;letter-spacing:1.1px;text-transform:uppercase;font-weight:700}.icon-button{margin-left:auto;border:1px solid var(--border);border-radius:11px;background:#fff;width:35px;height:35px;display:grid;place-items:center;color:#4e6276;font-size:18px;transition:.2s}.icon-button:hover{background:#f2f7fb}.sidebar-scroll{overflow:auto;scrollbar-width:thin;scrollbar-color:#d9e1e8 transparent;flex:1}.welcome{padding:29px 29px 18px}.eyebrow{display:flex;align-items:center;gap:7px;color:#5d82aa;letter-spacing:1.7px;font-size:10px;font-weight:800}.status-dot{height:7px;width:7px;border-radius:50%;background:#3dbb93}.welcome h1{font-family:Manrope,sans-serif;font-size:29px;line-height:1.25;letter-spacing:-1.1px;margin:14px 0 9px}.welcome em{font-style:normal;color:#367cde}.welcome p{font-size:12.5px;color:#8b98a6;line-height:1.65;margin:0}.demo-banner{margin:2px 27px 26px;padding:12px 13px;border:1px solid #deeafa;background:#f3f8ff;border-radius:12px;display:flex;gap:11px;align-items:center}.demo-banner strong,.demo-banner small{display:block}.demo-banner strong{font-size:11.5px;color:#30609e}.demo-banner small{font-size:10.5px;color:#7c93b3;margin-top:3px}.spark-icon{font-size:18px;color:#4d89df;line-height:1}.control-section{padding:0 28px 28px;border-bottom:1px solid var(--border);margin-bottom:26px}.section-heading{display:flex;align-items:center;gap:10px;margin-bottom:19px}.section-heading>span{display:grid;place-items:center;background:#eff5f9;color:#7191a8;width:23px;height:23px;border-radius:8px;font-size:10px;font-weight:800}.section-heading h2{font-family:Manrope,sans-serif;font-size:14px;font-weight:800;letter-spacing:-.3px;margin:0}.section-heading>small{margin-left:auto;color:var(--muted);font-size:10px}.field-label{display:block;font-weight:700;color:#506377;font-size:11px;margin-bottom:8px}.field-top{margin-top:19px}.select-wrap{position:relative}.select-wrap:after{content:'⌄';position:absolute;right:14px;top:7px;font-size:19px;color:#9aafbe;pointer-events:none}.select-wrap select{width:100%;height:43px;border:1px solid #e4ebf0;border-radius:10px;background:#fbfcfd;color:#263a4e;padding:0 35px 0 12px;appearance:none;font-size:12.5px;font-weight:600}.radius-header{display:flex;justify-content:space-between;align-items:center;margin-top:25px;margin-bottom:10px}.radius-header .field-label{margin:0}.radius-value{font-family:Manrope,sans-serif;color:#2677dc;font-size:23px;font-weight:800;line-height:1}.radius-value small{font-family:'DM Sans',sans-serif;font-size:10px;color:#8096ae;font-weight:700}input[type=range]{width:100%;accent-color:#2b82e7;cursor:pointer;height:5px;display:block;margin:15px 0}.slider-ticks{display:flex;justify-content:space-between;color:#a3b0bc;font-size:10px}.nearby-summary{display:flex;align-items:center;gap:10px;padding:13px;background:#f4faf7;border:1px solid #e2f1e8;border-radius:12px;margin-top:24px}.nearby-symbol{height:33px;width:33px;display:grid;place-items:center;border-radius:9px;color:#1da874;background:#dff4e9;font-size:22px}.nearby-summary strong,.nearby-summary small{display:block}.nearby-summary strong{font-size:11.5px;color:#237a58}.nearby-summary small{font-size:10px;color:#7da193;margin-top:3px}.subtle-button{margin-left:auto;border:0;background:#dff4e9;color:#17865b;border-radius:8px;padding:8px 10px;font-size:10px;font-weight:800}.subtle-button:hover{background:#c7edd8}
.property-section{padding-bottom:25px}.search-field{height:42px;border:1px solid var(--border);border-radius:10px;display:flex;align-items:center;background:#fbfcfd;padding:0 12px;gap:8px}.search-field>span{font-size:23px;line-height:1;color:#a0afbc}.search-field input{background:transparent;border:0;outline:none;width:100%;font-size:11.5px;color:var(--ink)}.search-field input::placeholder{color:#a0acb8}.list-filter{display:flex;gap:7px;margin:13px 0 15px}.filter-pill{border:1px solid #e5ebef;background:#fff;color:#93a1af;border-radius:20px;padding:7px 11px;font-size:10px;font-weight:700}.filter-pill.active{background:#1f3851;color:#fff;border-color:#1f3851}.property-list{max-height:350px;overflow:auto;padding-right:4px;scrollbar-width:thin;scrollbar-color:#d7e0e7 transparent}.property-item{display:flex;align-items:center;gap:10px;padding:11px 7px;border-bottom:1px solid #f0f3f5;min-width:0}.property-item:last-child{border-bottom:0}.property-item:hover{background:#f8fafb}.property-item.is-origin{background:#f5f9ff}.property-check{display:flex;align-items:center;justify-content:center;width:20px;height:20px;flex:none}.property-check input{accent-color:#d69a38;width:16px;height:16px}.property-main{min-width:0;flex:1;cursor:pointer}.property-main strong{font-size:11.5px;font-weight:700;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.property-main small{font-size:10px;color:#98a6b2;display:block;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.property-distance{font-size:10px;font-weight:700;color:#8b9aa8;white-space:nowrap}.property-distance.in-radius{color:#1b9f73}.origin-label{font-size:9px;background:#e4f0ff;border-radius:6px;padding:4px 6px;color:#337ed0;font-weight:800}.empty-state{padding:20px 12px;text-align:center;color:#9aa8b5;font-size:12px;line-height:1.6}.route-section{border-bottom:0;margin-bottom:13px;padding-bottom:15px}.route-selection{display:flex;justify-content:space-between;align-items:center}.route-selection strong{font-size:11px}.text-button{background:transparent;border:0;color:#6c91b8;font-weight:700;font-size:10.5px}.selected-chips{display:flex;flex-wrap:wrap;gap:7px;margin:13px 0 16px}.muted-small{font-size:11px;color:#9babbb;margin:0}.stop-chip{display:flex;gap:6px;align-items:center;border:1px solid #f3ddbd;background:#fff9f0;border-radius:8px;padding:7px 8px;font-size:10px;font-weight:700;color:#946d30;max-width:100%}.stop-chip span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.stop-chip button{border:0;background:transparent;color:#bc9c72;font-size:14px;line-height:10px;padding:0 1px}.check-row{display:flex;align-items:center;gap:9px;font-size:11px;color:#6e7f91;margin-bottom:16px}.check-row input{accent-color:#246ee2}.primary-button{display:flex;align-items:center;justify-content:center;gap:10px;background:#246ed9;color:white;border:0;padding:13px 15px;border-radius:11px;font-weight:800;font-size:12px;box-shadow:0 7px 20px rgba(32,103,205,.2);width:100%;transition:transform .2s,background .2s}.primary-button:hover{background:#1e5fbe;transform:translateY(-1px)}.button-icon{font-size:17px}.button-arrow{margin-left:auto;font-size:17px}.route-section .footnote{text-align:center;font-size:10px;color:#a0afbb;line-height:1.5;margin:10px 0}.route-result{border:1px solid #dce8f6;background:#f6faff;border-radius:13px;padding:13px;margin-top:16px}.route-result-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.route-result-head strong{font-size:11.5px}.result-type{font-size:9px;color:#5588bd;background:#e3f0fc;border-radius:6px;padding:5px 7px}.route-stats{display:flex;gap:10px;margin-top:14px}.route-stat{flex:1}.route-stat b{font-family:Manrope,sans-serif;font-size:17px;display:block}.route-stat small{font-size:9px;color:#91a2b4}.route-steps{border-top:1px solid #e0ebf6;margin-top:12px;padding-top:11px}.route-step{display:flex;align-items:center;gap:9px;font-size:10.5px;padding:6px 0}.route-step i{font-style:normal;display:grid;place-items:center;border-radius:50%;background:#e1eefb;color:#3476c8;height:21px;width:21px;font-weight:800;font-size:9px}.route-error{color:#b85048;font-size:11px;line-height:1.5}.data-section{padding:21px 27px;background:#f7f9fa;margin:0 14px 20px;border-radius:13px}.data-section h3{font-size:11.5px;margin:0;font-weight:800}.data-section p{font-size:10.5px;line-height:1.5;color:#93a2ae;margin:7px 0 14px}.data-actions{display:flex;gap:8px}.secondary-button,.outline-button{border:1px solid #d8e4ee;background:#fff;color:#3272bd;padding:10px 12px;border-radius:9px;font-weight:800;font-size:10.5px}.secondary-button{background:#e6f1ff;border-color:#e6f1ff}.secondary-button:hover,.outline-button:hover{filter:brightness(.97)}.reset-button{border:0;background:transparent;color:#a6b2bd;font-size:9.5px;text-decoration:underline;display:block;margin:12px 0 0;padding:0}.sidebar-footer{flex:none;height:39px;border-top:1px solid var(--border);display:flex;gap:8px;align-items:center;justify-content:center;color:#acb7c1;font-size:9.5px}.footer-dot{font-size:7px;color:#d0dae3}
.map-area{position:relative;flex:1;min-width:0;overflow:hidden;background:#e9f0e8}#map{height:100%;width:100%;z-index:0}.map-loading{position:absolute;inset:0;background:#edf1ee;z-index:1;display:flex;align-items:center;justify-content:center;gap:10px;color:#61758a}.map-loading.hidden{display:none}.loading-ring{height:20px;width:20px;border:3px solid #c2d7e7;border-top-color:#2b83d7;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.map-topbar{position:absolute;left:28px;right:28px;top:27px;display:flex;justify-content:space-between;align-items:flex-start;gap:16px;pointer-events:none;z-index:450}.map-status{display:flex;flex-direction:column;gap:4px;border-radius:13px;background:#fff;box-shadow:var(--shadow);padding:13px 18px 13px 31px;position:relative}.live-dot{height:7px;width:7px;position:absolute;top:18px;left:16px;background:#28aa7e;border-radius:50%}.map-status strong{font-family:Manrope,sans-serif;font-size:12px;font-weight:800}.map-status small{font-size:10px;color:#9cabb7}.map-top-actions{display:flex;gap:8px}.map-button{pointer-events:auto;border:1px solid #e5ecef;background:#fff;color:#5c7084;border-radius:11px;padding:11px 13px;font-size:11px;font-weight:800;box-shadow:var(--shadow)}.map-button:hover{background:#f5f9fb}.map-status{pointer-events:auto}.map-bottom-row{position:absolute;left:28px;right:28px;bottom:28px;z-index:450;display:flex;align-items:flex-end;justify-content:space-between;gap:15px;pointer-events:none}.map-legend{background:#fff;border-radius:12px;padding:13px 15px;box-shadow:var(--shadow);display:flex;flex-wrap:wrap;gap:12px;font-size:10px;color:#688093}.map-legend>span{display:flex;align-items:center;gap:6px}.legend-dot{height:9px;width:9px;border-radius:50%;display:inline-block}.legend-dot.origin{background:#2c7add}.legend-dot.nearby{background:#139e71}.legend-dot.chosen{background:#de9b32}.legend-dot.outside{background:#9eacb9}.map-count{background:#fff;box-shadow:var(--shadow);border-radius:12px;padding:12px 16px;display:flex;align-items:center;gap:8px}.map-count strong{font-family:Manrope,sans-serif;font-size:20px;color:#2f77cf}.map-count span{font-size:10px;color:#8292a1}.marker-shell{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;border:3px solid #fff;box-shadow:0 3px 10px rgba(22,37,54,.3);font-family:Manrope,sans-serif;font-size:12px;font-weight:800;color:white;transition:.15s;cursor:pointer}.marker-shell.marker-origin{background:#2c79e0;width:35px;height:35px}.marker-shell.marker-nearby{background:#18a77a}.marker-shell.marker-chosen{background:#e3a044}.marker-shell.marker-outside{background:#9badba}.marker-shell:hover{transform:scale(1.18)}.leaflet-container{font-family:'DM Sans',Arial,sans-serif!important}.leaflet-control-attribution{font-size:9px!important}.property-detail{position:absolute;right:28px;top:90px;z-index:480;background:#fff;padding:17px;border-radius:15px;box-shadow:var(--shadow);width:min(310px,calc(100% - 56px))}.detail-top{display:flex;justify-content:space-between;align-items:start;gap:8px}.detail-top .eyebrow{font-size:9px;letter-spacing:1px}.detail-top h3{font-family:Manrope,sans-serif;margin:7px 0 4px;font-size:15px}.detail-close{background:none;border:0;color:#93a2af;font-size:15px}.detail-address{font-size:11px;color:#8b9cac;line-height:1.6}.detail-distance{font-size:11px;color:#2e8e68;margin:9px 0}.detail-actions{display:flex;gap:7px;margin-top:13px}.detail-actions button{flex:1;border:0;background:#eaf2fd;color:#3678bf;border-radius:8px;padding:9px 5px;font-weight:800;font-size:10px}.detail-actions button:last-child{background:#fff4e2;color:#ad792c}.toast{position:absolute;bottom:97px;left:50%;transform:translateX(-50%);background:#173149;color:#fff;border-radius:10px;box-shadow:var(--shadow);padding:12px 16px;z-index:800;min-width:220px;max-width:500px;text-align:center;font-size:12px}
.modal-backdrop{position:fixed;inset:0;background:rgba(13,28,41,.5);z-index:2000;display:flex;align-items:center;justify-content:center;padding:20px;backdrop-filter:blur(3px)}.modal-card{background:#fff;border-radius:18px;width:min(470px,100%);padding:27px;box-shadow:0 20px 80px rgba(10,25,44,.24)}.modal-header{display:flex;align-items:start;justify-content:space-between;gap:14px}.modal-header h2{font-family:Manrope,sans-serif;margin:7px 0 0;font-size:23px}.modal-intro{font-size:12px;line-height:1.7;color:#738494;margin:18px 0}.key-input-row{display:flex;gap:9px}.key-input-row input{min-width:0;flex:1;border:1px solid #dce5ec;border-radius:9px;padding:11px;font-size:12px}.key-status{color:#8a9aa8;font-size:11px;margin:11px 0 22px}.modal-actions{display:flex;align-items:center;gap:15px}.modal-actions .primary-button{width:auto;min-width:140px}.secondary-link{font-size:11px;color:#347acb;font-weight:800;text-decoration:none}.privacy-note{font-size:10px;color:#98a6b3;line-height:1.6;margin:19px 0 0;border-top:1px solid #edf0f2;padding-top:14px}
@media(max-width:900px){.sidebar{width:375px;min-width:315px}.brand-bar{padding:16px 21px}.welcome{padding-left:21px;padding-right:21px}.control-section{padding-left:21px;padding-right:21px}.demo-banner{margin-left:20px;margin-right:20px}.data-section{padding:19px}.map-topbar{left:16px;right:16px;top:16px}.map-bottom-row{left:16px;right:16px;bottom:16px}.property-detail{right:16px}}
@media(max-width:700px){.app-shell{display:block;height:auto;min-height:100dvh;overflow:visible}.sidebar{width:100%;max-width:none;min-width:0;box-shadow:none}.brand-bar{height:65px}.brand-copy strong{font-size:19px}.sidebar-scroll{overflow:visible}.welcome{padding:20px 20px 14px}.welcome h1{font-size:24px}.demo-banner{margin-bottom:20px}.control-section{margin-bottom:20px;padding-bottom:20px}.property-section{margin-top:0}.property-list{max-height:220px}.route-section{padding-bottom:10px}.sidebar-footer{display:none}.map-area{height:460px;min-height:460px}.map-topbar{left:11px;right:11px;top:12px}.map-button span{display:none}.map-button{padding:11px}.map-status{padding:10px 12px 10px 26px}.map-status small{font-size:9px}.live-dot{top:14px;left:12px}.map-legend{gap:8px;padding:9px;font-size:9px}.map-bottom-row{left:10px;right:10px;bottom:22px}.map-count{padding:10px}.map-count span{display:none}.property-detail{top:75px;right:10px}.toast{bottom:85px;max-width:90%}}
