:root{--bottom-nav-height: 0px;--primary: #0ea5e9;--primary-dark: #0284c7;--bg-dark: #0f172a;--bg-card: #1e293b;--text-main: #f8fafc;--text-dim: #94a3b8;--status-planned: #ffffff;--status-driving: #f1c40f;--status-active: #2ecc71;--glass: rgba(30, 41, 59, .7);--glass-bg: rgba(30, 41, 59, .85);--card-bg: #1e293b;--glass-border: rgba(255, 255, 255, .1);--overlay: rgba(0, 0, 0, .5);--inner-card-bg: rgba(30, 41, 59, .85);--tab-bar-bg: rgba(0, 0, 0, .25);--input-bg: rgba(15, 23, 42, .6);--mobile: 768px;--tablet: 1024px;--header-h: 64px}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background-color:var(--bg-dark);color:var(--text-main);line-height:1.5;overflow:hidden}#root{height:100dvh;display:flex;flex-direction:column}.glass-panel{background:var(--glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--glass-border);border-radius:12px}.btn{padding:.5rem 1rem;border-radius:8px;border:none;cursor:pointer;font-weight:600;transition:background-color .2s,color .2s,border-color .2s,opacity .2s;display:inline-flex;align-items:center;justify-content:center;gap:.5rem}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark);transform:translateY(-1px)}.btn-icon-text{background:none;border:none;color:var(--text-dim);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:.25rem;font-size:.875rem;font-weight:500;transition:color .2s}.btn-icon-text:hover{color:var(--text-main)}.icon-btn{background:none;border:none;color:var(--text-dim);cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center}.icon-btn:hover{color:var(--text-main)}@keyframes spin{to{transform:rotate(360deg)}}@keyframes spin-once{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-spin-once{animation:spin-once .6s ease-in-out}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.3)}}.btn-icon{background:#ffffff1a;border:1px solid rgba(255,255,255,.1);color:#fff;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;cursor:pointer;transition:background-color .2s ease,color .2s ease,opacity .2s ease}.btn-icon:hover{background:#fff3;transform:scale(1.05)}.btn-icon:active{transform:scale(.95)}.app-container{height:100%;display:flex;flex-direction:column}.main-header{margin:.5rem 1rem;padding:0 1.5rem;height:var(--header-h);display:flex;justify-content:space-between;align-items:center;z-index:2000;gap:2rem;overflow:visible}.logo{cursor:pointer;user-select:none;-webkit-user-select:none;padding:.25rem .5rem;margin-left:-.5rem;border-radius:8px;transition:background-color .2s}.logo:active{background-color:#ffffff0d}.header-nav{display:flex;gap:1rem;flex:1}.nav-link{background:none;border:none;color:var(--text-dim);cursor:pointer;display:flex;align-items:center;gap:.5rem;font-size:.875rem;font-weight:500;padding:.5rem 1rem;border-radius:8px;transition:color .2s,opacity .2s}.nav-link:hover{color:var(--text-main);background:#ffffff0d}.nav-link.active{color:var(--primary);background:#0ea5e91a}.user-controls{display:flex;align-items:center;gap:.5rem}.user-email{font-size:.875rem;color:var(--text-dim);display:flex;align-items:center;gap:.5rem}.main-view{flex:1;position:relative;display:grid;grid-template-columns:70% 30%;gap:1rem;padding:0 1rem 1rem;overflow:hidden}.main-view.full-width{grid-template-columns:1fr}@media(max-width:1024px){.main-view{grid-template-columns:1fr 300px}}@media(max-width:767px){.main-header{margin:0;padding:.5rem 1rem;border-radius:0;gap:1rem;overflow:visible;position:relative}.header-nav{display:none}.main-view{display:block;padding:0;grid-template-columns:1fr}.map-container{height:100%;border-radius:0}.main-view:not(.show-sessions-mobile) .sessions-panel{display:none}.main-view.show-sessions-mobile .sessions-panel{position:fixed;inset:60px 0 0;z-index:1050;background:var(--bg-dark);display:flex;border-radius:0;border:none}.main-view.show-sessions-mobile .map-container{display:none}.mobile-fab-container{bottom:20px;right:20px}}.mobile-fab-container{position:fixed;bottom:24px;right:20px;display:flex;flex-direction:column;gap:12px;z-index:1050;transition:bottom .3s cubic-bezier(.16,1,.3,1)}.mobile-fab-container.fab-elevated{bottom:100px}.fab{width:56px;height:56px;border-radius:28px;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #0000004d;border:none;cursor:pointer;transition:transform .2s cubic-bezier(.4,0,.2,1),opacity .2s cubic-bezier(.4,0,.2,1),background-color .2s cubic-bezier(.4,0,.2,1)}.fab:active,.fab.active{transform:scale(.9);background:var(--primary-dark);box-shadow:0 2px 8px #0006}.fab-secondary{background:var(--bg-card);border:1px solid var(--glass-border);color:var(--text-main);width:48px;height:48px}.fab-backdrop{position:fixed;inset:0;background:#00000080;z-index:1060;animation:fadeIn .2s ease;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.fab-speed-dial{display:flex;flex-direction:column;gap:10px;align-items:flex-end;opacity:0;pointer-events:none;transform:translateY(20px);transition:transform .3s cubic-bezier(.16,1,.3,1),opacity .3s cubic-bezier(.16,1,.3,1),background-color .3s cubic-bezier(.16,1,.3,1);z-index:1070;position:relative}.fab-speed-dial.open{opacity:1;pointer-events:auto;transform:translateY(0)}.fab-pill{display:flex;align-items:center;gap:10px;padding:12px 20px 12px 16px;border-radius:28px;border:none;cursor:pointer;font-size:.9rem;font-weight:600;color:#fff;box-shadow:0 4px 16px #0000004d;white-space:nowrap;transition:background-color .2s ease,color .2s ease,opacity .2s ease;letter-spacing:.01em}.fab-pill:hover{transform:scale(1.05);box-shadow:0 6px 20px #0006}.fab-pill:active{transform:scale(.95)}.fab-pill-quick{background:linear-gradient(135deg,#f59e0b,#d97706)}.fab-pill-plan{background:linear-gradient(135deg,#0ea5e9,#0284c7)}.fab-pill-icon{font-size:1.1rem;line-height:1}.fab-pill-label{font-size:.88rem}.active-session-bar{position:fixed;top:72px;left:50%;transform:translate(-50%);z-index:1100;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;border-radius:16px;min-width:320px;max-width:480px;border:1px solid rgba(34,197,94,.3)!important;background:#0f172ad9!important;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 4px 20px #0000004d,0 0 0 1px #22c55e26;animation:slideDown .4s cubic-bezier(.16,1,.3,1)}@keyframes slideDown{0%{transform:translate(-50%) translateY(-100%);opacity:0}to{transform:translate(-50%) translateY(0);opacity:1}}.session-bar-info{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.session-bar-dot{width:8px;height:8px;border-radius:50%;background:#22c55e;flex-shrink:0;animation:pulse-dot 2s ease-in-out infinite}.session-bar-label{font-size:.85rem;font-weight:600;color:var(--text-main);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.session-bar-time{font-size:.75rem;color:var(--text-dim);white-space:nowrap}.session-bar-actions{display:flex;gap:6px;flex-shrink:0}.session-bar-btn{padding:6px 14px;border-radius:10px;border:none;cursor:pointer;font-size:.78rem;font-weight:600;transition:background-color .2s ease,color .2s ease,opacity .2s ease}.session-bar-end{background:#ef444426;color:#ef4444;border:1px solid rgba(239,68,68,.3)}.session-bar-end:hover{background:#ef444440}@media(max-width:767px){.active-session-bar{inset:auto 12px 68px;transform:none;min-width:auto;max-width:none}@keyframes slideDown{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}}.fab-speed-dial-mobile{position:fixed;bottom:calc(var(--bottom-nav-height, 58px) + 16px);left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:10px;align-items:center;z-index:2500;animation:slideUpPills .3s cubic-bezier(.16,1,.3,1) forwards}@keyframes slideUpPills{0%{opacity:0;transform:translate(-50%) translateY(20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.bottom-nav-create-icon.fab-active{background:#ef4444!important;transform:rotate(45deg);transition:transform .3s cubic-bezier(.16,1,.3,1),opacity .3s cubic-bezier(.16,1,.3,1),background-color .3s cubic-bezier(.16,1,.3,1)}.session-form .modal-actions{position:sticky;bottom:0;background:var(--bg-card);margin:0 -.5rem;padding:.75rem .5rem .25rem;border-top:1px solid var(--glass-border);z-index:5}.session-form label{font-size:.8rem}@media(min-width:768px){.session-modal-panel{max-height:calc(100vh - 40px)!important;display:flex;flex-direction:column}.session-modal-panel .modal-content{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.session-modal-panel .session-form{flex:1;min-height:0;overflow-y:auto;display:block!important}}.spot-tab-bar{display:flex;gap:4px;background:var(--tab-bar-bg, rgba(15, 23, 42, .6));padding:3px;border-radius:12px;margin:0 1rem .5rem;position:sticky;top:0;z-index:10;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.spot-tab-bar button{flex:1;padding:8px 0;background:transparent;border:none;color:var(--text-dim);font-weight:500;font-size:.85rem;cursor:pointer;transition:all .25s cubic-bezier(.16,1,.3,1);display:flex;align-items:center;justify-content:center;gap:6px;border-radius:9px;position:relative;z-index:1}.spot-tab-bar button.active{color:#fff;background:var(--primary);font-weight:600;text-shadow:none;box-shadow:0 2px 8px #3b82f64d}.spot-tab-container{display:flex;width:200%;transition:transform .32s cubic-bezier(.16,1,.3,1);will-change:transform}.spot-tab-pane{width:50%;flex-shrink:0;display:block!important;opacity:1;box-sizing:border-box;transition:opacity .32s ease-in-out}.spot-tab-pane:not(.active){pointer-events:none}.spot-tab-pane.active{pointer-events:auto}.photo-viewer-overlay{position:fixed;inset:0;z-index:100000;background:#000000eb;display:flex;align-items:center;justify-content:center;padding:20px}.photo-viewer-close{position:absolute;top:20px;right:20px;background:#ffffff26!important;color:#fff!important;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:2}.photo-viewer-content{position:relative;display:flex;flex-direction:column;align-items:center;max-width:90vw;max-height:85vh}.photo-viewer-img{max-width:100%;max-height:75vh;object-fit:contain;border-radius:12px;box-shadow:0 20px 60px #0009}.reaction-trigger-wrap{position:absolute;bottom:16px;right:16px}.reaction-trigger-btn{display:flex;align-items:center;gap:5px;padding:8px 14px;background:#ffffff1f;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.18);border-radius:999px;font-size:1.3rem;cursor:pointer;transition:background-color .2s ease,color .2s ease,opacity .2s ease;color:#fff;box-shadow:0 4px 16px #0000004d}.reaction-trigger-btn:hover{background:#fff3;transform:scale(1.08)}.reaction-trigger-btn.small{padding:4px 10px;font-size:.95rem;background:var(--glass-bg);border-color:var(--glass-border);color:var(--text-main);box-shadow:0 2px 8px #00000014}.reaction-trigger-count{font-size:.7rem;font-weight:700;opacity:.7}.reaction-dismiss-overlay{position:fixed;inset:0;z-index:99;background:transparent}.reaction-explode{position:relative;z-index:100}.reaction-explode{position:relative;z-index:100;display:flex;gap:6px;padding:8px 12px;background:#000000b3;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.12);border-radius:999px;box-shadow:0 8px 32px #00000080}.reaction-explode.inline{background:var(--glass-bg);border-color:var(--glass-border);box-shadow:0 4px 16px #0000001a;padding:4px 8px;gap:2px}.reaction-explode-btn{background:transparent;border:2px solid transparent;border-radius:50%;width:42px;height:42px;display:flex;align-items:center;justify-content:center;font-size:1.35rem;cursor:pointer;transition:transform .15s ease,opacity .15s ease,background-color .15s ease;animation:reactionPopIn .25s cubic-bezier(.34,1.56,.64,1) both}.reaction-explode-btn.small{width:30px;height:30px;font-size:.95rem}.reaction-explode-btn:hover{background:#ffffff26;transform:scale(1.2)}.reaction-explode-btn.active{background:#6366f14d;border-color:#6366f180;transform:scale(1.15)}.reaction-explode-btn:active{transform:scale(.75);transition:transform .08s ease}@keyframes reactionPopIn{0%{opacity:0;transform:scale(.3)}to{opacity:1;transform:scale(1)}}.session-action-row{display:flex;align-items:center;justify-content:space-between;margin-top:6px;padding-top:4px;border-top:1px solid var(--glass-border)}.session-reaction-wrap{position:relative}.session-chat-link{background:none;border:none;cursor:pointer;font-size:.9rem;padding:2px 6px;opacity:.6;transition:opacity .15s}.session-chat-link:hover{opacity:1}.connect-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:3rem 1.5rem;color:var(--text-main)}.bottom-sheet-overlay{position:fixed;top:0;left:0;right:0;bottom:var(--bottom-nav-height, 0px);background:var(--overlay);z-index:2400;opacity:0;pointer-events:none;transition:opacity .3s ease}.bottom-sheet-overlay.active{opacity:1;pointer-events:auto}.bottom-sheet{position:fixed;bottom:0;left:0;right:0;background:var(--glass);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-top-left-radius:20px;border-top-right-radius:20px;z-index:2500;box-shadow:0 -8px 24px #0006;transition:transform .3s cubic-bezier(.17,.84,.44,1),height .3s ease;transform:translateY(100%);display:flex;flex-direction:column;border-top:1px solid var(--glass-border)}.bottom-sheet.open{transform:translateY(0)}.bottom-sheet-handle-container{padding:6px 0;display:flex;justify-content:center;cursor:grab}.bottom-sheet-handle{width:40px;height:4px;background:#fff3;border-radius:2px}.light-theme .bottom-sheet-header{border-bottom-color:#00000014}.bottom-sheet-content{flex:1;overflow-y:auto;padding:0}.mobile-only{display:none!important}@media(max-width:767px){.mobile-only{display:flex!important}.desktop-only{display:none!important}}.map-container{border-radius:12px;overflow:hidden;box-shadow:0 4px 6px -1px #0000001a;position:relative}.map-overlay-hint{position:absolute;top:5rem;left:50%;transform:translate(-50%);padding:.75rem 1.5rem;font-size:.875rem;font-weight:500;color:var(--text-main);z-index:400;pointer-events:none}.sessions-panel{padding:1.5rem;overflow-y:auto;display:flex;flex-direction:column}.panel-header{margin-bottom:1.5rem}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:var(--bottom-nav-height, 0px);background:var(--overlay);display:flex;align-items:center;justify-content:center;z-index:3500;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}@media(max-width:767px){.modal-overlay{align-items:flex-start;padding-top:0;overflow-x:hidden;bottom:var(--bottom-nav-height, 58px);overflow-y:auto}.modal-overlay>.glass-panel{width:100%;max-width:100vw;min-height:calc(100dvh - var(--bottom-nav-height, 58px));border-radius:0;margin:0;overflow-x:hidden;box-sizing:border-box}.modal-content{max-width:100%!important;width:100%;box-sizing:border-box;overflow-x:hidden}.session-modal-panel{height:100%!important;max-height:100%!important}.session-modal-panel .modal-header{flex-shrink:0}.session-details-view{display:flex!important;flex-direction:column!important;flex:1!important;overflow:hidden!important;padding:0 .5rem}.comments-list{flex:1!important;min-height:0!important;overflow-y:auto!important}.session-details-view,.session-integrations,.modal-actions,.participants-list,.comments-list,.comment-form{max-width:100%;box-sizing:border-box}.modal-actions{flex-wrap:wrap;justify-content:center}.session-integrations a,.session-integrations button{flex:1 1 0;min-width:0}}@media(min-width:768px){.modal-overlay{padding-top:20px;align-items:flex-start;justify-content:flex-end;padding-right:20px}.modal-overlay>.glass-panel{max-height:calc(100vh - 40px);width:420px;animation:slideInRight .3s cubic-bezier(.16,1,.3,1)}}.modal-content{width:100%;max-width:450px;padding:1.5rem}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:0}.session-form{display:flex;flex-direction:column;gap:1.25rem;overflow-y:auto;padding-right:.5rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}label{font-size:.875rem;font-weight:500;color:var(--text-dim)}input,select{background:#ffffff0d;border:1px solid var(--glass-border);border-radius:8px;padding:.75rem;color:var(--text-main);font-size:1rem;width:100%}select option{background:#1e293b;color:#e2e8f0}input:focus,select:focus{outline:none;border-color:var(--primary);background:#ffffff1a}.modal-actions{display:flex;justify-content:flex-end;gap:1rem;margin-top:1rem}.auth-toggle{text-align:center;font-size:.875rem;color:var(--text-dim);margin-top:1rem}.auth-submit{width:100%;margin-top:.5rem}.location-confirm-overlay{position:absolute;z-index:1000;pointer-events:none;transform:translate(-50%)}.confirm-dialog{padding:1.5rem;text-align:center;pointer-events:auto;min-width:250px;box-shadow:0 10px 25px -5px #0006}.confirm-dialog p{margin-bottom:1.5rem;font-weight:500;font-size:1.125rem}.confirm-actions{display:flex;justify-content:center;gap:1rem}.btn-secondary{background:#ffffff1a;color:var(--text-main);border:1px solid var(--glass-border)}.btn-secondary:hover{background:#ffffff26}.btn-danger{background:#ef44441f;color:#ef4444;border:1px solid rgba(239,68,68,.3);border-radius:var(--radius);padding:.6rem 1.2rem;font-weight:600;font-size:.9rem;cursor:pointer;transition:background .2s,border-color .2s}.btn-danger:hover{background:#ef444438;border-color:#ef44448c}.btn-danger:active{background:#ef444452}.session-item{padding:.75rem;margin-bottom:.6rem;transition:background .15s ease,border-color .15s ease,transform .12s ease;border-radius:12px;border:1px solid transparent}.session-item:hover{background:#ffffff0f;border-color:#0ea5e940;transform:translateY(-1px)}.session-item:active{background:#0ea5e91f;border-color:#0ea5e966;transform:translateY(0)}.session-card-layout{display:flex;align-items:center;gap:.75rem}.session-card-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:.15rem}.session-card-name{font-weight:700;font-size:.875rem;color:var(--text-main);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.session-card-discipline{font-size:.75rem;color:var(--text-dim)}.session-card-time{font-size:.8rem;color:var(--primary);font-weight:600;letter-spacing:.01em}.session-card-minimap{flex-shrink:0}.session-minimap-img{width:100%;height:100%;object-fit:cover;display:block;filter:brightness(.85) saturate(.9)}.session-item-header{display:flex;justify-content:space-between;align-items:center}.text-small{font-size:.75rem}.header-menu-container{position:relative;z-index:1500}.menu-trigger{display:flex;align-items:center;gap:.75rem;padding:.5rem .75rem;cursor:pointer;background:var(--glass);border-radius:12px;color:var(--text-main);transition:transform .2s,opacity .2s,background-color .2s;border:1px solid var(--glass-border)}.menu-trigger:hover{background:#ffffff1a;border-color:var(--primary)}.user-email-short{font-size:.875rem;font-weight:500;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu-dropdown{position:absolute;top:calc(100% + .5rem);right:0;min-width:220px;padding:.5rem;box-shadow:0 10px 25px -5px #0006;display:flex;flex-direction:column;gap:.25rem;background:var(--bg-card);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--glass-border);border-radius:12px;z-index:2000}.menu-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border:none;background:none;color:var(--text-main);font-size:.875rem;cursor:pointer;border-radius:8px;transition:background .2s;width:100%}.menu-item:hover{background:#ffffff0d;color:var(--primary)}.menu-divider{border:none;border-top:1px solid var(--glass-border);margin:.25rem 0}.text-danger{color:#ef4444!important}.rotate-180{transform:rotate(180deg)}.events-view{padding:2rem;overflow-y:auto}.events-overview-container,.event-detail-container{background:var(--bg-dark);color:var(--text-main)}.section-label{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim)}.sessions-panel{background:var(--bg-dark)}.empty-state{display:flex;flex-direction:column;align-items:center;gap:1rem;margin-top:4rem;text-align:center}.filter-bar-container{position:absolute;top:1.5rem;left:1.5rem;z-index:1000;pointer-events:none}.filter-group{display:flex;gap:.75rem;pointer-events:auto}.filter-dropdown-wrapper{position:relative}.filter-trigger{display:flex;align-items:center;gap:.75rem;padding:.625rem 1rem;border-radius:12px;color:var(--text-main);font-size:.875rem;font-weight:500;cursor:pointer;transition:transform .2s,opacity .2s,background-color .2s;background:var(--glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--glass-border)}.filter-trigger:hover{background:#ffffff1a;border-color:var(--primary)}.filter-dropdown{position:absolute;top:calc(100% + .5rem);left:0;min-width:180px;padding:.5rem;display:flex;flex-direction:column;gap:.25rem;box-shadow:0 10px 25px -5px #00000080;background:#0f172a;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.08);border-radius:12px;z-index:50;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.15) transparent}.filter-item{display:flex;align-items:center;justify-content:space-between;padding:.625rem .875rem;border:none;background:none;color:var(--text-main);font-size:.875rem;cursor:pointer;border-radius:8px;transition:transform .2s,opacity .2s,background-color .2s;text-align:left;width:100%}.filter-item:hover{background:#ffffff0d;color:var(--primary)}.filter-item.active{background:#0ea5e91a;color:var(--primary)}.filter-toggle-btn{padding:.5rem 1rem;border-radius:8px;border:1px solid var(--glass-border);background:#ffffff0d;color:var(--text-main);font-size:.85rem;font-weight:600;cursor:pointer;transition:transform .2s,opacity .2s,background-color .2s}.filter-toggle-btn:hover{background:#ffffff1a;border-color:var(--primary)}.filter-toggle-btn.active{background:var(--primary);color:#fff;border-color:var(--primary)}.segmented-control{display:flex;background:var(--glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--glass-border);border-radius:12px;overflow:hidden;padding:3px;gap:2px;pointer-events:auto}.segmented-btn{flex:1;border:none;background:none;color:var(--text-dim);padding:.5rem 1rem;font-size:.85rem;font-weight:600;cursor:pointer;border-radius:9px;transition:transform .2s,opacity .2s,background-color .2s;white-space:nowrap;display:flex;align-items:center;justify-content:center;min-width:70px}.segmented-btn:hover{background:#ffffff0d;color:var(--text-main)}.segmented-btn.active{background:var(--primary);color:#fff;box-shadow:0 2px 8px #0ea5e966}.segmented-btn.active:hover{background:var(--primary-dark)}.map-toggle-btn{display:flex;align-items:center;gap:.5rem;padding:.625rem 1rem;background:var(--glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--glass-border);border-radius:12px;color:var(--text-main);font-size:.875rem;font-weight:500;cursor:pointer;transition:transform .2s,opacity .2s,background-color .2s;pointer-events:auto}.map-toggle-btn:hover{background:#ffffff1a;border-color:var(--primary)}.map-toggle-btn.active{background:#0ea5e91a;border-color:var(--primary);color:var(--primary)}.session-details-view{display:flex;flex-direction:column;gap:.45rem;padding:.5rem 1.1rem}.details-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.detail-item label{display:block;margin-bottom:.25rem;font-size:.8rem;color:var(--text-dim)}.detail-item p{font-weight:500;color:var(--text-main)}.participants-section{display:flex;flex-direction:column;gap:.75rem}.participants-list{max-height:200px;overflow-y:auto;padding:.5rem;background:#0003;border-radius:8px}.participant-item{display:flex;justify-content:space-between;align-items:center;padding:.5rem .75rem;border-radius:8px;background:#ffffff0d;margin-bottom:.25rem}.participant-item span{font-size:.9rem}.status-badge{font-size:.7rem;padding:2px 10px 2px 24px;border-radius:99px;font-weight:600;text-transform:uppercase;position:relative;background:#64748b1f;color:var(--text-main)}.status-badge:before{content:"";position:absolute;left:8px;top:50%;transform:translateY(-50%);width:8px;height:8px;border-radius:50%}.status-active:before{background-color:#2ecc71;box-shadow:0 0 8px #2ecc71}.status-driving:before{background-color:#f1c40f;box-shadow:0 0 8px #f1c40f}.status-planned:before{background-color:#bdc3c7}.status-completed:before{background-color:#2c3e50;border:1px solid rgba(255,255,255,.2)}.mt-1{margin-top:.25rem}.status-select-mini{background:#ffffff1a;border:1px solid rgba(255,255,255,.1);border-radius:4px;color:#fff;font-size:.8rem;padding:2px 4px;cursor:pointer}.participant-edit-zone{margin-top:1rem;border-top:1px solid rgba(255,255,255,.1);background:#ffffff08}.btn-sm{padding:.3rem .6rem;font-size:.85rem}.p-3{padding:1rem}.comments-section{border-top:1px solid rgba(255,255,255,.1);padding-top:1rem}.comments-list{overflow-y:auto;display:flex;flex-direction:column;gap:.5rem;padding:.75rem;background:#0006;position:relative;mask-image:linear-gradient(to top,#000 0% 60%,#0003);-webkit-mask-image:linear-gradient(to top,rgba(0,0,0,1) 0%,rgba(0,0,0,1) 60%,rgba(0,0,0,.2) 100%)}.comment-item{max-width:85%;padding:.5rem .75rem;border-radius:10px;background:#ffffff1a;border:1px solid rgba(255,255,255,.1);align-self:flex-start;transition:transform .3s ease,opacity .3s ease,background-color .3s ease;position:relative}.comment-item.comment-own{align-self:flex-end;border-bottom-right-radius:4px}.comment-status-active{background:#1ed76026;border-color:#1ed7604d}.comment-status-driving{background:#ffd70026;border-color:#ffd7004d}.comment-status-planned{background:#ffffff0d;border-color:#ffffff1a}.comment-status-completed{background:#0000004d;border-color:#ffffff0d}.comment-header{display:flex;gap:.5rem;align-items:center;margin-bottom:.15rem;font-size:.7rem}.comment-author{font-weight:700;color:var(--primary)}.comment-own .comment-author{color:var(--text-main)}.comment-time{color:var(--text-dim);font-size:.65rem}.comment-content{font-size:.85rem;line-height:1.3;word-break:break-word}.comment-form{margin-top:0;flex-shrink:0}.mb-2{margin-bottom:.25rem}.modal-content{width:95%;max-width:500px;max-height:90vh;display:flex;flex-direction:column;padding:0}.modal-header{padding:.85rem 1.1rem;border-bottom:1px solid rgba(255,255,255,.1);display:flex;justify-content:space-between;align-items:center}.modal-actions{padding:1rem 1.5rem;border-top:1px solid rgba(255,255,255,.1);display:flex;justify-content:flex-end;gap:1rem;background:#ffffff05}.sessions-group{margin-bottom:.25rem;border-radius:10px;overflow:hidden;border:1px solid var(--glass-border)}.sessions-group-header{width:100%;display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:#ffffff0a;border:none;color:var(--text-main);font-size:.875rem;font-weight:600;cursor:pointer;transition:background .15s;text-align:left}.sessions-group-header:hover{background:#ffffff14}.sessions-group-header.expanded{background:#0ea5e914;color:var(--primary);border-bottom:1px solid var(--glass-border)}.sessions-group-count{font-size:.75rem;background:#ffffff1a;padding:2px 8px;border-radius:99px;color:var(--text-dim)}.sessions-group-header.expanded .sessions-group-count{background:#0ea5e926;color:var(--primary)}.sessions-group-content{padding:.5rem;background:#00000026}.map-container{position:relative!important}.leaflet-pane,.leaflet-top,.leaflet-bottom,.leaflet-control{z-index:400!important}.leaflet-map-pane canvas,.leaflet-tile-pane{z-index:200!important}.main-header{z-index:2000!important}.toast-container{position:fixed;bottom:100px;left:50%;transform:translate(-50%);z-index:4000;pointer-events:none}.toast{background:#0ea5e9f2;color:#fff;padding:.75rem 1.5rem;border-radius:99px;font-weight:600;box-shadow:0 4px 12px #0000004d;animation:toast-fade-in-out 2s ease-in-out forwards}@keyframes toast-fade-in-out{0%{opacity:0;transform:translateY(20px)}15%{opacity:1;transform:translateY(0)}85%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-20px)}}.session-modal .modal-body{overflow-y:auto;flex:1;min-height:0}.session-details-view{overflow:hidden;flex:1;min-height:0}.modal-overlay>.glass-panel{display:flex;flex-direction:column;max-height:calc(100vh - var(--header-h) - 2rem);overflow:hidden}@media(min-width:768px){.modal-overlay{padding-top:80px;align-items:flex-start}}.participants-section{display:flex;flex-direction:column}.participants-list{border-radius:12px;overflow:hidden;border:1px solid var(--glass-border);background:#ffffff08}.participant-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;border-bottom:1px solid rgba(255,255,255,.05)}.participant-item:last-child{border-bottom:none}.status-badge{font-size:.7rem;padding:4px 10px 4px 24px;border-radius:99px;text-transform:uppercase;font-weight:700;display:inline-flex;align-items:center;position:relative}.status-planned{background:#64748b26;color:var(--text-dim)}.status-driving{background:#f1c40f33;color:#f1c40f}.status-active{background:#2ecc7133;color:#2ecc71}.status-completed{background:#64748b33;color:#94a3b8}.form-label{display:block;font-size:.875rem;font-weight:500;color:var(--text-dim);margin-bottom:.375rem}.form-input{width:100%;background:#ffffff0d;border:1px solid var(--glass-border);border-radius:8px;padding:.75rem;color:var(--text-main);font-size:1rem;transition:border-color .2s}.form-input:focus{outline:none;border-color:var(--primary);background:#ffffff14}textarea.form-input{resize:vertical;min-height:80px}.event-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0000004d}.leaflet-layer-dark .leaflet-control-layers{background-color:var(--bg-card)!important;color:var(--text-main)!important;border:1px solid var(--glass-border)!important;-webkit-backdrop-filter:blur(8px)!important;backdrop-filter:blur(8px)!important}.leaflet-layer-dark .leaflet-control-layers label{color:var(--text-main)!important}.leaflet-layer-light .leaflet-control-layers{background-color:#fffffff2!important;color:#1a1a1a!important;border:1px solid rgba(0,0,0,.1)!important;box-shadow:0 4px 12px #00000026!important}.leaflet-layer-light .leaflet-control-layers label{color:#1a1a1a!important}.badge-strip{display:inline-flex;align-items:center;gap:2px}.badge-strip-icon{font-size:1rem;line-height:1;cursor:default;filter:drop-shadow(0 1px 2px rgba(0,0,0,.5));transition:transform .15s ease}.badge-strip-icon:hover{transform:scale(1.25)}.badges-grid{display:flex;flex-direction:column;gap:.75rem}.badge-card{display:flex;align-items:flex-start;gap:.875rem;padding:.875rem 1rem;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:12px;transition:background .2s,border-color .2s;position:relative;overflow:hidden}.badge-card:before{content:"";position:absolute;inset:0;border-radius:12px;background:linear-gradient(135deg,rgba(14,165,233,.05) 0%,transparent 60%);pointer-events:none}.badge-card:hover{background:#ffffff12;border-color:#0ea5e940}.badge-card-icon{font-size:2rem;line-height:1;flex-shrink:0;filter:drop-shadow(0 2px 4px rgba(0,0,0,.4))}.badge-card-info{flex:1;display:flex;flex-direction:column;gap:.2rem;min-width:0}.badge-card-name{font-weight:700;font-size:.9rem;color:var(--text-main)}.badge-card-category{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--primary)}.badge-card-desc{font-size:.78rem;color:var(--text-dim);line-height:1.4;margin-top:.1rem}.badge-card-date{font-size:.7rem;color:#94a3b899;margin-top:.25rem}.badge-tier-pip{flex-shrink:0;font-size:.6rem;letter-spacing:-1px;padding:2px 4px;border-radius:4px;font-weight:700;align-self:flex-start;margin-top:2px}.badge-tier-pip.tier-1{color:#94a3b8}.badge-tier-pip.tier-2{color:#f59e0b}.badge-tier-pip.tier-3{color:#a78bfa}.badge-tier-pip.tier-4{color:#f97316;text-shadow:0 0 8px rgba(249,115,22,.5)}.badge-empty{text-align:center;padding:2rem 1rem;display:flex;flex-direction:column;align-items:center;gap:.5rem;color:var(--text-dim)}.badge-empty-icon{font-size:2.5rem;margin-bottom:.25rem}.badge-empty-hint{font-size:.75rem;opacity:.6}.badge-loading{padding:1rem;color:var(--text-dim);font-size:.875rem}.notification-item[data-type=badge_earned]{border-left:3px solid #f59e0b;background:#f59e0b0d}.profile-modal{display:flex!important;flex-direction:column!important;max-height:90vh!important;overflow:hidden!important}.profile-modal .modal-content{overflow-y:auto!important;flex:1!important;padding-bottom:2rem!important}.profile-collapsible-section{border-top:1px solid var(--glass-border);margin-top:1rem}.collapsible-trigger{width:100%;padding:1rem 0;display:flex;align-items:center;justify-content:space-between;background:none;border:none;cursor:pointer;color:var(--text-main);transition:opacity .2s}.collapsible-trigger:hover{opacity:.8}.collapsible-content{padding-bottom:1.5rem;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.delete-btn-subtle{background:#ef44440d!important;border:1px solid rgba(239,68,68,.2)!important;color:#ef4444!important;font-size:.8rem!important;padding:.6rem!important;border-radius:10px!important;cursor:pointer;transition:background .15s}.delete-btn-subtle:hover{background:#ef444426!important}.leaflet-tooltip.spot-zone-tooltip{background:#0f172ad9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#fff;padding:8px 12px;box-shadow:0 4px 12px #0000004d;font-family:Inter,sans-serif}.leaflet-tooltip-left.spot-zone-tooltip:before,.leaflet-tooltip-right.spot-zone-tooltip:before{border:none}@keyframes sc-pulse{0%,to{transform:scale(1);opacity:.4}50%{transform:scale(1.8);opacity:0}}.spot-tooltip-content{display:flex;flex-direction:column;gap:4px}.spot-tooltip-name{font-weight:700;font-size:.9rem;color:#38bdf8}.spot-tooltip-stats{font-size:.75rem;color:#ffffffb3;display:flex;align-items:center;gap:6px}.spot-tooltip-score{margin-top:4px;padding-top:4px;border-top:1px solid rgba(255,255,255,.1);font-weight:600;font-size:.8rem}.badge-loading,.badge-empty{padding:1rem;text-align:center;color:var(--text-dim);font-size:.85rem}.badge-empty-icon{font-size:2rem;display:block;margin-bottom:.5rem}.badge-empty-hint{font-size:.75rem;opacity:.6;margin-top:.25rem}.badges-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;padding:.5rem 0}.badge-card{display:flex;align-items:center;gap:.6rem;background:#ffffff0a;border:1px solid var(--glass-border);border-radius:10px;padding:.6rem .75rem;position:relative}.badge-card-icon{font-size:1.4rem;flex-shrink:0;line-height:1}.badge-card-info{display:flex;flex-direction:column;gap:1px;overflow:hidden}.badge-card-name{font-weight:700;font-size:.8rem;color:var(--text-main);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.badge-card-category{font-size:.68rem;color:var(--primary);text-transform:uppercase;letter-spacing:.04em}.badge-tier-pip{position:absolute;top:4px;right:6px;font-size:.6rem;color:#f59e0b}.badge-strip{display:inline-flex;gap:2px;align-items:center}.badge-strip-icon{font-size:.9rem;line-height:1}.light-theme{--bg-dark: #f1f5f9;--bg-card: #ffffff;--card-bg: #ffffff;--text-main: #0f172a;--text-dim: #475569;--glass: rgba(255, 255, 255, .92);--glass-bg: rgba(248, 250, 252, .97);--glass-border: rgba(0, 0, 0, .09);--overlay: rgba(0, 0, 0, .3);--inner-card-bg: rgba(241, 245, 249, .95);--tab-bar-bg: rgba(0, 0, 0, .06);--input-bg: rgba(241, 245, 249, 1)}.light-theme body{background-color:var(--bg-dark);color:var(--text-main)}.light-theme .glass-panel{background:var(--glass);border-color:var(--glass-border)}.light-theme input,.light-theme select,.light-theme textarea{background:#0000000a;color:var(--text-main);border-color:#00000026}.light-theme .btn-secondary{background:#0000000f;color:var(--text-main)}.light-theme .menu-dropdown{background:#fff;border-color:#0000001f;box-shadow:0 8px 24px #00000024}.light-theme .menu-item{color:#0f172a}.light-theme .menu-item:hover{background:#0ea5e914;color:var(--primary)}.light-theme .menu-divider{border-top-color:#0000001a}.light-theme .photo-menu-popup{background:#fff!important;border-color:#0000001f!important;box-shadow:0 6px 20px #0000001f!important}.light-theme .comments-list{background:#00000005;border-color:#00000014}.light-theme .comment-item{border-color:#00000012}.light-theme .bottom-sheet,.light-theme .modal-content{background:#ffffffeb;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.light-theme .spot-detail-container{isolation:isolate;transform:translateZ(0);-webkit-transform:translateZ(0);background:#f8fafc;box-shadow:-4px 0 40px #00000026}.light-theme .sheet-drag-handle:after{background:#0003}.light-theme .sheet-drag-handle:active:after{background:#00000059}@media(max-width:768px){.light-theme .spot-detail-container{box-shadow:0 -8px 40px #00000026}}.light-theme .spot-detail-header{background:linear-gradient(180deg,#f8fafc,#f8fafcf7);border-bottom:1px solid rgba(0,0,0,.1)}.light-theme .spot-detail-content{contain:layout style;background:#f1f5f9}.light-theme .spot-detail-body{background:#f1f5f9}.light-theme .spot-section{background:#ffffffe6;border-color:#00000014;box-shadow:0 1px 4px #0000000f}.light-theme .spot-section:hover{border-color:#00000024;box-shadow:0 3px 12px #0000001a}@media(max-width:768px){.light-theme .spot-section{background:transparent;border-bottom:1px solid rgba(0,0,0,.08);box-shadow:none}}.onboarding-overlay{position:fixed;inset:0;z-index:9999;background:#000000a6;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:1rem;animation:fadeIn .25s ease}.onboarding-card{position:relative;width:100%;max-width:420px;border-radius:24px;padding:2.5rem 2rem 1.75rem;display:flex;flex-direction:column;align-items:center;gap:1rem;text-align:center;animation:slideUp .3s cubic-bezier(.34,1.56,.64,1)}@keyframes slideUp{0%{opacity:0;transform:translateY(32px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.onboarding-close{position:absolute;top:1rem;right:1rem;background:none;border:none;cursor:pointer;color:var(--text-muted, #888);padding:6px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s}.onboarding-close:hover{background:#80808026;color:var(--text-color)}.onboarding-icon{font-size:3.5rem;line-height:1;filter:drop-shadow(0 4px 12px rgba(0,0,0,.18));animation:iconPop .35s cubic-bezier(.34,1.56,.64,1)}@keyframes iconPop{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}.onboarding-dots{display:flex;gap:8px;align-items:center}.onboarding-dot{width:10px;height:10px;border-radius:50%;background:#8080804d;border:none;cursor:pointer;padding:0;transition:background .25s,transform .25s}.onboarding-dot.active{background:var(--accent, #3b82f6);transform:scale(1.3)}.onboarding-content{display:flex;flex-direction:column;gap:.5rem;min-height:100px}.onboarding-title{font-size:1.35rem;font-weight:700;color:var(--text-color);margin:0;line-height:1.3}.onboarding-body{font-size:.95rem;color:var(--text-muted, #888);line-height:1.6;margin:0}.onboarding-nav{display:flex;align-items:center;justify-content:space-between;width:100%;gap:.75rem;margin-top:.5rem}.onboarding-nav .btn{display:flex;align-items:center;gap:6px;font-size:.9rem;padding:.55rem 1.1rem;border-radius:50px;flex:1;justify-content:center}.onboarding-btn-finish{flex:1.5!important}.onboarding-skip-text{background:none;border:none;cursor:pointer;color:var(--text-muted, #888);font-size:.875rem;padding:.5rem .25rem;transition:color .2s;flex:1;text-align:left}.onboarding-skip-text:hover{color:var(--text-color)}.onboarding-counter{font-size:.75rem;color:var(--text-muted, #888);margin-top:-.25rem}.flex{display:flex}.flex-1{flex:1}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.w-full{width:100%}.mx-auto{margin-left:auto;margin-right:auto}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mt-8{margin-top:2rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.pt-4{padding-top:1rem}.pb-4{padding-bottom:1rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.px-4{padding-left:1rem;padding-right:1rem}.p-2{padding:.5rem}.p-4{padding:1rem}.text-center{text-align:center}.text-left{text-align:left}.border-t{border-top:1px solid var(--glass-border)}.border-b{border-bottom:1px solid var(--glass-border)}.hidden{display:none!important}.block{display:block}.italic{font-style:italic}.font-semibold{font-weight:600}.font-bold{font-weight:700}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.overflow-hidden{overflow:hidden}.relative{position:relative}.absolute{position:absolute}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;user-select:none}.text-primary{color:var(--primary)}.text-dim{color:var(--text-dim)}.text-danger{color:#ef4444}.hide-scroll{scrollbar-width:none}.hide-scroll::-webkit-scrollbar{display:none}.app-toast{position:fixed;top:5.5rem;left:50%;transform:translate(-50%);z-index:10000;display:flex;align-items:center;gap:.6rem;padding:.8rem 1.4rem;border-radius:50px;font-size:.95rem;font-weight:600;letter-spacing:.01em;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 8px 32px #00000040,0 1px #ffffff14 inset;animation:toastIn .3s cubic-bezier(.34,1.56,.64,1),toastOut .3s ease 3.2s forwards;pointer-events:none;white-space:nowrap}.app-toast-success{background:#10b9812e;border:1px solid rgba(16,185,129,.4);color:#34d399}.app-toast-error{background:#ef44442e;border:1px solid rgba(239,68,68,.4);color:#f87171}.app-toast-info{background:#6366f12e;border:1px solid rgba(99,102,241,.35);color:var(--text-main)}@keyframes toastIn{0%{opacity:0;transform:translate(-50%) translateY(-14px) scale(.92)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}@keyframes toastOut{0%{opacity:1;transform:translate(-50%) translateY(0) scale(1)}to{opacity:0;transform:translate(-50%) translateY(-12px) scale(.95)}}@media(max-width:768px){.app-toast{top:auto;bottom:7rem;font-size:.9rem;padding:.7rem 1.2rem}}.confirm-overlay{position:fixed;inset:0;z-index:9999;background:#00000073;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:1.5rem;animation:fadeIn .15s ease}.confirm-dialog{width:100%;max-width:360px;padding:1.75rem 1.5rem 1.25rem;border-radius:18px!important;display:flex;flex-direction:column;gap:.75rem;animation:scaleIn .2s cubic-bezier(.34,1.56,.64,1);text-align:center}.confirm-icon{display:flex;justify-content:center;padding-bottom:.25rem}.confirm-icon-danger{color:#ef4444}.confirm-title{font-size:1.1rem;font-weight:700;color:var(--text-primary);margin:0}.confirm-message{font-size:.9rem;color:var(--text-dim);margin:0;line-height:1.5}.confirm-actions{display:flex;gap:.6rem;margin-top:.5rem}.confirm-actions .btn,.confirm-actions .btn-secondary,.confirm-actions .btn-danger,.confirm-actions .btn-primary{flex:1;justify-content:center}@keyframes scaleIn{0%{opacity:0;transform:scale(.88)}to{opacity:1;transform:scale(1)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.spot-detail-container{position:fixed;top:0;right:0;height:100dvh;width:50vw;z-index:2500;overflow:hidden;background:var(--bg-dark, #0f172a);box-shadow:-4px 0 60px #0009;animation:slideInRight .3s cubic-bezier(.22,1,.36,1);display:flex;flex-direction:column}@keyframes slideInRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@media(max-width:768px){.spot-detail-container{inset:auto 0 0;width:100%;height:var(--sheet-height, 65dvh);border-radius:20px 20px 0 0;box-shadow:0 -8px 40px #00000080;animation:slideUpSheet .3s cubic-bezier(.22,1,.36,1);transition:height .3s cubic-bezier(.22,1,.36,1)}.spot-detail-container[data-position=minimized]{--sheet-height: 30dvh;border-radius:20px 20px 0 0}.spot-detail-container[data-position=half]{--sheet-height: 65dvh;border-radius:20px 20px 0 0}.spot-detail-container[data-position=full]{--sheet-height: 100dvh;border-radius:12px 12px 0 0}.spot-detail-container.sheet-dragging{transition:none}@keyframes slideUpSheet{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}}.sheet-drag-zone{flex-shrink:0;touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none}.sheet-drag-handle{display:none}@media(max-width:768px){.sheet-drag-zone{flex-shrink:0;touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none}.sheet-drag-handle{display:flex;align-items:center;justify-content:center;padding:10px 0 4px;cursor:grab;touch-action:none;flex-shrink:0}.sheet-drag-handle:after{content:"";width:36px;height:5px;border-radius:3px;background:#ffffff4d;transition:background .2s}.sheet-drag-handle:active:after{background:#ffffff80}}.spot-detail-view{display:flex;flex-direction:column;height:100%;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.1) transparent}.spot-detail-header{position:relative;z-index:5;background:linear-gradient(180deg,var(--bg-dark) 0%,rgba(15,23,42,.95) 100%);border-bottom:1px solid rgba(148,163,184,.08);padding:.9rem 1.25rem;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);flex-shrink:0}.spot-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.spot-detail-grid-full{grid-column:1 / -1}@media(max-width:768px){.spot-detail-grid{display:flex;flex-direction:column;gap:0}.spot-detail-grid-full{grid-column:auto}}.spot-section{background:#1e293b73;border:1px solid rgba(148,163,184,.08);border-radius:16px;padding:1.1rem 1.15rem;transition:box-shadow .25s ease,border-color .25s ease,background .25s ease;position:relative}.spot-section:hover{box-shadow:none;border-color:#94a3b814}@media(max-width:768px){.spot-section{border-radius:0;border-left:none;border-right:none;border-top:none;border-bottom:1px solid rgba(148,163,184,.06);background:transparent;padding:.85rem 1rem}.spot-section:hover{box-shadow:none;background:transparent;border-color:#94a3b80f}.spot-section:last-child{border-bottom:none}}.spot-section-header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-bottom:.75rem}.spot-section-title{display:flex;align-items:center;gap:7px;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-dim)}.spot-section-title svg{opacity:.7}@media(min-width:769px){.spot-section-chevron{display:none!important}}.spot-detail-content{padding:.5rem .75rem;flex-shrink:0}.spot-detail-body{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;align-items:start}.spot-detail-body>.span-2{grid-column:1 / -1}@media(max-width:768px){.spot-detail-content{padding:0}.spot-detail-body{display:flex;flex-direction:column;gap:0}.spot-detail-body>.span-2{grid-column:auto}}.spot-sec-hdr{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:.85rem;cursor:pointer;-webkit-user-select:none;user-select:none}.spot-sec-title{display:flex;align-items:center;gap:7px;font-size:.74rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted, #94a3b8);flex:1}.spot-sec-chevron{color:var(--text-dim);transition:transform .25s ease;flex-shrink:0}.spot-sec-chevron.open{transform:rotate(180deg)}@media(min-width:769px){.spot-sec-hdr{cursor:default}.spot-sec-chevron{display:none!important}}@media(max-width:768px){.spot-section{overflow:hidden;min-width:0;width:100%;box-sizing:border-box}.spot-detail-body{overflow:hidden;min-width:0}.spot-detail-content{overflow-x:hidden}}.header-nav-inline{display:flex;align-items:center;gap:.75rem}.header-nav-btn{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 10px;border:none;background:transparent;color:var(--text-dim);border-radius:10px;cursor:pointer;transition:color .18s,background .18s;position:relative;font-family:inherit}.header-nav-btn:hover{color:var(--primary);background:#0ea5e914}.header-nav-btn.active{color:var(--primary);background:#0ea5e91f}.header-nav-label{font-size:.6rem;font-weight:600;letter-spacing:.02em;line-height:1;white-space:nowrap}.header-unread-dot{position:absolute;top:5px;right:8px;width:7px;height:7px;border-radius:50%;background:#f97316;box-shadow:0 0 5px #f97316b3}@media(max-width:380px){.header-nav-label{display:none}.header-nav-btn{padding:6px 7px}}.light-theme .header-nav-btn{color:var(--text-dim)}.light-theme .header-nav-btn:hover,.light-theme .header-nav-btn.active{color:var(--primary);background:#0ea5e91a}.page-view-header{display:flex;align-items:center;justify-content:space-between;padding:1.1rem 1.25rem .75rem;gap:.75rem;flex-shrink:0}.page-view-title{font-size:1.25rem;font-weight:800;letter-spacing:-.025em;margin:0;color:var(--text-main);line-height:1.2;display:flex;align-items:center;gap:.45rem}@keyframes shimmer{0%{transform:translate(-200%)}to{transform:translate(200%)}}.skeleton{overflow:hidden;position:relative;background:linear-gradient(90deg,#ffffff0a 25%,#ffffff1a,#ffffff0a 75%);background-size:200% 100%;animation:shimmer 1.6s ease-in-out infinite;border-radius:8px}.skeleton-line{height:12px;border-radius:6px}.skeleton-circle{border-radius:50%}.skeleton-card{border-radius:14px;padding:.9rem 1rem;margin-bottom:.5rem;min-height:68px;display:flex;align-items:center;gap:.85rem;border:1px solid var(--glass-border)}.light-theme .skeleton{background:linear-gradient(90deg,#0000000f 25%,#00000008,#0000000f 75%);background-size:200% 100%;animation:shimmer 1.6s ease-in-out infinite}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 2rem;text-align:center;gap:.6rem}.empty-state svg{opacity:.18;margin-bottom:.25rem}.empty-state-title{font-size:1rem;font-weight:700;color:var(--text-main);margin:0}.empty-state-desc{font-size:.82rem;color:var(--text-dim);margin:0;max-width:220px;line-height:1.55}.time-slider-container{position:absolute;bottom:4.5rem;left:50%;transform:translate(-50%);z-index:999;width:min(95vw,640px);padding:.5rem .85rem .45rem;background:#080f1eeb;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-radius:16px;border:1px solid rgba(255,255,255,.1);box-shadow:0 4px 28px #00000073;color:#e2e8f0;display:flex;flex-direction:column;gap:.3rem;overflow:visible}.time-slider-pill{background:#ffffff1a;border:1px solid rgba(255,255,255,.18);border-radius:50px;padding:.2rem .7rem;color:#fff}.time-slider-pill-wind{display:flex;align-items:center;gap:.3rem;cursor:pointer;transition:background .15s;-webkit-user-select:none;user-select:none}.time-slider-pill-wind:hover{background:#ffffff2e}.time-slider-track{position:absolute;top:50%;left:6px;right:6px;height:6px;background:#ffffff26;border-radius:3px;transform:translateY(-50%);pointer-events:none}.time-slider-track-active{position:absolute;top:50%;left:6px;height:6px;background:var(--primary, #0ea5e9);border-radius:3px;transform:translateY(-50%);pointer-events:none;opacity:.6;transition:width .08s ease}.time-slider-day-sep{position:absolute;top:4px;bottom:4px;width:1px;background:#ffffff4d;z-index:1;pointer-events:none}.time-slider-label{font-size:.65rem;color:#ffffffd9;font-weight:400}.time-slider-label.dim{color:#ffffff59}.planner-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:20px;height:20px;border-radius:50%;background:var(--primary, #0ea5e9);border:2.5px solid #fff;box-shadow:0 0 10px #0ea5e980,0 2px 8px #00000059;cursor:pointer;transition:transform .15s ease}.planner-slider::-webkit-slider-thumb:hover{transform:scale(1.2)}.planner-slider::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:var(--primary, #0ea5e9);border:2.5px solid #fff;box-shadow:0 0 10px #0ea5e980,0 2px 8px #00000059;cursor:pointer}.planner-slider::-webkit-slider-runnable-track{background:transparent}.planner-slider::-moz-range-track{background:transparent}.spot-forecast-slider{-webkit-appearance:none;appearance:none;width:100%;height:6px;border-radius:3px;background:#ffffff1f;outline:none;cursor:pointer;position:relative;z-index:2;margin:0}.spot-forecast-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:20px;height:20px;border-radius:50%;background:radial-gradient(circle at 40% 40%,#22d3ee,#0891b2);box-shadow:0 0 12px #06b6d499,0 0 4px #06b6d44d;border:2px solid rgba(255,255,255,.8);cursor:grab;transition:box-shadow .2s ease,transform .15s ease}.spot-forecast-slider::-webkit-slider-thumb:hover{transform:scale(1.15);box-shadow:0 0 18px #06b6d4cc,0 0 6px #06b6d466}.spot-forecast-slider::-webkit-slider-thumb:active{cursor:grabbing;transform:scale(1.1)}.spot-forecast-slider::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:radial-gradient(circle at 40% 40%,#22d3ee,#0891b2);box-shadow:0 0 12px #06b6d499;border:2px solid rgba(255,255,255,.8);cursor:grab}.spot-forecast-slider::-moz-range-track{height:6px;border-radius:3px;background:#ffffff1f}.spot-forecast-slider:focus{outline:none}.light-theme .spot-forecast-slider::-webkit-slider-thumb{background:#fff;box-shadow:0 0 6px #0003,0 0 12px #3b82f633;border-color:#3b82f680}.light-theme .spot-forecast-slider{background:#0000001a}.light-theme .spot-forecast-slider::-moz-range-track{background:#0000001a}.light-theme .time-slider-container{background:#ffffffeb;border-color:#0000001f;box-shadow:0 4px 24px #0000001f;color:#0f172a}.light-theme .time-slider-pill{background:#0000000f;border-color:#0000001f;color:#0f172a}.light-theme .time-slider-pill-wind:hover,.light-theme .time-slider-track{background:#0000001a}.light-theme .time-slider-day-sep{background:#0003}.light-theme .time-slider-label{color:#0f172abf}.light-theme .time-slider-label.dim{color:#0f172a59}.light-theme .planner-slider::-webkit-slider-thumb{border-color:#0f172a;box-shadow:0 0 8px #0ea5e966,0 2px 6px #00000026}.light-theme .planner-slider::-moz-range-thumb{border-color:#0f172a;box-shadow:0 0 8px #0ea5e966,0 2px 6px #00000026}.time-slider-light{background:#ffffffeb!important;border-color:#0000001f!important;box-shadow:0 4px 24px #0000001f!important;color:#0f172a!important}.time-slider-light .time-slider-pill{background:#0000000f;border-color:#0000001f;color:#0f172a}.time-slider-light .time-slider-pill-wind:hover,.time-slider-light .time-slider-track{background:#0000001a}.time-slider-light .time-slider-day-sep{background:#0003}.time-slider-light .time-slider-label{color:#0f172abf}.time-slider-light .time-slider-label.dim{color:#0f172a59}@keyframes hairpin-pulse{0%{transform:translate(-50%,-40px) scale(1);opacity:.65}50%{transform:translate(-50%,-40px) scale(.65);opacity:.35}to{transform:translate(-50%,-40px) scale(1);opacity:.65}}.hairpin-loading{animation:hairpin-pulse .8s ease-in-out infinite!important}.ts-clean-slider::-webkit-slider-runnable-track{background:transparent!important;border:none!important;height:100%!important}.ts-clean-slider::-moz-range-track{background:transparent!important;border:none!important;height:100%!important}.ts-clean-slider::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:#fff;border:2px solid var(--primary, #0ea5e9);box-shadow:0 1px 4px #0000004d;cursor:pointer;margin-top:0;position:relative;z-index:10}.ts-clean-slider::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:#fff;border:2px solid var(--primary, #0ea5e9);box-shadow:0 1px 4px #0000004d;cursor:pointer}.top-bar{position:fixed;top:0;left:0;right:0;z-index:9000;display:flex;align-items:center;gap:.5rem;padding:.35rem .75rem;padding-top:max(.35rem,env(safe-area-inset-top));background:transparent;pointer-events:none}.light-theme .top-bar{background:transparent}.top-bar-logo{cursor:pointer;flex-shrink:0;padding:4px;border-radius:10px;transition:background .2s;display:flex;align-items:center;pointer-events:auto}.top-bar-logo:hover,.top-bar-logo:active{background:#ffffff14}.top-bar-search{flex:1;display:flex;align-items:center;gap:8px;background:#080f1ed1;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.18);border-radius:50px;padding:6px 14px;position:relative;transition:border-color .2s,background .2s,box-shadow .2s;pointer-events:auto;box-shadow:0 2px 8px #00000040}.top-bar-search:focus-within{border-color:var(--primary);background:#080f1eeb;box-shadow:0 2px 12px #0ea5e933}.light-theme .top-bar-search{background:#ffffffeb;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(0,0,0,.15);box-shadow:0 2px 10px #00000014}.light-theme .top-bar-search:focus-within{border-color:var(--primary);background:#fffffff5;box-shadow:0 2px 12px #0ea5e926}.top-bar-search-input{flex:1;border:none;background:transparent;color:#fff;font-size:.85rem;outline:none;font-family:inherit;min-width:0}.light-theme .top-bar-search-input{color:#0f172a}.top-bar-search-input::placeholder{color:#ffffff80;opacity:1}.light-theme .top-bar-search-input::placeholder{color:#0006;opacity:1}.top-bar-search-results{position:absolute;top:calc(100% + 6px);left:0;right:0;background:var(--bg-card, #1a1f2e);border:1px solid var(--glass-border);border-radius:14px;max-height:320px;overflow-y:auto;z-index:100;box-shadow:0 8px 32px #0006;padding:4px;animation:searchDropIn .15s ease-out}.light-theme .top-bar-search-results{background:#fff;box-shadow:0 8px 32px #0000001f}@keyframes searchDropIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.search-result-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 14px;border:none;background:transparent;color:var(--text-color);font-size:.84rem;cursor:pointer;border-radius:10px;text-align:left;font-family:inherit;transition:background .15s}.search-result-item:hover,.search-result-item:active{background:#0ea5e91a}.search-result-item svg{color:var(--text-dim);flex-shrink:0}.search-no-results{padding:16px;text-align:center;color:var(--text-dim);font-size:.82rem}.top-bar-filter-btn{flex-shrink:0;width:34px;height:34px;border-radius:50%;border:1px solid rgba(255,255,255,.18);background:#080f1ed1;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);pointer-events:auto;color:#ffffffe6;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .2s,opacity .2s,background-color .2s;box-shadow:0 2px 8px #00000040}.top-bar-filter-btn:active{background:#0ea5e933;color:var(--primary)}.light-theme .top-bar-filter-btn{background:#ffffffeb;border:1px solid rgba(0,0,0,.15);color:#1e293b;box-shadow:0 2px 8px #00000014}.bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:9000;display:flex;align-items:flex-start;justify-content:space-around;padding:6px 4px;padding-bottom:max(6px,env(safe-area-inset-bottom));background:#0a0f19e0;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:1px solid rgba(255,255,255,.06)}.light-theme .bottom-nav{background:#ffffffeb;border-top:1px solid rgba(0,0,0,.08)}.bottom-nav-btn{display:flex;flex-direction:column;align-items:center;gap:2px;padding:4px 8px;border:none;background:transparent;color:var(--text-dim);cursor:pointer;font-family:inherit;transition:color .18s;position:relative;-webkit-tap-highlight-color:transparent;min-width:52px}.bottom-nav-btn.active{color:var(--primary)}.bottom-nav-btn:active:not(.bottom-nav-create){color:var(--primary)}.bottom-nav-label{font-size:.58rem;font-weight:600;letter-spacing:.02em;line-height:1;white-space:nowrap;margin-top:1px}.bottom-nav-dot{position:absolute;top:0;right:12px;width:7px;height:7px;border-radius:50%;background:#f97316;box-shadow:0 0 5px #f97316b3}.bottom-nav-create{padding:0;margin-top:-16px}.bottom-nav-create-icon{width:52px;height:52px;border-radius:50%;background:linear-gradient(135deg,var(--primary),#0284c7);display:flex;align-items:center;justify-content:center;box-shadow:0 4px 16px #0ea5e966,0 0 0 3px #0a0f19e0;transition:transform .2s,box-shadow .2s}.bottom-nav-create:active .bottom-nav-create-icon{transform:scale(.92)}.light-theme .bottom-nav-create-icon{box-shadow:0 4px 16px #0ea5e94d,0 0 0 3px #ffffffeb}@media(max-width:767px){.main-view{margin-top:0!important}}@media(max-width:767px){:root{--bottom-nav-height: 58px}.main-header{display:none!important}.top-bar{padding:.3rem .5rem;padding-top:max(.3rem,env(safe-area-inset-top))}body{padding-top:0;padding-bottom:58px}.main-view.full-width{position:fixed;inset:0 0 58px;z-index:1050;overflow-y:auto}}@media(min-width:768px){.bottom-nav{display:none}.top-bar{display:none!important}}.top-bar-logo.session-active{position:relative}.top-bar-logo.session-active img{animation:logo-pulse 2s ease-in-out infinite}@keyframes logo-pulse{0%,to{opacity:.7}50%{opacity:1}}.status-popover-backdrop{position:fixed;inset:0;z-index:9998;background:#0003;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.status-popover{position:absolute;top:calc(100% + 8px);left:0;z-index:9999;min-width:200px;padding:12px 14px;background:#0a1223f2;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.1);border-radius:14px;box-shadow:0 8px 32px #0006;animation:popover-in .2s cubic-bezier(.16,1,.3,1);pointer-events:auto}.light-theme .status-popover{background:#fffffff7;border:1px solid rgba(0,0,0,.08);box-shadow:0 8px 32px #0000001f}@keyframes popover-in{0%{opacity:0;transform:translateY(-6px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.status-popover-name{font-size:.82rem;font-weight:700;color:var(--text-main);margin-bottom:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}.status-popover-pills{display:grid;grid-template-columns:1fr 1fr;gap:6px}.status-pill{padding:8px 6px;border-radius:10px;border:1.5px solid rgba(255,255,255,.1);background:#ffffff0a;color:var(--text-dim);font-size:.78rem;font-weight:600;font-family:inherit;cursor:pointer;transition:transform .15s,opacity .15s,background-color .15s;text-align:center;white-space:nowrap}.status-pill:active{transform:scale(.95)}.status-pill.current{background:color-mix(in srgb,var(--pill-color, #6366f1) 18%,transparent);border-color:var(--pill-color, #6366f1);color:var(--pill-color, #6366f1)}.light-theme .status-pill{border-color:#00000014;background:#00000008}.light-theme .status-pill.current{background:color-mix(in srgb,var(--pill-color, #6366f1) 12%,transparent);border-color:var(--pill-color, #6366f1);color:var(--pill-color, #6366f1)}.bottom-nav-session-dot{position:absolute;top:-1px;right:-4px;width:8px;height:8px;border-radius:50%;animation:pulse-dot 2s ease-in-out infinite}@media(max-width:767px){.time-slider-container{bottom:4rem!important}.bottom-sheet{bottom:var(--bottom-nav-height, 58px)}.bottom-sheet.open{transform:translateY(0)}}.bottom-nav-create-icon.bottom-nav-map-mode{background:linear-gradient(135deg,#64748b,#475569);box-shadow:0 4px 16px #64748b66,0 0 0 3px #0a0f19e0}.light-theme .bottom-nav-create-icon.bottom-nav-map-mode{box-shadow:0 4px 16px #64748b4d,0 0 0 3px #ffffffeb}.top-bar .btn-primary{pointer-events:auto;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.bottom-nav{pointer-events:auto}@media(max-width:767px){.profile-modal-overlay .modal-content,.profile-modal .modal-content{padding-bottom:64px}}@media(max-width:767px){.profile-modal-body{overflow-y:visible!important;flex:none!important;min-height:auto!important}}@media(max-width:767px){.profile-modal{max-height:none!important;overflow:visible!important;height:auto!important}}@media(max-width:767px){.main-view.show-sessions-mobile .sessions-panel{padding-top:0}}@media(min-width:768px){.bottom-sheet,.modal-overlay{bottom:0}}.pso-overlay{position:fixed;inset:0;z-index:10000;background:#0009;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;padding:16px}.pso-overlay.pso-fade-in{animation:psoFadeIn .3s ease-out}.pso-overlay.pso-fade-out{animation:psoFadeOut .3s ease-in forwards}@keyframes psoFadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes psoFadeOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}.pso-container{width:100%;max-width:440px;max-height:90dvh;background:var(--bg-primary, #fff);border-radius:24px;overflow-y:auto;box-shadow:0 20px 60px #0000004d;display:flex;flex-direction:column}[data-theme=dark] .pso-container{background:#1a1a2e;box-shadow:0 20px 60px #0009}.pso-header{display:flex;align-items:center;gap:12px;padding:16px 16px 8px;position:sticky;top:0;z-index:1;background:inherit}.pso-back,.pso-close{width:36px;height:36px;border-radius:50%;border:none;background:var(--bg-secondary, #f0f0f0);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-primary, #333);transition:background .2s}.pso-back:hover,.pso-close:hover{background:var(--bg-tertiary, #e0e0e0)}[data-theme=dark] .pso-back,[data-theme=dark] .pso-close{background:#ffffff1a;color:#fff}.pso-progress-track{flex:1;height:4px;border-radius:2px;background:var(--bg-secondary, #e8e8e8);overflow:hidden}[data-theme=dark] .pso-progress-track{background:#ffffff26}.pso-progress-fill{height:100%;border-radius:2px;background:linear-gradient(90deg,#4f8ef7,#7c5cfc);transition:width .4s cubic-bezier(.4,0,.2,1)}.pso-content{padding:8px 24px 24px;animation:psoSlideIn .35s ease-out}@keyframes psoSlideIn{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}.pso-step{display:flex;flex-direction:column;align-items:center;text-align:center}.pso-title{font-size:1.5rem;font-weight:700;margin:0 0 8px;color:var(--text-primary, #111);line-height:1.3}[data-theme=dark] .pso-title{color:#fff}.pso-subtitle{font-size:.95rem;color:var(--text-secondary, #666);margin:0 0 24px;line-height:1.5;max-width:340px}[data-theme=dark] .pso-subtitle{color:#ffffffa6}.pso-actions{width:100%;display:flex;flex-direction:column;align-items:center;gap:12px;margin-top:16px}.pso-btn-primary{width:100%;padding:14px 24px;border:none;border-radius:14px;background:linear-gradient(135deg,#4f8ef7,#7c5cfc);color:#fff;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .15s,box-shadow .2s;display:flex;align-items:center;justify-content:center;gap:8px}.pso-btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 20px #4f8ef766}.pso-btn-primary:active{transform:translateY(0)}.pso-btn-primary:disabled{opacity:.6;cursor:not-allowed}.pso-btn-skip{background:none;border:none;color:var(--text-secondary, #999);font-size:.9rem;cursor:pointer;padding:8px;transition:color .2s}.pso-btn-skip:hover{color:var(--text-primary, #555)}[data-theme=dark] .pso-btn-skip{color:#ffffff73}[data-theme=dark] .pso-btn-skip:hover{color:#fffc}.pso-hero-cards{display:flex;flex-direction:column;gap:10px;width:100%;margin-bottom:28px;perspective:800px}.pso-hero-card{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:14px;background:var(--bg-secondary, #f5f6fa);border:1px solid var(--border-color, rgba(0,0,0,.06));animation:psoCardSlide .5s ease-out backwards}[data-theme=dark] .pso-hero-card{background:#ffffff0f;border-color:#ffffff14}.pso-card-1{animation-delay:.1s}.pso-card-2{animation-delay:.25s}.pso-card-3{animation-delay:.4s}@keyframes psoCardSlide{0%{opacity:0;transform:translateY(20px) rotateX(-5deg)}to{opacity:1;transform:none}}.pso-card-emoji{font-size:1.8rem}.pso-card-info{display:flex;flex-direction:column;flex:1;text-align:left}.pso-card-spot{font-weight:600;font-size:.95rem;color:var(--text-primary, #222)}[data-theme=dark] .pso-card-spot{color:#fff}.pso-card-disc{font-size:.8rem;color:var(--text-secondary, #888)}[data-theme=dark] .pso-card-disc{color:#ffffff80}.pso-card-badge{background:linear-gradient(135deg,#4f8ef7,#7c5cfc);color:#fff;font-size:.75rem;font-weight:700;padding:4px 10px;border-radius:20px}.pso-discipline-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;width:100%;margin-bottom:8px}.pso-discipline-chip{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:12px;cursor:pointer;background:var(--bg-secondary, #f5f6fa);border:2px solid transparent;transition:transform .2s,opacity .2s,background-color .2s;text-align:left;color:var(--text-primary, #333)}[data-theme=dark] .pso-discipline-chip{background:#ffffff0f;color:#fff}.pso-discipline-chip:hover{border-color:#4f8ef74d}.pso-discipline-chip.selected{border-color:#4f8ef7;background:#4f8ef71a}[data-theme=dark] .pso-discipline-chip.selected{background:#4f8ef733}.pso-chip-emoji{font-size:1.4rem}.pso-chip-label{flex:1;font-size:.9rem;font-weight:500}.pso-chip-check{color:#4f8ef7;display:flex}.pso-icon-circle{width:88px;height:88px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:20px}.pso-icon-location{background:linear-gradient(135deg,#4f8ef726,#7c5cfc26);color:#4f8ef7}.pso-icon-bell{background:linear-gradient(135deg,#ffa50026,#ff643226);color:#ff8c00}.pso-location-preview{width:100%;margin-bottom:8px}.pso-map-placeholder{padding:32px;border-radius:16px;background:var(--bg-secondary, #f0f2f5);display:flex;flex-direction:column;align-items:center;gap:12px;color:var(--text-secondary, #888)}[data-theme=dark] .pso-map-placeholder{background:#ffffff0d;color:#fff6}.pso-compass-spin{animation:psoSpin 3s linear infinite}@keyframes psoSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.pso-spots-list{width:100%;display:flex;flex-direction:column;gap:4px;max-height:360px;overflow-y:auto;margin-bottom:8px}.pso-spot-card{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:12px;background:var(--bg-secondary, #f5f6fa);transition:background .2s}[data-theme=dark] .pso-spot-card{background:#ffffff0f}.pso-spot-info{flex:1;display:flex;flex-direction:column;text-align:left}.pso-spot-name{font-weight:600;font-size:.95rem;color:var(--text-primary, #222)}[data-theme=dark] .pso-spot-name{color:#fff}.pso-spot-meta{font-size:.8rem;color:var(--text-secondary, #888);margin-top:2px}[data-theme=dark] .pso-spot-meta{color:#ffffff73}.pso-fav-btn{width:40px;height:40px;border-radius:50%;border:none;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-secondary, #ccc);transition:background-color .2s,color .2s,border-color .2s,opacity .2s}.pso-fav-btn:hover{color:#f5a623;transform:scale(1.1)}.pso-fav-btn.faved{color:#f5a623}.pso-loading{padding:40px;display:flex;flex-direction:column;align-items:center;gap:12px;color:var(--text-secondary, #888)}.pso-notif-preview{width:100%;margin-bottom:8px}.pso-notif-card{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;border-radius:14px;background:var(--bg-secondary, #f5f6fa);border:1px solid var(--border-color, rgba(0,0,0,.06));text-align:left}[data-theme=dark] .pso-notif-card{background:#ffffff0f;border-color:#ffffff14}.pso-notif-icon{font-size:1.6rem}.pso-notif-text{display:flex;flex-direction:column;gap:4px}.pso-notif-text strong{font-size:.9rem;color:var(--text-primary, #222)}[data-theme=dark] .pso-notif-text strong{color:#fff}.pso-notif-text span{font-size:.85rem;color:var(--text-secondary, #666);line-height:1.4}[data-theme=dark] .pso-notif-text span{color:#ffffff8c}@media(max-width:480px){.pso-container{max-height:100dvh;border-radius:0}.pso-overlay{padding:0}.pso-discipline-grid{grid-template-columns:repeat(2,1fr)}}.desktop-search-bar{display:none}@media(min-width:768px){.desktop-search-bar{display:block!important}}.desktop-search-bar>div:first-child{background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:7px 16px;transition:background-color .2s ease,color .2s ease,opacity .2s ease}.desktop-search-bar>div:first-child:focus-within{border-color:var(--primary);background:#ffffff1a;box-shadow:0 0 0 3px #0ea5e91f}.light-theme .desktop-search-bar>div:first-child{background:#0000000a;border-color:#0000001a}.light-theme .desktop-search-bar>div:first-child:focus-within{border-color:var(--primary);background:#0000000f;box-shadow:0 0 0 3px #0ea5e914}.desktop-search-bar input::placeholder{color:#fff6;opacity:1}.light-theme .desktop-search-bar input::placeholder{color:#00000059;opacity:1}.map-legend{position:absolute;bottom:28px;left:10px;z-index:1000;background:#0f172ac7;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:6px 10px;cursor:pointer;font-family:system-ui,-apple-system,sans-serif;transition:transform .25s cubic-bezier(.4,0,.2,1),opacity .25s cubic-bezier(.4,0,.2,1),background-color .25s cubic-bezier(.4,0,.2,1);max-width:160px;box-shadow:0 4px 16px #0000004d}.map-legend__header{display:flex;align-items:center;gap:5px;color:#ffffffb3;font-size:10px;font-weight:600;letter-spacing:.03em;text-transform:uppercase}.map-legend__chevron{margin-left:auto;transition:transform .25s ease}.map-legend__body{display:none;padding-top:6px;margin-top:6px;border-top:1px solid rgba(255,255,255,.08)}.map-legend--open .map-legend__body{display:block}.map-legend__row{display:flex;align-items:center;gap:7px;padding:2px 0;color:#ffffffd9;font-size:11px;font-weight:500}.map-legend__dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;box-shadow:0 0 0 1.5px #fff3}.light-tiles .map-legend{background:#ffffffe0;border-color:#00000014;box-shadow:0 4px 16px #0000001f}.light-tiles .map-legend__header{color:#475569}.light-tiles .map-legend__row{color:#1e293b}.light-tiles .map-legend__body{border-top-color:#0000000f}.spot-zone-popup .leaflet-popup-content-wrapper{background:#0f172aeb;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.1);border-radius:14px;box-shadow:0 8px 32px #00000080;color:#e2e8f0;padding:0}.spot-zone-popup .leaflet-popup-content{margin:10px 14px;font-size:13px;line-height:1.4}.spot-zone-popup .leaflet-popup-content div{color:#e2e8f0!important}.spot-zone-popup .leaflet-popup-content div[style*="color: #0f172a"],.spot-zone-popup .leaflet-popup-content div[style*="color:#0f172a"]{color:#f1f5f9!important}.spot-zone-popup .leaflet-popup-content div[style*="color: #475569"],.spot-zone-popup .leaflet-popup-content div[style*="color:#475569"]{color:#94a3b8!important}.spot-zone-popup .leaflet-popup-content div[style*="color: #334155"],.spot-zone-popup .leaflet-popup-content div[style*="color:#334155"]{color:#cbd5e1!important}.spot-zone-popup .leaflet-popup-content div[style*="color: #64748b"],.spot-zone-popup .leaflet-popup-content div[style*="color:#64748b"]{color:#94a3b8!important}.spot-zone-popup .leaflet-popup-content div[style*="color: #94a3b8"],.spot-zone-popup .leaflet-popup-content div[style*="color:#94a3b8"]{color:#64748b!important}.spot-zone-popup .leaflet-popup-content div[style*=border-top]{border-color:#ffffff1a!important}.spot-zone-popup .leaflet-popup-content img{border-radius:8px}.spot-zone-popup .leaflet-popup-tip{background:#0f172aeb;box-shadow:none}.spot-zone-popup .leaflet-popup-close-button{color:#94a3b8!important;font-size:18px!important;padding:6px 8px!important}.spot-zone-popup .leaflet-popup-close-button:hover{color:#e2e8f0!important}.light-theme .spot-zone-popup .leaflet-popup-content-wrapper{background:#fffffff5;border:1px solid rgba(0,0,0,.08);color:#1e293b}.light-theme .spot-zone-popup .leaflet-popup-content div{color:inherit!important}.light-theme .spot-zone-popup .leaflet-popup-tip{background:#fffffff5}.light-theme .spot-zone-popup .leaflet-popup-close-button{color:#64748b!important}.spot-birds-eye{position:relative;height:200px;border-radius:16px;overflow:hidden;border:1px solid rgba(6,182,212,.2);box-shadow:0 0 20px #06b6d414,inset 0 0 0 1px #06b6d40d}.spot-birds-eye .leaflet-container{height:100%;width:100%;pointer-events:none;background:var(--bg-base)}.spot-birds-eye--expanded .leaflet-container{pointer-events:auto!important}.spot-birds-eye .leaflet-control-zoom,.spot-birds-eye .leaflet-control-attribution{display:none!important}.spot-birds-eye-overlay{position:absolute;inset:0;z-index:800;pointer-events:none;background:linear-gradient(to top,rgba(0,0,0,.85) 0%,rgba(0,0,0,.4) 30%,rgba(0,0,0,.15) 60%,transparent 100%)}.spot-birds-eye-badges{position:absolute;bottom:0;left:0;right:0;z-index:801;display:flex;align-items:center;gap:6px;padding:8px 12px;pointer-events:none;background:transparent}.spot-birds-eye-badge{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:8px;font-size:.68rem;font-weight:600;color:#ffffffe6;background:#0f172ae6;border:1px solid rgba(255,255,255,.12);letter-spacing:.01em;pointer-events:auto}.spot-birds-eye-badge--clickable{cursor:pointer;transition:background .2s ease,transform .15s ease}.spot-birds-eye-badge--clickable:hover{background:#1e293be6;transform:scale(1.05)}.spot-birds-eye-badge--clickable:active{transform:scale(.97)}.spot-birds-eye-arrow{position:absolute;top:35%;left:30%;z-index:802;pointer-events:none;filter:drop-shadow(0 2px 12px rgba(6,182,212,.4));transition:width .4s ease,height .4s ease}.spot-birds-eye-arrow svg{transition:transform .4s ease}.spot-birds-eye-current{position:absolute;top:55%;left:65%;z-index:803;pointer-events:none;filter:drop-shadow(0 1px 4px rgba(255,255,255,.5));transition:transform .4s ease}@media(min-width:769px){.forecast-card-inner{display:grid;grid-template-columns:1fr 1fr;gap:0}.forecast-card-left{border-right:1px solid rgba(148,163,184,.08)}}@media(max-width:768px){.forecast-card-inner{display:flex;flex-direction:column}}.forecast-card-grid{display:grid;grid-template-columns:1fr 1fr;min-height:160px}.forecast-card-grid>.forecast-col-left{padding:10px 14px 6px;border-right:1px solid rgba(255,255,255,.05);display:flex;flex-direction:column;justify-content:center}.forecast-card-grid>.forecast-col-right{padding:8px 12px 6px;display:flex;flex-direction:column;justify-content:center}@media(max-width:768px){.forecast-card-grid{grid-template-columns:1fr}.forecast-card-grid>.forecast-col-left{border-right:none;border-bottom:1px solid rgba(255,255,255,.05)}}@media(max-width:600px){.spot-birds-eye{height:160px}.spot-marine-grid{grid-template-columns:repeat(2,1fr)!important;gap:8px!important}}.spot-chips-bar{display:flex;align-items:center;gap:6px;padding:10px 14px;width:100%;box-sizing:border-box;background:var(--bg-card, #1e293b);border-bottom:1px solid var(--glass-border, rgba(255,255,255,.06));overflow:hidden;flex-shrink:0}.spot-chip{display:inline-flex;align-items:center;justify-content:center;gap:4px;height:32px;padding:0 12px;border-radius:16px;background:transparent;border:1px solid var(--glass-border, rgba(255,255,255,.1));color:var(--text-main, #e2e8f0);font-size:.76rem;font-weight:500;font-family:inherit;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,color .15s ease;white-space:nowrap;text-decoration:none;flex-shrink:1;min-width:0;overflow:hidden;letter-spacing:.01em}.spot-chip:hover{border-color:var(--primary, #3b82f6);color:var(--primary, #3b82f6)}.spot-chip-primary{background:#3b82f6;border:none;color:#fff;font-weight:600;font-size:.78rem;padding:0 14px;box-shadow:0 1px 4px #3b82f633;flex-shrink:0}.spot-chip-primary:hover{background:#2563eb;color:#fff}.spot-chip-heart{width:32px;height:32px;padding:0;border-radius:50%;flex-shrink:0;flex-grow:0}.light-theme .spot-chips-bar{background:#fff;border-bottom-color:#0000000f}.light-theme .spot-chip{border-color:#0000001a;color:#334155}.light-theme .spot-chip:hover{border-color:#3b82f6;color:#3b82f6}.light-theme .spot-chip-primary{color:#fff}.light-theme .spot-calendar-container{background:#ffffffd9;border-color:#00000014}.light-theme .spot-calendar-card:hover{background:#0000000a}@media(max-width:600px){.spot-chips-bar{gap:6px;padding:9px 12px}.spot-chip{height:30px;padding:0 10px;font-size:.74rem;border-radius:15px}.spot-chip-primary{padding:0 12px;font-size:.76rem}.spot-chip-heart{width:34px;height:34px}}.spot-calendar-container{display:flex;gap:2px;overflow-x:hidden;-webkit-overflow-scrolling:touch;padding:4px;margin-bottom:.75rem;background:var(--glass);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--glass-border);border-radius:14px;width:100%;box-sizing:border-box;min-width:0}.spot-calendar-container.hide-scroll::-webkit-scrollbar{display:none}.spot-calendar-container.hide-scroll{-ms-overflow-style:none;scrollbar-width:none}.spot-calendar-card{flex:1 1 0%!important;min-width:0!important;width:0;-webkit-appearance:none;appearance:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:8px 4px;border-radius:10px;cursor:pointer;transition:transform .2s ease,opacity .2s ease,box-shadow .2s ease;min-height:44px;background:transparent;font-family:inherit;overflow:hidden;text-overflow:ellipsis}.spot-calendar-card:hover{background:#ffffff0d}@media(max-width:600px){.spot-calendar-card{padding:6px 2px;min-width:0!important;flex:1 1 0%!important;width:0}.spot-calendar-container{gap:2px;padding:6px;border-radius:14px}.spot-marine-grid{grid-template-columns:repeat(2,1fr)!important}}.spot-marine-grid{padding:0 16px 8px;display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px}.spot-marine-card{display:flex;align-items:center;gap:5px;padding:6px 10px;min-height:38px;background:#ffffff08;border:1px solid var(--glass-border);border-radius:8px;transition:transform .2s ease,opacity .2s ease,background-color .2s ease}@keyframes score-spin{to{transform:rotate(360deg)}}.story-ring{background:linear-gradient(135deg,#0ea5e9,#0284c7);border-radius:50%;padding:2.5px;cursor:pointer;transition:transform .2s,box-shadow .2s}.story-ring:hover{transform:scale(1.08)}.story-ring--seen{background:var(--glass-border)}.story-ring img,.story-ring .story-ring-inner{border-radius:50%;border:2px solid var(--bg-card);display:block}.story-viewer{position:fixed;inset:0;z-index:9999;background:#000;display:flex;flex-direction:column;touch-action:pan-y}.story-viewer__progress{display:flex;gap:3px;padding:8px 12px 4px;z-index:2}.story-viewer__progress-seg{flex:1;height:2.5px;background:#fff3;border-radius:2px;overflow:hidden}.story-viewer__progress-fill{height:100%;background:var(--primary);border-radius:2px;transition:width .1s linear}@keyframes story-emoji-float{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-80px) scale(1.4)}}.story-emoji-float{position:fixed;font-size:2rem;pointer-events:none;z-index:10000;animation:story-emoji-float .9s ease-out forwards}.story-upload-modal{position:fixed;inset:0;z-index:9998;display:flex;align-items:center;justify-content:center;background:var(--overlay);padding:1rem}.story-upload-card{background:var(--bg-card);border:1px solid var(--glass-border);border-radius:16px;width:100%;max-width:400px;overflow:hidden;max-height:calc(100dvh - 2rem);overflow-y:auto}.story-scroll-row{display:flex;gap:12px;overflow-x:auto;padding:8px 0;scrollbar-width:none}.story-scroll-row::-webkit-scrollbar{display:none}.sqv-card{overflow:hidden;display:flex;flex-direction:column}.sqv-hero{padding:1.1rem 1rem .9rem;position:relative;overflow:hidden}.sqv-hero:before{content:\'\';position:absolute;inset:0;background:#00000038;pointer-events:none}.sqv-hero:after{content:\'\';position:absolute;bottom:-30px;right:-30px;width:120px;height:120px;border-radius:50%;background:#ffffff0f;pointer-events:none}.sqv-hero>*{position:relative;z-index:1}.sqv-hero-chips{display:flex;gap:.4rem;margin-bottom:.55rem;flex-wrap:wrap;align-items:center}.sqv-chip{font-size:.62rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;padding:.2rem .55rem;border-radius:999px;display:inline-flex;align-items:center;gap:4px}.sqv-chip--discipline{background:#ffffff2e;color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.sqv-chip--status{background:#0000002e;color:#fff;border:1px solid rgba(255,255,255,.25)}.sqv-hero-title{font-size:1.2rem;font-weight:800;color:#fff;margin:0 0 .45rem;letter-spacing:-.025em;line-height:1.2;text-shadow:0 1px 4px rgba(0,0,0,.2)}.sqv-hero-meta{display:flex;align-items:center;gap:.3rem;font-size:.78rem;color:#ffffffd1;flex-wrap:wrap;line-height:1}.sqv-hero-meta svg{opacity:.75;flex-shrink:0}.sqv-sep{opacity:.4;font-size:.9rem}.sqv-body{padding:.85rem 1rem 1rem;display:flex;flex-direction:column;gap:.65rem}.sqv-participants{display:flex;align-items:center;gap:.5rem;min-height:28px}.sqv-avatar-stack{display:flex;align-items:center}.sqv-avatar{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.62rem;font-weight:700;color:#fff;border:2px solid var(--bg-dark);position:relative;transition:transform .15s}.sqv-avatar:hover{transform:scale(1.08);z-index:10!important}.sqv-avatar--overflow{background:var(--glass);border-color:var(--glass-border);color:var(--text-dim);font-size:.58rem}.sqv-pax-label{font-size:.8rem;color:var(--text-dim)}.sqv-pax-label--empty{font-size:.8rem;font-style:italic;color:var(--text-dim)}.sqv-divider{height:1px;background:var(--glass-border)}.sqv-actions{display:flex;flex-direction:column;gap:.45rem}.sqv-btn-full{width:100%;height:48px;border-radius:12px;font-size:.95rem;font-weight:700;display:flex;align-items:center;justify-content:center;gap:.45rem;cursor:pointer}.sqv-share-row{display:flex;gap:.45rem;align-items:stretch}.sqv-btn-share{flex:1;height:40px;border-radius:10px;font-size:.82rem;font-weight:600;display:flex;align-items:center;justify-content:center;gap:.4rem;background:#6366f117;border:1px solid rgba(99,102,241,.22);color:var(--primary);cursor:pointer;transition:background .15s,border-color .15s}.sqv-btn-share:hover{background:#6366f129;border-color:#6366f159}.sqv-btn-image-icon{width:40px;height:40px;flex-shrink:0;border-radius:10px;display:flex;align-items:center;justify-content:center;background:#0ea5e917;border:1px solid rgba(14,165,233,.22);color:#0ea5e9;cursor:pointer;transition:background .15s}.sqv-btn-image-icon:hover{background:#0ea5e92e}.sqv-btn-leave{width:100%;height:40px;border-radius:10px;font-size:.82rem;font-weight:600;display:flex;align-items:center;justify-content:center;gap:.4rem;background:#ef44440f;border:1px solid rgba(239,68,68,.15);color:#ef4444;cursor:pointer;transition:background .15s}.sqv-btn-leave:hover{background:#ef44441f}.sqv-btn-join{width:100%;height:44px;border-radius:12px;font-size:.9rem;font-weight:700;display:flex;align-items:center;justify-content:center;gap:.45rem}.sqv-btn-details-small{width:100%;height:36px;border-radius:9px;font-size:.8rem;font-weight:600;display:flex;align-items:center;justify-content:center;background:#ffffff0d;border:1px solid var(--glass-border);color:var(--text-dim);cursor:pointer;transition:background .15s,color .15s}.sqv-btn-details-small:hover{background:#ffffff17;color:var(--text-main)}.light-theme .sqv-btn-share{background:#6366f10f;border-color:#6366f12e}.light-theme .sqv-btn-share:hover{background:#6366f11f}.light-theme .sqv-btn-image-icon{background:#0ea5e90f;border-color:#0ea5e92e}.light-theme .sqv-btn-leave{background:#ef44440a;border-color:#ef44441f}.light-theme .sqv-hero:before{background:#0000001a}.light-theme .sqv-btn-details-small{background:#0000000a;border-color:#0000001a}.light-theme .sqv-chip--discipline{background:#ffffff40}.light-theme .sqv-avatar{border-color:#f8fafc}.session-details-sidebar .sqv-card{border-radius:14px;overflow:hidden;border:1px solid var(--glass-border)}.session-details-sidebar .sqv-hero-title{font-size:1.25rem}.bottom-sheet .sqv-card{border-radius:0}.bottom-sheet--no-header{background:transparent!important}.bottom-sheet--no-header .bottom-sheet-handle-container{position:absolute;top:0;left:0;right:0;z-index:20;background:transparent;padding:8px 0 4px}.bottom-sheet--no-header .bottom-sheet-handle{background:#ffffff73}.bottom-sheet--no-header .bottom-sheet-content{padding-top:0}.bottom-sheet--no-header .sqv-card{min-height:100%;background:var(--glass);border-radius:0}.bottom-sheet--no-header .sqv-hero{border-radius:0;padding-top:22px}.gps-hover-label{opacity:0;transition:opacity .2s}div:hover>div>.gps-hover-label{opacity:1}.gps-viewer-overlay{position:fixed;inset:0;z-index:9999;background:#000000eb;display:flex;align-items:stretch;justify-content:stretch}.gps-viewer-map{position:absolute;inset:0;width:100%;height:100%}.gps-viewer-close{position:absolute;top:1rem;right:1rem;z-index:1000;width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,.25);background:#0000008c;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,transform .15s}.gps-viewer-close:hover{background:#000000bf;transform:scale(1.08)}.gps-viewer-infobar{position:absolute;bottom:calc(1.25rem + env(safe-area-inset-bottom,0px));left:50%;transform:translate(-50%);z-index:1000;display:flex;flex-direction:column;align-items:center;gap:.4rem;padding:.75rem 1.5rem;border-radius:18px;background:#050c1cb8;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.12);box-shadow:0 8px 32px #00000073;white-space:nowrap;max-width:calc(100vw - 2rem)}.gps-viewer-name{font-size:.9rem;font-weight:700;color:#fff;letter-spacing:-.01em}.gps-viewer-stats{display:flex;gap:1.25rem;align-items:center}.gps-viewer-stat{display:flex;flex-direction:column;align-items:center;gap:0}.gps-viewer-stat-val{font-size:1.1rem;font-weight:800;color:#facc15;line-height:1.1}.gps-viewer-stat-unit{font-size:.65rem;font-weight:600;color:#fff9;margin-left:1px}.gps-viewer-stat-lbl{font-size:.6rem;color:#fff6;text-transform:uppercase;letter-spacing:.04em;margin-top:1px}.light-theme .gps-viewer-infobar{background:#ffffffd1;border-color:#0000001a}.light-theme .gps-viewer-name{color:var(--text-main)}.light-theme .gps-viewer-stat-unit,.light-theme .gps-viewer-stat-lbl{color:#00000073}.light-theme .gps-viewer-close{background:#fffc;border-color:#00000026;color:#1a1a2e}.leaflet-container{will-change:transform;isolation:isolate;-webkit-isolation:isolate}.leaflet-tile-container{will-change:transform}.spot-tab-content,.spot-section,.community-section{contain:layout style}.map-legend{position:absolute;bottom:80px;left:10px;background:var(--bg-card);border:1px solid var(--glass-border);border-radius:12px;z-index:800;color:var(--text-main);box-shadow:0 4px 6px #0000001a;overflow:hidden;transition:max-height .3s ease;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.map-legend__header{padding:8px 12px;display:flex;align-items:center;gap:8px;cursor:pointer;font-size:.85rem;font-weight:600;-webkit-user-select:none;user-select:none}.map-legend__chevron{margin-left:auto;transition:transform .3s ease}.map-legend--open .map-legend__chevron{transform:rotate(180deg)}.map-legend__body{max-height:0;opacity:0;transition:transform .3s ease,opacity .3s ease,background-color .3s ease;padding:0 12px}.map-legend--open .map-legend__body{max-height:300px;opacity:1;padding:0 12px 12px}.map-legend__row{display:flex;align-items:center;gap:8px;font-size:.75rem;color:var(--text-dim);padding:4px 0}.map-legend__dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.light-theme .wind-slider,.light-theme input[type=range]{accent-color:var(--accent)}.light-theme .wind-slider::-webkit-slider-track{background:var(--glass-border)}.light-theme .wind-slider::-webkit-slider-thumb{background:var(--accent);border:2px solid white;box-shadow:0 1px 4px #0003}.light-theme .segmented-control{background:#0000000f;border:1px solid rgba(0,0,0,.1)}.light-theme .segmented-control button{color:var(--text-dim)}.light-theme .segmented-control button.active,.light-theme .segmented-control button[data-active=true]{background:#fff;color:var(--accent);box-shadow:0 1px 3px #0000001f}.light-theme .bottom-nav{background:#fffffff2;border-top:1px solid rgba(0,0,0,.08)}.light-theme .bottom-nav-btn{color:var(--text-dim)}.light-theme .bottom-nav-btn.active{color:var(--accent)}.light-theme .bottom-nav-btn svg{stroke:currentColor}.light-theme .profile-section,.light-theme .settings-card{background:#fff;border:1px solid rgba(0,0,0,.08);box-shadow:0 1px 3px #0000000d}.light-theme input:not([type=range]),.light-theme textarea,.light-theme select{background:var(--input-bg)!important;color:var(--text-main)!important;border-color:var(--glass-border)!important}.light-theme input::placeholder,.light-theme textarea::placeholder{color:var(--text-dim)!important}.light-theme [data-theme-card]{background:var(--glass-bg)!important;border-color:var(--glass-border)!important}html.light-theme textarea,html.light-theme input:not([type=range]):not([type=checkbox]):not([type=radio]):not([type=file]),html.light-theme select{background-color:#f1f5f9!important;background:#f1f5f9!important;color:#0f172a!important;border-color:#0000001f!important}html.light-theme textarea::placeholder,html.light-theme input::placeholder{color:#64748b!important;opacity:1!important}html.light-theme button:disabled{background-color:#e2e8f0!important;color:#94a3b8!important}html.light-theme .bottom-sheet,html.light-theme .modal-content{background:#fff!important;color:#0f172a!important}html.light-theme .glass-panel{background:#fffffff2!important;border-color:#00000017!important}html.light-theme .profile-section,html.light-theme .settings-card{background:#fff!important;border-color:#00000017!important;color:#0f172a!important}@keyframes founderGlow{0%,to{box-shadow:0 0 #6366f100}25%{box-shadow:0 0 6px 3px #6366f180}50%{box-shadow:0 0 #6366f100}75%{box-shadow:0 0 6px 3px #6366f180}}.founder-avatar{width:18px;height:18px;border-radius:50%;flex-shrink:0;cursor:pointer;object-fit:cover;border:1.5px solid rgba(99,102,241,.4);transition:box-shadow .3s ease}.founder-avatar.glow{animation:founderGlow 3s ease-in-out forwards}.founder-avatar:hover{border-color:#6366f1cc}.contributor-stack{display:inline-flex;align-items:center;margin-left:4px}.contributor-stack .contributor-avatar{width:18px;height:18px;border-radius:50%;border:1.5px solid var(--bg-card, #1e293b);margin-left:-6px;flex-shrink:0;cursor:pointer;object-fit:cover;transition:transform .2s ease}.contributor-stack .contributor-avatar:first-child{margin-left:0}.contributor-stack .contributor-avatar:hover{transform:scale(1.15);z-index:2}.community-spot-tooltip{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--bg-card, rgba(30, 41, 59, .95));-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--glass-border, rgba(255,255,255,.1));border-radius:16px;padding:20px 24px;max-width:300px;z-index:10000;text-align:center;color:var(--text-main, #fff);font-size:.85rem;line-height:1.5;box-shadow:0 8px 32px #0006;animation:tooltipFadeIn .25s ease-out}@keyframes tooltipFadeIn{0%{opacity:0;transform:translate(-50%,-50%) scale(.95)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.community-spot-tooltip-overlay{position:fixed;inset:0;background:#0006;z-index:9999;animation:tooltipFadeIn .2s ease-out}.toggle-switch-container{display:flex;align-items:center;gap:.5rem;cursor:pointer}.toggle-switch{position:relative;display:inline-block;width:36px;height:20px}.toggle-switch input{opacity:0;width:0;height:0}.slider.round{position:absolute;cursor:pointer;inset:0;background-color:#ffffff1a;transition:.3s;border-radius:20px;border:1px solid var(--glass-border)}.slider.round:before{position:absolute;content:"";height:12px;width:12px;left:3px;bottom:3px;background-color:var(--text-dim);transition:.3s;border-radius:50%}input:checked+.slider.round{background-color:#0ea5e933;border-color:var(--primary)}input:checked+.slider.round:before{transform:translate(16px);background-color:var(--primary)}
