*{margin:0;padding:0;box-sizing:border-box}body{font-family:BricolageGrotesqueMedium,system-ui,sans-serif;height:100vh;overflow:hidden;background:#0e120a;color:#d8dbc8}#app{display:flex;flex-direction:column;height:100vh}@font-face{font-family:BricolageGrotesqueMedium;src:url(/fonts/BricolageGrotesque-Medium.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}#header{background:#0e120a;padding:10px 20px;display:flex;align-items:center;gap:12px;border-bottom:1px solid rgba(240,242,160,.13);z-index:1000;flex-shrink:0}#header h1{font-size:1.3rem;font-weight:700;color:#d8dbc8;letter-spacing:-.5px;font-family:BricolageGrotesqueMedium}#header h1 .meri{color:#f0f2a0}#header h1 .way{color:#e8c8f0;font-style:italic}#header-right{margin-left:auto;display:flex;align-items:center;justify-content:end;gap:12px}#sun-info{font-size:.82rem;font-weight:600;display:none;white-space:nowrap}#sun-info.visible{display:block}#sun-info.day{color:#f0f2a0}#sun-info.night{color:#e8c8f0}@media(max-width:600px){#sun-info{font-size:.7rem}}#search-panel{background:#0e120a;padding:10px 16px;display:flex;gap:8px;align-items:center;flex-wrap:wrap;border-bottom:1px solid rgba(240,242,160,.13);z-index:999;flex-shrink:0}.route-inputs{flex:1 1 100%;position:relative;display:flex;flex-direction:column;gap:8px}.input-wrap{flex:1;min-width:160px;position:relative}#swap-btn{position:absolute;right:24px;top:24px;z-index:2;width:30px;height:30px;border-radius:50%;border:1.5px solid rgba(240,242,160,.25);background:#1d2416;color:#f0f2a0;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1rem;line-height:1;transition:all 1s}#swap-btn:hover{background:#2a3320}#swap-btn:active{transform:scale(.88)}.swap-ico{display:inline-flex;transition:transform .5s cubic-bezier(.4,0,.2,1)}#search-panel input[type=text]{width:100%;padding:8px 36px 8px 12px;border:1.5px solid rgba(240,242,160,.2);border-radius:8px;font-size:.88rem;outline:none;transition:border-color .2s;background:#161b12;color:#d8dbc8}#search-panel input[type=text]::placeholder{color:#d8dbc866}#search-panel input[type=text]:focus{border-color:#f0f2a080}.geo-btn{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:26px;height:26px;border:none;background:none;padding:0;font-size:.9rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:4px;opacity:.5;transition:opacity .2s,background .2s}.geo-btn:hover{opacity:1;background:#f0f2a014}.geo-btn:disabled{opacity:.2;cursor:not-allowed}.geo-btn.loading{animation:geo-pulse .8s ease-in-out infinite;opacity:1}@keyframes geo-pulse{0%,to{opacity:1}50%{opacity:.2}}.dt-row{display:flex;gap:8px;align-items:center}#search-panel input[type=date],#search-panel input[type=time]{padding:8px 10px;border:1.5px solid rgba(240,242,160,.2);border-radius:8px;font-size:.82rem;outline:none;background:#161b12;color:#d8dbc8;color-scheme:dark}#search-btn{padding:8px 20px;background:#f0f2a0;color:#0e120a;border:none;border-radius:8px;font-size:.9rem;font-weight:700;cursor:pointer;transition:background .2s,opacity .2s;white-space:nowrap}#search-btn:hover{background:#e4e698}#search-btn:disabled{opacity:.5;cursor:not-allowed}#map{flex:1;z-index:1}#map .leaflet-interactive{cursor:pointer}#status{position:fixed;top:130px;left:50%;transform:translate(-50%);background:#0e120aeb;color:#d8dbc8;border:1px solid rgba(240,242,160,.2);padding:8px 18px;border-radius:20px;font-size:.84rem;z-index:3000;display:none;backdrop-filter:blur(4px);white-space:nowrap}#status.on{display:block}.toast{position:fixed;top:130px;left:50%;transform:translate(-50%) translateY(-8px);max-width:min(90vw,420px);padding:10px 18px;border-radius:14px;font-size:.88rem;line-height:1.35;text-align:center;z-index:4000;opacity:0;pointer-events:none;backdrop-filter:blur(4px);transition:opacity .2s ease,transform .2s ease}.toast.on{opacity:1;transform:translate(-50%) translateY(0)}.toast-error{background:#3c120ef0;color:#f7d9d2;border:1px solid rgba(240,120,90,.35)}.toast-success{background:#142610f0;color:#ddf0d2;border:1px solid rgba(140,220,110,.35)}#compass-wrap{position:fixed;top:120px;right:16px;z-index:2000;display:none;flex-direction:column;align-items:center;gap:4px}#compass-wrap.on{display:flex}#compass-box{width:72px;height:72px;background:#161b12;border-radius:50%;border:1px solid rgba(240,242,160,.2);display:flex;align-items:center;justify-content:center}#compass-label{font-size:.68rem;color:#d8dbc899;background:#161b12;border:1px solid rgba(240,242,160,.15);padding:2px 8px;border-radius:4px}.ac-dropdown{position:absolute;list-style:none;background:#161b12;border:1.5px solid rgba(240,242,160,.2);border-radius:10px;box-shadow:0 6px 20px #0006;z-index:9999;max-height:220px;overflow-y:auto;padding:4px 0}.ac-item{padding:8px 14px;cursor:pointer;display:flex;flex-direction:column;gap:2px}.ac-item:hover{background:#f0f2a00f}.ac-line1{font-size:.84rem;font-weight:600;color:#e8ebd8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ac-line2{font-size:.75rem;color:#8a8f7a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#results{position:fixed;bottom:0;left:0;right:0;background:#0e120a;border-radius:16px 16px 0 0;border-top:1px solid rgba(240,242,160,.13);box-shadow:0 -4px 24px #0006;z-index:2000;max-height:82vh;overflow:hidden;transform:translateY(100%);transition:transform .32s cubic-bezier(.4,0,.2,1)}#results.on{transform:translateY(calc(100% - 144px))}#results.expanded{transform:translateY(0);overflow-y:auto}#drawer-handle{display:flex;justify-content:center;align-items:center;padding:10px 0 12px;cursor:pointer;user-select:none;touch-action:none}#drawer-bar{width:40px;height:4px;background:#f0f2a033;border-radius:2px;transition:background .15s}#drawer-handle:hover #drawer-bar{background:#f0f2a073}#share-btn{position:absolute;top:7px;right:12px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:#161b12;border:1px solid rgba(240,242,160,.2);border-radius:50%;color:#d8dbc8;cursor:pointer;transition:border-color .15s,color .15s}#share-btn:hover{border-color:#f0f2a073;color:#f0f2a0}#single-route-note{display:none;padding:9px 16px 11px;border-bottom:1.5px solid rgba(240,242,160,.1);font-size:.82rem;color:#d8dbc88c;text-align:center}#single-route-note.on{display:block}#weather-note{display:none;padding:9px 16px 11px;border-bottom:1.5px solid rgba(240,242,160,.1);font-size:.82rem;color:#d8dbc88c;text-align:center}#weather-note.on{display:block}#night-note{display:none;padding:9px 16px 11px;border-bottom:1.5px solid rgba(240,242,160,.1);font-size:.82rem;color:#d8dbc88c;text-align:center}#night-note.on{display:block}#results.night .ratio-wrap,#results.night .detail-split{display:none}#tabs{display:flex;border-bottom:1.5px solid rgba(240,242,160,.1);padding:0 16px}.tab-btn{flex:1;padding:10px 0;border:none;background:none;font-size:.88rem;font-weight:600;color:#d8dbc866;cursor:pointer;border-bottom:3px solid transparent;margin-bottom:-1.5px;transition:all .2s}.tab-btn.active{color:#f0f2a0;border-bottom-color:#f0f2a0}.tab-btn.shady.active{color:#e8c8f0;border-bottom-color:#e8c8f0}.tab-pane{display:none;padding:14px 16px}.tab-pane.active{display:block}.ratio-wrap{width:100%}.ratio-nums{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px;font-size:.8rem;color:#d8dbc880}.ratio-nums strong{font-size:1.5rem;font-weight:800}.ratio-shade-num{color:#e8c8f0}.ratio-sun-num{color:#f0f2a0}.ratio-track{height:14px;background:#f0f2a014;border-radius:8px;overflow:hidden}.ratio-fill{height:100%;background:linear-gradient(90deg,#e8c8f0,#f0f2a0 60%,#f0e060);border-radius:8px;transition:width .7s cubic-bezier(.4,0,.2,1)}.route-details{display:none;padding:4px 16px 20px}#results.expanded .route-details{display:block}.detail-stats{display:flex;justify-content:space-between;gap:24px;margin-bottom:14px}.detail-stat{display:flex;flex-direction:column;gap:2px}.stat-val{font-size:1.1rem;font-weight:800;color:#d8dbc8}.stat-lbl{font-size:.7rem;color:#d8dbc873;text-transform:uppercase;letter-spacing:.4px}.detail-split{display:flex;gap:10px}.detail-split-shade,.detail-split-sun{flex:1;display:flex;flex-direction:column;gap:3px;padding:10px 12px;border-radius:8px}.detail-split-shade{background:#e8c8f012;border:1px solid rgba(232,200,240,.15)}.detail-split-sun{background:#f0f2a012;border:1px solid rgba(240,242,160,.15)}.detail-split-shade .split-val{font-size:1rem;font-weight:700;color:#e8c8f0}.detail-split-sun .split-val{font-size:1rem;font-weight:700;color:#f0f2a0}.split-lbl{font-size:.72rem;color:#d8dbc873}.elev-val{letter-spacing:.5px}.elev-loading{animation:elev-pulse 1.2s ease-in-out infinite}@keyframes elev-pulse{0%,to{opacity:.25}50%{opacity:.7}}#about-btn{margin-left:8px;width:28px;height:28px;border-radius:50%;border:1.5px solid rgba(240,242,160,.2);background:transparent;color:#d8dbc880;font-size:.85rem;font-style:italic;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .2s,color .2s;flex-shrink:0}#about-btn:hover{border-color:#f0f2a0;color:#f0f2a0}#about-overlay{display:none;position:fixed;inset:0;background:#0006;z-index:3999;backdrop-filter:blur(2px)}#about-overlay.on{display:block}#about-drawer{position:fixed;top:0;right:0;width:340px;max-width:100vw;height:100%;background:#0e120a;border-left:1px solid rgba(240,242,160,.13);z-index:4000;box-shadow:-10px 0 30px #00000080;display:flex;flex-direction:column;transform:translate(100%);transition:transform .28s cubic-bezier(.4,0,.2,1)}#about-drawer.open{transform:translate(0)}#about-header{display:flex;align-items:center;justify-content:space-between;padding:16px 16px 12px;border-bottom:1px solid rgba(240,242,160,.1)}#about-lang{display:flex;gap:4px}.lang-btn{padding:4px 10px;border:1.5px solid rgba(240,242,160,.2);border-radius:6px;background:#161b12;font-size:.78rem;font-weight:600;color:#d8dbc899;cursor:pointer;transition:all .15s;text-decoration:none}.lang-btn:hover{border-color:#f0f2a0;color:#f0f2a0}.lang-btn.active{background:#f0f2a0;border-color:#f0f2a0;color:#0e120a}#about-close{width:30px;height:30px;border:none;background:none;font-size:1.3rem;color:#d8dbc880;cursor:pointer;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s}#about-close:hover{background:#f0f2a014;color:#d8dbc8}#about-body{flex:1;overflow-y:auto;padding:24px 20px;scrollbar-width:thin;scrollbar-color:rgba(240,242,160,.1) transparent}#about-body::-webkit-scrollbar{width:6px}#about-body::-webkit-scrollbar-track{background:transparent}#about-body::-webkit-scrollbar-thumb{background:#f0f2a01a;border-radius:10px}#about-body::-webkit-scrollbar-thumb:hover{background:#f0f2a033}.about-pane{display:none}.about-pane.active{display:block}.about-pane h2{font-size:1.4rem;font-weight:700;letter-spacing:-.5px;margin-bottom:6px}.about-pane h2 .meri{color:#f0f2a0}.about-pane h2 .way{color:#e8c8f0;font-style:italic}.about-tagline{font-size:.9rem;font-weight:600;color:#d8dbc8;margin-bottom:18px}.about-pane p{font-size:.88rem;color:#d8dbc8cc;line-height:1.65;margin-bottom:14px}.about-opensource{margin-top:20px;padding:12px 14px;background:#161b12;border:1px solid rgba(240,242,160,.1);border-left:3px solid #f0f2a0;border-radius:8px;font-size:.83rem;color:#d8dbc8bf;line-height:1.6}.about-opensource a{color:#e8c8f0;text-underline-offset:3px}.about-opensource a:hover{color:#f0deff}p.opensource-badge{background:#f0f2a026;color:#f0f2a0;font-size:.7rem;font-weight:700;padding:2px 8px;border-radius:4px;margin-bottom:6px;letter-spacing:.3px;width:fit-content}#about-links{padding:8px 20px;border-top:1px solid rgba(240,242,160,.1);display:flex;gap:10px}.about-link{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:9px 12px;border-radius:8px;border:1px solid rgba(240,242,160,.2);font-size:.85rem;font-weight:600;text-decoration:none;color:#d8dbc8;transition:border-color .2s,background .2s}.about-link:hover{border-color:#f0f2a066;background:#f0f2a00d}.github-link{color:#f0f2a0;border-color:#f0f2a04d;background:#f0f2a00d}.github-link:hover{border-color:#f0f2a099;background:#f0f2a01a}.kofi-link{color:#e8c8f0;border-color:#e8c8f04d;background:#e8c8f00d}.kofi-link:hover{border-color:#e8c8f099;background:#e8c8f01a}.footer-links{display:flex;justify-content:center;gap:8px;width:100%;padding:8px 24px}.footer-link{color:#d8dbc899;text-decoration:none;font-size:.82rem}.footer-link:hover{color:#f0f2a0}@media(max-width:600px){.input-wrap{flex:0 0 100%;min-width:0}.dt-row,#search-btn{width:100%}#about-drawer{width:100vw}#compass-wrap{top:200px}}
