:root{color:#17211b;background:#eef2ef;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0;overflow:hidden}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}.appShell{background:#e9eee9;width:100vw;height:100vh;position:relative;overflow:hidden}.mapSurface,.mapCanvas{position:absolute;inset:0}.mapCanvas{background:#dfe7df}.mapOverlay{color:#223026;z-index:3;background:#eff4efc7;justify-content:center;align-items:center;gap:10px;font-weight:700;display:flex;position:absolute;inset:0}.crosshair{z-index:2;pointer-events:none;width:36px;height:36px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.crosshair:before,.crosshair:after,.crosshair span:before,.crosshair span:after{content:"";background:#111f16;position:absolute}.crosshair:before{width:2px;height:12px;top:0;left:17px}.crosshair:after{width:2px;height:12px;bottom:0;left:17px}.crosshair span:before{width:12px;height:2px;top:17px;left:0}.crosshair span:after{width:12px;height:2px;top:17px;right:0}.topBar{top:max(14px, env(safe-area-inset-top));z-index:5;pointer-events:none;justify-content:space-between;align-items:center;gap:12px;display:flex;position:absolute;left:14px;right:14px}.topBar>div{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffe6;border-radius:8px;flex-direction:column;gap:2px;min-width:0;padding:10px 12px;display:flex;box-shadow:0 8px 28px #1d2d2224}.topBar strong{font-size:16px}.topBar span{color:#526159;font-size:12px}.topBar button{pointer-events:auto}.iconButton{color:#1c2a21;background:#ffffffeb;border:0;border-radius:8px;justify-content:center;align-items:center;width:42px;height:42px;display:inline-flex;box-shadow:0 8px 28px #1d2d2224}.bottomSheet{z-index:4;max-height:58vh;padding:10px 14px max(14px, env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fafcfaf5;border-radius:14px 14px 0 0;flex-direction:column;gap:12px;display:flex;position:absolute;bottom:0;left:0;right:0;overflow-y:auto;box-shadow:0 -16px 42px #18271d33}.sheetHandle{background:#c8d1cb;border-radius:999px;align-self:center;width:42px;height:4px}.originRow,.actionRow,.originText,.selectedSummary{align-items:center;display:flex}.originRow{justify-content:space-between;gap:12px}.originActions{flex:none;gap:8px;display:flex}.originText{gap:9px;min-width:0}.originText svg{color:#26734d;flex:none}.originText div{flex-direction:column;min-width:0;display:flex}.originText span{color:#617067;font-size:12px}.originText strong{text-overflow:ellipsis;white-space:nowrap;max-width:38vw;font-size:14px;overflow:hidden}.placeSearch{gap:8px;display:grid}.searchInputRow{background:#fff;border:1px solid #d8e0da;border-radius:8px;grid-template-columns:18px 1fr auto;align-items:center;gap:8px;height:42px;padding:0 6px 0 10px;display:grid}.searchInputRow svg{color:#526159}.searchInputRow input{color:#17211b;background:0 0;border:0;outline:0;min-width:0;font-weight:700}.searchInputRow button{color:#fff;background:#156b43;border:0;border-radius:7px;justify-content:center;align-items:center;min-width:58px;height:30px;font-size:12px;font-weight:800;display:inline-flex}.placeResults{gap:6px;display:grid}.placeResults button{color:#1d2b22;text-align:left;background:#fff;border:1px solid #d9e2dc;border-radius:8px;grid-template-columns:1fr auto;gap:2px 10px;min-width:0;padding:9px 10px;display:grid}.placeResults strong,.placeResults small{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.placeResults span{color:#607168;font-size:12px;font-weight:800}.placeResults small{color:#607168;grid-column:1/-1;font-size:12px;font-weight:700}.primarySmall,.secondarySmall,.primaryButton{color:#fff;background:#156b43;border:0;border-radius:8px;justify-content:center;align-items:center;gap:8px;font-weight:800;display:inline-flex}.primarySmall{min-width:108px;height:38px;padding:0 12px;font-size:13px}.secondarySmall{color:#1f3328;background:#f8faf8;border:1px solid #d4ddd7;border-radius:8px;min-width:76px;height:38px;padding:0 10px;font-size:13px;font-weight:800}.primaryButton{flex:1;height:44px;padding:0 16px}.controlsGrid{grid-template-columns:1fr;gap:10px;display:grid}.controlBlock{color:#526159;gap:7px;font-size:12px;font-weight:700;display:grid}.rangeControl{grid-template-columns:1fr 72px;align-items:center;gap:12px;display:grid}.rangeControl input{accent-color:#156b43;width:100%}.rangeControl strong{color:#17211b;text-align:right;font-size:14px}.segmentedControl{background:#edf3ef;border:1px solid #d8e0da;border-radius:8px;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:4px;display:grid}.segmentedControl button{color:#526159;background:0 0;border:0;border-radius:6px;min-width:0;height:32px;font-size:12px;font-weight:800}.segmentedControl button.selected{color:#fff;background:#156b43}.toggleRow{gap:10px;padding-bottom:2px;display:flex;overflow-x:auto}.toggleRow label{color:#243229;white-space:nowrap;background:#f8faf8;border:1px solid #d8e0da;border-radius:8px;align-items:center;gap:7px;min-height:34px;padding:0 10px;font-size:13px;font-weight:700;display:flex}.toggleRow input{accent-color:#156b43}.actionRow{gap:12px}.actionRow>span{color:#526159;text-align:right;min-width:70px;font-size:12px;font-weight:800}.progressBlock{gap:6px;display:grid}.progressBlock>div:first-child{color:#526159;justify-content:space-between;font-size:12px;font-weight:800;display:flex}.progressTrack{background:#dde5df;border-radius:999px;height:8px;overflow:hidden}.progressTrack i{border-radius:inherit;background:#156b43;height:100%;transition:width .18s;display:block}.errorBlock{color:#893b22;background:#fff5f1;border:1px solid #f0c9bd;border-radius:8px;grid-template-columns:20px 1fr;gap:8px;padding:10px;font-size:13px;font-weight:700;display:grid}.errorBlock div{grid-column:2;gap:8px;display:flex}.errorBlock button{color:#fff;background:#893b22;border:0;border-radius:7px;padding:6px 9px;font-size:12px;font-weight:800}.routeList{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.resultCount{color:#526159;font-size:13px;font-weight:800}.routeCard{color:#1d2b22;text-align:left;background:#fff;border:1px solid #d9e2dc;border-radius:8px;gap:4px;min-width:0;min-height:72px;padding:9px;display:grid}.routeCard.selected{border-color:#156b43;box-shadow:inset 0 0 0 1px #156b43}.routeCard span,.routeCard small{overflow-wrap:anywhere;color:#607168;font-size:12px;font-weight:800}.routeCard strong{font-size:17px}.selectedSummary{color:#394840;gap:8px;font-size:13px;font-weight:800}.debugPanel{background:#f8faf8;border:1px solid #d8e0da;border-radius:8px;gap:9px;padding:10px;display:grid}.debugHeader,.debugLegend,.debugAttempt{align-items:center;display:flex}.debugHeader{color:#526159;justify-content:space-between;font-size:12px;font-weight:800}.debugHeader strong{color:#17211b}.debugLegend{color:#607168;flex-wrap:wrap;gap:8px 12px;font-size:11px;font-weight:800}.debugLegend span{align-items:center;gap:5px;display:inline-flex}.debugLegend i{border-radius:999px;width:18px;height:3px;display:inline-block}.debugAccepted{background:#15803d}.debugNearMiss{background:#f97316}.debugRejected{background:#94a3b8}.debugEdge{background:#7c3aed}.debugList{gap:5px;display:grid}.debugAttempt{color:#1d2b22;background:#fff;border:1px solid #e3e9e5;border-radius:7px;gap:8px;min-width:0;padding:6px 8px;font-size:12px;font-weight:800}.debugAttempt.selected{border-color:#111827;box-shadow:inset 0 0 0 1px #111827}.debugAttempt span{color:#607168}.debugAttempt strong{flex:none}.debugAttempt small{color:#607168;text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.modalBackdrop{z-index:8;background:#0c140f4d;justify-content:center;align-items:flex-end;padding:16px;display:flex;position:absolute;inset:0}.settingsModal{background:#fff;border-radius:12px;width:min(420px,100%);box-shadow:0 24px 64px #0e161147}.modalHeader{justify-content:space-between;align-items:center;padding:14px 14px 8px;display:flex}.settingsModal dl{gap:0;margin:0;padding:0 14px 14px;display:grid}.settingsModal dl div{border-top:1px solid #edf1ee;justify-content:space-between;gap:18px;padding:10px 0;display:flex}.settingsModal dt{color:#65746b}.settingsModal dd{margin:0;font-weight:800}.spin{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width>=760px){.bottomSheet{border-radius:12px;width:420px;max-height:calc(100vh - 120px);bottom:24px;left:24px;right:auto}.topBar{left:24px;right:24px}.originText strong{max-width:250px}.controlsGrid{grid-template-columns:1fr 1fr}.modalBackdrop{align-items:center}}
