@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/plus-jakarta-sans-regular.woff2)format("woff2")}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/plus-jakarta-sans-500.woff2)format("woff2")}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/plus-jakarta-sans-700.woff2)format("woff2")}:root{--bg-panel:#fff;--bg-sidebar:#f9fafb;--text-main:#111827;--text-muted:#6b7280;--border-light:#e5e7eb;--border-input:#d1d5db;--accent-blue:#2563eb;--accent-red:#ef4444;--accent-green:#047857;--shadow-float:0 4px 6px #0003;--shadow-sidebar:-4px 0 15px #0000001a;--info-bg:#dbeafe;--info-text:#1e40af;--theme-trans:background-color .3s ease, color .3s ease, border-color .3s ease, border-top-color .3s ease, box-shadow .3s ease}body,html{background-color:var(--bg-panel);color:var(--text-main);overscroll-behavior-y:none}body,div,span,p,h1,h2,h3,hr,button,input,textarea,a,label,img{transition:var(--theme-trans)}.no-scrollbar,.sidebar,.sheet-content,.leaflet-popup-content-wrapper{scrollbar-width:thin;scrollbar-color:var(--border-input) transparent}.no-scrollbar::-webkit-scrollbar{width:5px;height:5px}.sidebar::-webkit-scrollbar{width:5px;height:5px}.sheet-content::-webkit-scrollbar{width:5px;height:5px}.leaflet-popup-content-wrapper::-webkit-scrollbar{width:5px;height:5px}.no-scrollbar::-webkit-scrollbar-track{background:0 0}.sidebar::-webkit-scrollbar-track{background:0 0}.sheet-content::-webkit-scrollbar-track{background:0 0}.leaflet-popup-content-wrapper::-webkit-scrollbar-track{background:0 0}.no-scrollbar::-webkit-scrollbar-thumb{background-color:var(--border-input);border-radius:10px;transition:background-color .3s!important}.sidebar::-webkit-scrollbar-thumb{background-color:var(--border-input);border-radius:10px;transition:background-color .3s!important}.sheet-content::-webkit-scrollbar-thumb{background-color:var(--border-input);border-radius:10px;transition:background-color .3s!important}.leaflet-popup-content-wrapper::-webkit-scrollbar-thumb{background-color:var(--border-input);border-radius:10px;transition:background-color .3s!important}.no-scrollbar::-webkit-scrollbar-thumb:hover{background-color:var(--text-muted)}.sidebar::-webkit-scrollbar-thumb:hover{background-color:var(--text-muted)}.sheet-content::-webkit-scrollbar-thumb:hover{background-color:var(--text-muted)}.leaflet-popup-content-wrapper::-webkit-scrollbar-thumb:hover{background-color:var(--text-muted)}.no-scrollbar::-webkit-scrollbar-button{background:0 0!important;width:0!important;height:0!important;display:none!important}.sidebar::-webkit-scrollbar-button{background:0 0!important;width:0!important;height:0!important;display:none!important}.sheet-content::-webkit-scrollbar-button{background:0 0!important;width:0!important;height:0!important;display:none!important}.leaflet-popup-content-wrapper::-webkit-scrollbar-button{background:0 0!important;width:0!important;height:0!important;display:none!important}.no-scrollbar::-webkit-scrollbar-button:vertical{background:0 0!important;width:0!important;height:0!important;display:none!important}.no-scrollbar::-webkit-scrollbar-button:horizontal{background:0 0!important;width:0!important;height:0!important;display:none!important}.dark-mode{--bg-panel:#1f2937;--bg-sidebar:#111827;--text-main:#f9fafb;--text-muted:#9ca3af;--border-light:#374151;--border-input:#4b5563;--accent-blue:#60a5fa;--accent-green:#10b981;--info-bg:#1e3a8a;--info-text:#bfdbfe}.auth-page{width:100vw;min-height:100dvh;color:var(--text-main);box-sizing:border-box;background-color:var(--bg-panel);padding:15px;display:flex;position:relative;overflow:hidden}.auth-bg-wrapper{z-index:0;background-color:#1f2937;position:absolute;inset:0}.auth-bg-wrapper img{object-fit:cover;width:100%;height:100%;display:block}.auth-bg-overlay{background:#0006;position:absolute;inset:0}.auth-hero-spacer{z-index:1;display:none}.auth-form-side{z-index:2;-webkit-backdrop-filter:blur(16px);background:#ffffffd9;border-radius:24px;flex-direction:column;justify-content:center;width:100%;max-width:420px;margin:auto;padding:30px;display:flex;box-shadow:0 20px 40px #0003}.dark-mode .auth-form-side{background:#1f2937d9}.auth-form-side .auth-card{box-shadow:none;background:0 0;border:none;width:100%;max-width:380px;margin:0 auto;padding:0}.auth-card{flex-direction:column;width:100%;display:flex}.auth-link{color:var(--accent-blue);transition:opacity .2s, var(--theme-trans);font-weight:700;text-decoration:none}.auth-link:hover{opacity:.8}.auth-content-animator{flex-direction:column;width:100%;animation:.4s ease-out backwards mobileFadeIn;display:flex}.map-wrapper{width:100%;height:100%;color:var(--text-main);position:fixed;top:0;left:0;overflow:hidden}.sidebar{background-color:var(--bg-sidebar);z-index:1000;width:350px;height:100%;box-shadow:var(--shadow-sidebar);box-sizing:border-box;transition:transform .3s ease-in-out, var(--theme-trans);flex-direction:column;gap:15px;padding:20px;display:flex;position:absolute;top:0;right:0;overflow-y:auto;transform:translate(0)}.trip-card{background-color:var(--bg-panel);border:1px solid var(--border-light);opacity:1;border-radius:8px;align-items:center;gap:15px;padding:15px;display:flex}.trip-card:not(.dnd-ready){opacity:0}.form-input{border:1px solid var(--border-input);box-sizing:border-box;background-color:var(--bg-panel);width:100%;color:var(--text-main);appearance:none;box-shadow:none;border-radius:6px;outline:none;padding:10px}.form-input:focus{border-color:var(--accent-blue);box-shadow:inset 0 0 0 1px var(--accent-blue)}.btn{cursor:pointer;color:#fff;border:none;border-radius:6px;flex:1;padding:12px;font-weight:700}.btn-blue{background-color:var(--accent-blue)}.btn-red{background-color:var(--accent-red)}.btn-green{background-color:var(--accent-green)}.mini-btn{cursor:pointer;border:none;border-radius:4px;flex:1;padding:5px 10px;font-size:12px;font-weight:700}.mini-btn-default{background-color:var(--border-light);color:var(--text-main)}.mini-btn-danger{color:#dc2626;background-color:#fee2e2}.dark-mode .mini-btn-danger{color:#fca5a5;background-color:#7f1d1d}.info-box{background-color:var(--info-bg);color:var(--info-text);border-radius:6px;padding:10px;font-size:13px;font-weight:700}.mobile-drag-handle{display:none!important}.dark-mode .btn-blue{background-color:#2563eb;box-shadow:0 0 0 1px #60a5fa4d}.dark-mode .btn-green{background-color:#059669;box-shadow:0 0 0 1px #10b9814d}.dark-mode .btn-blue:hover{box-shadow:0 0 8px #60a5fa80}.dark-mode .btn-green:hover{box-shadow:0 0 8px #10b98180}.leaflet-tile-pane{will-change:filter;backface-visibility:hidden;transform:translateZ(0);transition:filter .4s ease-in-out, var(--theme-trans)!important}.dark-mode .map-wrapper,.dark-mode .leaflet-container{background-color:#1f2937!important}.dark-mode .leaflet-tile-pane{filter:brightness(.7)invert()hue-rotate(180deg)contrast(1.8)}.dark-mode .leaflet-popup-content-wrapper,.dark-mode .leaflet-popup-tip{background-color:var(--bg-panel);color:var(--text-main)}.dark-mode .leaflet-control-zoom a{background-color:var(--bg-panel);color:var(--text-main);border-color:var(--border-light)}.dark-mode .leaflet-control-zoom a:hover{background-color:var(--bg-sidebar)}.leaflet-tile-pane{transition:filter .4s ease-in-out!important}.leaflet-fade-anim .leaflet-popup,.leaflet-zoom-anim .leaflet-zoom-animated,.leaflet-popup-content-wrapper,.leaflet-popup-tip{transition:opacity .2s linear,filter .4s!important}.leaflet-tile-pane,.leaflet-popup-content-wrapper,.leaflet-popup-content-wrapper *,.leaflet-popup-tip{transition:opacity .2s linear, filter .4s ease, var(--theme-trans)!important}.theme-toggle-track{width:36px;height:20px;transition:var(--theme-trans);background-color:#cbd5e1;border-radius:10px;flex-shrink:0;position:relative}.dark-mode .theme-toggle-track{background-color:var(--accent-blue)}.settings-logout-btn{cursor:pointer;color:var(--accent-red);border-radius:6px;align-items:center;gap:8px;padding:10px;font-size:14px;font-weight:700;line-height:1;display:flex}.theme-toggle-thumb{background-color:#fff;border-radius:50%;width:16px;height:16px;position:absolute;top:2px;left:2px;transition:transform .3s cubic-bezier(.2,.8,.2,1)!important}.dark-mode .theme-toggle-thumb{transform:translate(16px)}.island-header,.desktop-toggle-btn,.settings-logout-btn,.mini-btn,.action-btn,.popup-nav-btn{justify-content:center!important;align-items:center!important;line-height:1!important;display:flex!important}.gallery-nav-btn{opacity:.7;transition:opacity .2s;justify-content:center!important;align-items:center!important;display:flex!important}.gallery-nav-btn:hover{opacity:1}.gallery-nav-btn svg{width:64px;height:64px;display:block;transform:translateY(-4px)}.desktop-drag{touch-action:none}.leaflet-popup-content-wrapper{border-radius:12px;max-height:45vh;overflow-y:auto}.action-btn{cursor:pointer;transition:var(--theme-trans);border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:8px 12px;font-size:13px;font-weight:700;line-height:1;display:flex}.action-btn-edit{border:1px solid var(--border-input);color:var(--text-main);background:0 0}.action-btn-edit:hover{background:var(--border-light);color:var(--accent-blue);border-color:var(--accent-blue)}.action-btn-delete{color:var(--accent-red);background:#ef44441a;border:1px solid #0000}.action-btn-delete:hover{background:#ef444426}.dark-mode .action-btn-delete{color:#f87171;background:#ef444426}.trip-actions-slider{opacity:0;pointer-events:none;max-height:0;transition:max-height .3s cubic-bezier(.2, .8, .2, 1), opacity .3s ease, margin-top .3s ease, var(--theme-trans);gap:8px;margin-top:0;padding-left:40px;display:flex;overflow:hidden}.trip-actions-slider.open{opacity:1;pointer-events:auto;max-height:50px;margin-top:8px}.fab-overlay{z-index:9998;-webkit-backdrop-filter:blur(4px);opacity:0;pointer-events:none;background:#0006;transition:opacity .3s;position:fixed;inset:0}.fab-overlay.active{opacity:1;pointer-events:auto}.dynamic-island{z-index:9999;background:var(--bg-panel);color:var(--text-main);max-width:90vw;transition:width .4s cubic-bezier(.2, .8, .2, 1), max-height .4s cubic-bezier(.2, .8, .2, 1), border-width .4s ease, var(--theme-trans);position:fixed;top:15px;left:50%;overflow:hidden;transform:translate(-50%)}.dynamic-island.pill{cursor:pointer;border-radius:22px;width:180px;max-height:44px}.dynamic-island.expanded{border-radius:20px;width:350px;max-height:400px}.island-header{cursor:pointer;height:44px;color:var(--text-main);transition:var(--theme-trans);justify-content:center;align-items:center;padding:0 15px;font-size:15px;font-weight:700;display:flex}.island-content{opacity:0;transition:opacity .2s ease, var(--theme-trans);pointer-events:none;box-sizing:border-box;width:350px;max-width:90vw;padding:0 15px 15px}.dynamic-island.expanded .island-content{opacity:1;transition:opacity .3s ease .1s, var(--theme-trans);pointer-events:auto}.create-trip-btn{border:2px dashed var(--border-input);width:100%;color:var(--text-muted);cursor:pointer;transition:var(--theme-trans);background:0 0;border-radius:10px;justify-content:center;align-items:center;gap:8px;margin-top:4px;padding:14px;font-size:14px;font-weight:700;line-height:1;display:flex}.create-trip-btn:hover{border-color:var(--accent-blue);color:var(--accent-blue);background:#2563eb0d}.floating-save-wrapper{z-index:9997;transition:opacity .4s cubic-bezier(.2, .8, .2, 1), transform .4s cubic-bezier(.2, .8, .2, 1), var(--theme-trans);opacity:0;pointer-events:none;position:fixed;top:70px;left:50%;transform:translate(-50%,-30px)}.floating-save-wrapper.visible{opacity:1;pointer-events:auto;transform:translate(-50%)}.floating-save-btn{background:var(--accent-blue);color:#fff;cursor:pointer;border:none;border-radius:20px;padding:8px 20px;font-size:14px;font-weight:700;box-shadow:0 4px 12px #3b82f666}.floating-circle-btn{z-index:9999;background:var(--bg-panel);cursor:pointer;border:1px solid var(--border-light);width:44px;height:44px;color:var(--text-main);transition:top .3s ease, var(--theme-trans);border-radius:50%;justify-content:center;align-items:center;font-size:20px;display:flex;position:fixed;left:15px;box-shadow:0 2px 10px #0000001a}.settings-dropdown{z-index:9999;background:var(--bg-panel);border:1px solid var(--border-light);transform-origin:0 0;width:180px;transition:opacity .2s ease, transform .2s ease, var(--theme-trans);opacity:0;pointer-events:none;border-radius:12px;padding:8px;position:fixed;top:65px;left:15px;transform:scale(.9);box-shadow:0 4px 20px #00000026}.settings-dropdown.active{opacity:1;pointer-events:auto;transform:scale(1)}.sidebar.closed{transform:translate(100%)}.desktop-toggle-btn{transition:transform .3s ease-in-out, var(--theme-trans)}.color-ribbon::-webkit-scrollbar{display:none}.color-ribbon{align-items:flex-start;padding:8px 0;display:flex}.preset-colors-wrapper{gap:12px;padding:0 4px;display:flex}.custom-color-btn,.color-swatch-btn{width:36px;height:36px}.ribbon-divider{height:36px}.trip-card.selected-card{border-color:var(--accent-blue);box-shadow:0 0 0 1px var(--accent-blue);background-color:var(--bg-panel);transition:var(--theme-trans)}.action-footer{padding-bottom:env(safe-area-inset-bottom,15px);gap:10px;margin-top:20px;display:flex}.leaflet-tile{animation:.5s ease-out backwards fadeInTile}.leaflet-control-attribution{color:#333!important;box-shadow:none!important;pointer-events:auto!important;background:#fffc!important;border:none!important;padding:0 5px!important;font-size:11px!important}.leaflet-control-attribution a{color:#0078a8!important;text-decoration:none!important}@keyframes cascadeFade{0%{opacity:0;transform:translateY(15px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes fadeInTile{0%{opacity:0;filter:blur(2px)}to{opacity:1;filter:blur()}}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:1s linear infinite spin}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes mobileFadeIn{0%{opacity:0}to{opacity:1}}@media (width>=769px){.auth-page{padding:0}.auth-bg-overlay{background:linear-gradient(90deg,#0000001a,#0009)}.auth-bg-wrapper{right:480px}.auth-hero-spacer{flex:1;display:block}.auth-form-side{background:var(--bg-panel);-webkit-backdrop-filter:none;border-radius:0;max-width:480px;margin:0;padding:60px;box-shadow:-10px 0 30px #00000026}.dark-mode .auth-form-side{background:var(--bg-panel)}.auth-content-animator{animation:.6s cubic-bezier(.2,.8,.2,1) backwards fadeSlideUp}.mobile-only{display:none!important}.fab-overlay{-webkit-backdrop-filter:none;background:0 0}.fab-overlay.active{pointer-events:none!important}.preset-colors-wrapper{flex-wrap:wrap;gap:10px}.custom-color-btn,.color-swatch-btn{width:24px;height:24px}.ribbon-divider{height:24px}}@media (width<=768px){input,textarea{font-size:16px!important}.desktop-toggle-btn{display:none!important}.map-wrapper{width:100vw}.desktop-panel-header h3{display:none}.leaflet-control-attribution{z-index:10001!important;background:#fffc!important;border-radius:4px!important;margin:0!important;position:fixed!important;inset:15px 15px auto auto!important}.leaflet-bottom.leaflet-left{pointer-events:none!important}.sidebar{width:100%;height:100%;max-height:50svh;padding:0;padding-bottom:env(safe-area-inset-bottom,15px);z-index:1000;box-sizing:border-box;transition:max-height .3s cubic-bezier(.4, 0, .2, 1), var(--theme-trans);border-radius:20px 20px 0 0;position:fixed;bottom:0;left:0;box-shadow:0 -4px 20px #00000026;top:auto!important;transform:none!important}.sidebar.closed{height:auto}.sidebar.expanded{max-height:90svh}.sheet-header{transition:padding .3s ease, var(--theme-trans);padding-bottom:15px}.sheet-content{transition:opacity .2s ease, var(--theme-trans);opacity:1;max-height:1000px;transform:translateZ(0);overscroll-behavior:contain!important}.sidebar.closed .sheet-header{padding-bottom:5px}.sidebar.closed .sheet-content{opacity:0;max-height:0;margin:0;overflow:hidden}.sidebar-toggle-btn{border-radius:50%;width:40px;height:40px;position:absolute;top:-20px;left:50%;transform:translate(-50%)}.sidebar h2{transition:margin .3s ease, var(--theme-trans);margin-top:0!important;margin-bottom:0!important}.sidebar.closed h2{margin-bottom:10px!important}.color-ribbon{-ms-overflow-style:none;scrollbar-width:none;align-items:center;padding-right:40px;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#000 85%,#0000 100%);mask-image:linear-gradient(90deg,#000 85%,#0000 100%)}.color-ribbon::-webkit-scrollbar{display:none}.preset-colors-wrapper{flex-wrap:nowrap}.action-footer{transition:padding .3s ease, var(--theme-trans);background:0 0;border-top:none;margin-top:auto;padding:15px;position:relative;bottom:0}.sidebar.closed .action-footer{padding:0 15px 15px}}.map-loader-overlay{z-index:999999;background:var(--bg-panel);transition:opacity .5s cubic-bezier(.2, .8, .2, 1), visibility .5s, var(--theme-trans);flex-direction:column;justify-content:center;align-items:center;gap:20px;display:flex;position:fixed;inset:0}.map-loader-overlay.hidden{opacity:0;visibility:hidden;pointer-events:none}.bouncing-pin-wrapper{flex-direction:column;align-items:center;gap:10px;display:flex;position:relative}.bouncing-pin-icon{width:50px;height:60px;color:var(--accent-blue);animation:.6s cubic-bezier(.28,.84,.42,1) infinite alternate pinBounce}.bouncing-pin-shadow{background:#00000026;border-radius:50%;width:24px;height:6px;animation:.6s cubic-bezier(.28,.84,.42,1) infinite alternate shadowPulse}.dark-mode .bouncing-pin-shadow{background:#0006}.isometric-paper-map{border:2px solid var(--border-input);z-index:-1;background-color:#fdfbf7;background-image:linear-gradient(to right, transparent 49%, var(--border-light) 49%, var(--border-light) 51%, transparent 51%), linear-gradient(to bottom, transparent 49%, var(--border-light) 49%, var(--border-light) 51%, transparent 51%);border-radius:8px;width:80px;height:80px;position:absolute;bottom:-15px;left:50%;transform:translate(-50%)rotateX(60deg)rotate(45deg);box-shadow:0 10px 20px #0000001a}.dark-mode .isometric-paper-map{background-color:var(--bg-sidebar);border-color:var(--border-light);box-shadow:0 10px 20px #0006}@keyframes pinBounce{0%{transform:translateY(0)scaleY(.95)}to{transform:translateY(-25px)scaleY(1.05)}}@keyframes shadowPulse{0%{opacity:.15;transform:scale(1)}to{opacity:.05;transform:scale(.4)}}
