.account-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:1000;display:flex;align-items:center;justify-content:center;padding:70px 16px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.account-sheet{background:var(--color-surface, #1a1a2e);border-radius:20px;width:100%;max-width:400px;max-height:75vh;overflow-y:auto;position:relative;border:1px solid rgba(255,255,255,.1);box-shadow:0 24px 60px #00000080;padding-bottom:16px}@keyframes sheetUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.account-handle{display:none}.account-close{position:absolute;top:14px;right:16px;width:28px;height:28px;border-radius:50%;background:#ffffff1a;border:none;color:#fff9;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s}.account-close:hover{background:#ffffff2e}.account-header{display:flex;flex-direction:column;align-items:center;padding:20px 24px 16px;text-align:center}.account-avatar{position:relative;width:72px;height:72px;border-radius:50%;background:#ffffff0f;border:2px solid rgba(255,255,255,.12);overflow:hidden;cursor:pointer;margin-bottom:12px;display:flex;align-items:center;justify-content:center;font-size:2rem}.account-avatar img{width:100%;height:100%;object-fit:cover}.account-avatar-edit{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;font-size:1.3rem;opacity:0;transition:opacity .15s}.account-avatar:hover .account-avatar-edit{opacity:1}.account-avatar-loading{position:absolute;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center}.acct-spinner{width:22px;height:22px;border:2.5px solid rgba(255,255,255,.2);border-top-color:#fff;border-radius:50%;animation:acctSpin .7s linear infinite}@keyframes acctSpin{to{transform:rotate(360deg)}}.account-header h2{margin:0 0 3px;font-size:18px;font-weight:800;color:#fff;letter-spacing:-.3px}.account-header p{margin:0;font-size:13px;color:#fff6}.account-upload-error{margin-top:8px;font-size:12px;color:#ff6b6b;background:#ff6b6b1a;padding:6px 12px;border-radius:8px}.account-nav{padding:0 12px;display:flex;flex-direction:column;gap:2px}.acct-row{width:100%;display:flex;align-items:center;gap:12px;padding:13px 12px;background:transparent;border:none;border-radius:12px;cursor:pointer;text-align:left;transition:background .12s;-webkit-tap-highlight-color:transparent}.acct-row:hover,.acct-row:active{background:#ffffff0d}.acct-row-icon{font-size:18px;width:28px;text-align:center;flex-shrink:0}.acct-row-label{flex:1;font-size:15px;font-weight:600;color:#fff}.acct-row-arrow{font-size:20px;color:#fff3;line-height:1}.acct-row.muted .acct-row-label{color:#ffffff80;font-weight:500}.acct-row.danger .acct-row-label{color:#ff6b6b}.acct-row.danger:hover{background:#ff6b6b14}.account-sep{height:1px;background:#ffffff12;margin:8px 24px}.top-app-bar{position:fixed;top:0;left:0;right:0;height:var(--app-bar-height);background-color:var(--background);display:flex;align-items:center;justify-content:space-between;padding:0 var(--spacing-sm);box-shadow:var(--shadow-md);z-index:1000}.app-title{font-size:var(--font-size-lg);font-weight:700;color:var(--primary);margin:0}.top-app-bar-left{display:flex;align-items:center;gap:var(--spacing-xs)}.back-btn{transition:transform var(--transition-fast)}.back-btn:hover{transform:translate(-2px)}.back-icon{font-size:1.5rem;font-weight:700}.hamburger-icon,.avatar-icon{font-size:1.5rem}.avatar-icon-img{width:32px;height:32px;border-radius:50%;object-fit:cover;border:1px solid rgba(255,255,255,.2)}.drawer-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#0009;z-index:1100;animation:fadeIn var(--transition-fast)}.drawer{position:fixed;top:0;left:0;bottom:0;width:280px;max-width:80vw;background-color:var(--background-light);box-shadow:var(--shadow-lg);z-index:1101;animation:slideInLeft var(--transition-normal);display:flex;flex-direction:column}@keyframes slideInLeft{0%{transform:translate(-100%)}to{transform:translate(0)}}.drawer-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md);border-bottom:1px solid rgba(255,255,255,.1)}.drawer-header h2{font-size:var(--font-size-lg);color:var(--primary);margin:0}.drawer-menu{list-style:none;padding:var(--spacing-sm) 0;flex:1;overflow-y:auto}.drawer-item{width:100%;display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);background:none;border:none;color:var(--text-primary);font-size:var(--font-size-md);text-align:left;cursor:pointer;transition:background-color var(--transition-fast)}.drawer-item:hover{background-color:#ffffff0d}.drawer-icon{font-size:1.5rem;width:2rem;text-align:center}.drawer-header-info{display:flex;flex-direction:column;gap:2px}.drawer-con-dates{font-size:11px;color:#ffffff59;font-weight:500}.drawer-item.active{color:var(--primary, #00A859);background:#00a85914}.drawer-divider{height:1px;background:#ffffff12;margin:8px 16px}.drawer-footer{padding:4px 8px 16px}.drawer-switch-btn{width:100%;display:flex;align-items:center;gap:12px;padding:12px 16px;background:#ffffff0a;border:1.5px solid rgba(255,255,255,.08);border-radius:12px;cursor:pointer;text-align:left;transition:background .15s,border-color .15s;-webkit-tap-highlight-color:transparent}.drawer-switch-btn:active{background:#ffffff14}.drawer-switch-info{flex:1;display:flex;flex-direction:column;gap:2px}.drawer-switch-label{font-size:14px;font-weight:700;color:#fff}.drawer-switch-sub{font-size:11px;color:#ffffff59}.drawer-switch-arrow{font-size:20px;color:#ffffff4d;line-height:1}.app-title-wrap{display:flex;flex-direction:column;align-items:center;line-height:1.1}.app-title{font-size:18px;font-weight:700;letter-spacing:.5px}.app-subtitle{font-size:11px;opacity:.65;font-weight:400;letter-spacing:.3px}.bottom-navigation{position:fixed;bottom:0;left:0;right:0;height:var(--bottom-nav-height);background-color:var(--background);display:flex;align-items:center;justify-content:space-around;box-shadow:0 -2px 8px #0000004d;z-index:1000}.nav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.25rem;padding:.5rem;background:none;border:none;color:var(--text-secondary);cursor:pointer;transition:color var(--transition-fast)}.nav-item.active{color:var(--primary)}.nav-icon{font-size:1.5rem}.nav-label{font-size:var(--font-size-xs);font-weight:500}.nav-item:hover{color:var(--primary-light)}.snackbar{position:fixed;bottom:calc(var(--bottom-nav-height) + var(--spacing-md));left:50%;transform:translate(-50%);min-width:280px;max-width:90vw;padding:var(--spacing-sm) var(--spacing-md);background-color:var(--surface);color:var(--text-primary);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm);z-index:1200;animation:slideUp var(--transition-normal)}.snackbar-success{background-color:var(--success);color:#fff}.snackbar-error{background-color:var(--error);color:#fff}.snackbar-warning{background-color:var(--warning);color:#000}.snackbar-close{background:none;border:none;color:inherit;font-size:1.25rem;cursor:pointer;padding:0;opacity:.7;transition:opacity var(--transition-fast)}.snackbar-close:hover{opacity:1}.sm-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:9999;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:20px}.sm-sheet{background:var(--background-light, #1e1e1e);border-radius:16px;width:100%;max-width:480px;max-height:80vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px #00000080;animation:smPopIn .2s cubic-bezier(.34,1.2,.64,1)}@keyframes smPopIn{0%{opacity:0;transform:scale(.95) translateY(-8px)}to{opacity:1;transform:scale(1) translateY(0)}}.sm-handle{display:none}.sm-input-row{display:flex;align-items:center;gap:8px;padding:14px 16px 10px;flex-shrink:0}.sm-input-icon{font-size:16px;flex-shrink:0;color:var(--text-secondary)}.sm-input{flex:1;background:var(--surface, #2a2a2a);border:1.5px solid rgba(255,255,255,.1);border-radius:10px;padding:10px 14px;color:var(--text-primary);font-size:max(16px,1rem);outline:none;transition:border-color .15s}.sm-input:focus{border-color:var(--primary, #00A859)}.sm-input::placeholder{color:var(--text-secondary)}.sm-input-clear,.sm-input-close{background:none;border:none;color:var(--text-secondary);font-size:14px;font-weight:600;cursor:pointer;padding:6px;flex-shrink:0;touch-action:manipulation;white-space:nowrap}.sm-input-clear{width:28px;height:28px;border-radius:50%;background:#ffffff1a;display:flex;align-items:center;justify-content:center;font-size:12px}.sm-tabs{display:flex;padding:0 16px;border-bottom:1px solid rgba(255,255,255,.08);flex-shrink:0}.sm-tab{flex:1;padding:10px 0;background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;color:var(--text-secondary);font-size:13px;font-weight:600;cursor:pointer;touch-action:manipulation;transition:all .15s;text-transform:capitalize}.sm-tab.active{color:var(--primary, #00A859);border-bottom-color:var(--primary, #00A859)}.sm-results{flex:1;overflow-y:scroll;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;min-height:0;padding:8px 0 16px}.sm-empty{display:flex;flex-direction:column;align-items:center;padding:28px 20px;text-align:center}.sm-empty-icon{font-size:2.5rem;margin-bottom:12px;opacity:.5}.sm-empty-text{font-size:14px;color:var(--text-secondary);margin:0 0 4px}.sm-empty-hint{font-size:12px;color:var(--text-secondary);opacity:.7;margin:0}.sm-suggestions-label{font-size:11px;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin:16px 0 10px}.sm-chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.sm-chip{padding:7px 14px;background:#00a8591a;border:1px solid rgba(0,168,89,.25);border-radius:20px;color:var(--text-primary);font-size:13px;cursor:pointer;touch-action:manipulation}.sm-chip:active{background:#00a85933}.sm-result{display:flex;align-items:center;gap:12px;padding:12px 16px;cursor:pointer;transition:background .12s;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.sm-result:active{background:#ffffff0a}.sm-result-icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}.sm-result-icon.event{background:#00a85926}.sm-result-icon.guest{background:#ff980026}.sm-result-icon.location{background:#2196f326}.sm-result-info{flex:1;min-width:0}.sm-result-title{font-size:14px;font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-bottom:2px}.sm-result-sub{font-size:12px;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sm-result-action{flex-shrink:0}.sm-badge{padding:3px 8px;background:#ffffff14;border-radius:20px;font-size:11px;color:var(--text-secondary);white-space:nowrap}.sm-arrow{font-size:16px;color:var(--text-secondary)}.home-page{padding:0 0 90px;display:flex;flex-direction:column;gap:0}.carousel-wrap{position:relative;margin-bottom:4px}.carousel-stage{position:relative;height:230px;overflow:hidden}.carousel-slide{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;transition:opacity .45s ease;pointer-events:none;padding:0 16px;box-sizing:border-box}.carousel-slide.active{opacity:1;pointer-events:auto}.carousel-card{position:relative;width:100%;height:100%;border-radius:18px;overflow:hidden;display:flex;align-items:flex-end;cursor:pointer}.carousel-bg-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;object-position:center top}.carousel-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to bottom,#0000,#00000040 35%,#000000d9)}.carousel-content{position:relative;z-index:2;padding:14px 52px 16px 16px;width:100%;box-sizing:border-box}.carousel-label{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:1.2px;margin-bottom:5px}.carousel-title{margin:0 0 5px;font-size:18px;font-weight:800;color:#fff;line-height:1.2;text-shadow:0 1px 6px rgba(0,0,0,.6);display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.carousel-meta{display:flex;align-items:center;gap:5px;font-size:12px;color:#fffc;margin-bottom:3px}.carousel-sep{opacity:.4}.carousel-badge{display:inline-block;margin-top:6px;padding:2px 10px;background:#ffffff26;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.2);border-radius:20px;font-size:11px;font-weight:700;color:#fff}.carousel-badge.free{background:#00a8594d;border-color:#00a85980;color:#7fffc0}.carousel-cta{margin-top:6px;font-size:12px;font-weight:600;color:#ffffff8c}.carousel-arrow{position:absolute;top:50%;transform:translateY(-65%);z-index:10;width:32px;height:32px;border-radius:50%;border:none;background:transparent;color:transparent;font-size:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:opacity .15s;-webkit-tap-highlight-color:transparent}.carousel-arrow:active{opacity:0}.carousel-arrow.left{left:22px}.carousel-arrow.right{right:22px}.carousel-progress{display:flex;gap:5px;padding:8px 16px 0}.carousel-progress-bar{flex:1;height:3px;border-radius:2px;background:#ffffff26;cursor:pointer;overflow:hidden;position:relative}.carousel-progress-bar.active{background:#fff3}.carousel-progress-bar.active:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--primary, #00A859);animation:progressFill 5s linear forwards;transform-origin:left}@keyframes progressFill{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.quick-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:16px 16px 4px}.quick-action-btn{display:flex;flex-direction:column;align-items:center;gap:7px;padding:14px 8px 12px;background:#ffffff0d;border:1.5px solid rgba(255,255,255,.07);border-radius:16px;cursor:pointer;transition:background .12s,transform .12s;-webkit-tap-highlight-color:transparent}.quick-action-btn:active{background:#ffffff17;transform:scale(.95)}.qa-icon-wrap{width:42px;height:42px;border-radius:12px;background:color-mix(in srgb,var(--qa-color) 18%,transparent);border:1.5px solid color-mix(in srgb,var(--qa-color) 30%,transparent);display:flex;align-items:center;justify-content:center;font-size:20px}.qa-label{font-size:11px;font-weight:700;color:#ffffffa6;letter-spacing:.1px}.agenda-section{padding:18px 16px 0}.agenda-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.agenda-section-header h2{margin:0;font-size:17px;font-weight:800;color:#fff}.agenda-see-all{background:none;border:none;color:var(--primary, #00A859);font-size:13px;font-weight:600;cursor:pointer;padding:0}.agenda-empty{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px;background:#ffffff08;border:1.5px dashed rgba(255,255,255,.1);border-radius:14px}.agenda-empty-left{flex:1}.agenda-empty-title{font-size:14px;font-weight:700;color:#fff;margin:0 0 3px}.agenda-empty-sub{font-size:12px;color:#ffffff59;margin:0;line-height:1.4}.agenda-empty-btn{padding:8px 18px;background:var(--primary, #00A859);color:#000;border:none;border-radius:20px;font-size:13px;font-weight:800;cursor:pointer;flex-shrink:0;-webkit-tap-highlight-color:transparent}.agenda-empty-btn:active{opacity:.8}.agenda-list{background:#ffffff08;border:1px solid rgba(255,255,255,.07);border-radius:14px;overflow:hidden}.agenda-item{display:flex;align-items:center;gap:12px;padding:12px 14px;border-bottom:1px solid rgba(255,255,255,.05);cursor:pointer;transition:background .12s;-webkit-tap-highlight-color:transparent}.agenda-item:last-child{border-bottom:none}.agenda-item:active{background:#ffffff0a}.agenda-time-col{display:flex;flex-direction:column;align-items:center;min-width:36px;flex-shrink:0}.agenda-time{font-size:15px;font-weight:800;color:var(--primary, #00A859);line-height:1}.agenda-ampm{font-size:9px;font-weight:700;color:var(--primary, #00A859);opacity:.7;text-transform:uppercase}.agenda-divider{width:1.5px;height:32px;background:#ffffff1a;border-radius:2px;flex-shrink:0}.agenda-item-body{flex:1;display:flex;flex-direction:column;gap:2px;overflow:hidden}.agenda-title{font-size:14px;font-weight:600;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.agenda-location{font-size:11px;color:#ffffff59}.agenda-price{font-size:12px;font-weight:700;color:#fff6;flex-shrink:0}.share-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:9000;display:flex;align-items:center;justify-content:center;padding:20px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.share-modal{background:var(--background-light, #1e1e1e);border-radius:20px;width:100%;max-width:480px;max-height:85vh;display:flex;flex-direction:column;animation:shareModalIn .3s cubic-bezier(.34,1.2,.64,1);overflow:hidden}@keyframes shareModalIn{0%{opacity:0;transform:scale(.95) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.share-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;flex-shrink:0;border-bottom:1px solid rgba(255,255,255,.08)}.share-modal-header h2{font-size:18px;font-weight:700;color:var(--text-primary);margin:0}.share-close-btn{width:32px;height:32px;border-radius:50%;background:#ffffff1a;border:none;color:var(--text-secondary);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s}.share-close-btn:hover{background:#fff3}.share-event-info{padding:16px 20px;border-bottom:1px solid rgba(255,255,255,.06);flex-shrink:0;background:#ffffff05}.share-event-title{font-size:15px;font-weight:700;color:var(--text-primary);margin-bottom:4px}.share-event-meta{font-size:13px;color:var(--text-secondary)}.share-tabs{display:flex;padding:0 20px;gap:20px;border-bottom:1px solid rgba(255,255,255,.08);flex-shrink:0}.share-tab{padding:14px 0;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-secondary);font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;margin-bottom:-1px}.share-tab.active{color:var(--primary, #00A859);border-bottom-color:var(--primary, #00A859)}.share-list-container{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:12px 20px;min-height:0;display:flex;flex-direction:column;gap:8px}.share-list-item{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;cursor:pointer;transition:all .2s;border-radius:12px;background:#ffffff08;border:1px solid transparent;min-height:60px;position:relative;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.share-list-item:hover{background:#ffffff0f}.share-list-item.selected,.share-list-item:has(input:checked){background:#00a8591a;border-color:#00a85980}.share-list-item.selected:after,.share-list-item:has(input:checked):after{content:"✓";color:#00a859;font-weight:900;font-size:16px;margin-left:12px}.share-list-item input[type=checkbox],.share-checkbox{display:none}.share-item-left{display:flex;align-items:center;gap:14px;flex:1;min-width:0}.share-item-avatar{width:44px;height:44px;border-radius:50%;background:#ffffff1a;display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0}.share-item-info{display:flex;flex-direction:column;gap:2px;min-width:0}.share-item-name{font-size:15px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.share-item-status{font-size:12px;color:var(--text-secondary)}.share-item-status.online{color:#00a859}.share-message-section{padding:16px 20px;border-top:1px solid rgba(255,255,255,.08);flex-shrink:0;background:var(--background-light, #1e1e1e)}.share-message-label{display:block;font-size:12px;font-weight:600;color:var(--text-secondary);margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px}.share-message-input{width:100%;background:#0003;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:12px 16px;color:var(--text-primary);font-size:14px;resize:none;outline:none;box-sizing:border-box;font-family:inherit;transition:border-color .2s}.share-message-input::placeholder{color:var(--text-secondary)}.share-message-input:focus{border-color:var(--primary, #00A859)}.share-modal-actions{display:flex;gap:12px;padding:16px 20px;padding-bottom:max(14px,env(safe-area-inset-bottom));flex-shrink:0;border-top:1px solid rgba(255,255,255,.06);background:var(--background-light, #1e1e1e)}.share-cancel-btn{flex:1;padding:14px;border:1px solid rgba(255,255,255,.2);border-radius:12px;background:transparent;color:var(--text-primary);font-size:14px;font-weight:600;cursor:pointer;transition:background .2s}.share-cancel-btn:hover{background:#ffffff0d}.share-send-btn{flex:2;padding:14px;border:none;border-radius:12px;background:#ffffff1a;color:var(--text-secondary);font-size:14px;font-weight:700;cursor:pointer;transition:all .2s}.share-send-btn.ready{background:var(--primary, #00A859);color:#fff}.share-send-btn.ready:hover{filter:brightness(1.1)}.share-send-btn:disabled{opacity:.5;cursor:not-allowed}.event-card{background:#ffffff08;border:1px solid rgba(255,255,255,.05);border-radius:16px;margin-bottom:12px;overflow:hidden;transition:background .15s;-webkit-user-select:none;user-select:none}.event-card:active{background:#ffffff0d}.event-card.in-agenda{background:#00a85908;border-color:#00a85926}.ec-main{display:flex;padding:14px 0 14px 12px}.ec-time-col{display:flex;flex-direction:column;align-items:flex-end;width:44px;flex-shrink:0;margin-right:12px}.ec-time{font-size:15px;font-weight:800;color:var(--primary, #00A859);line-height:1.1}.ec-ampm{font-size:10px;font-weight:800;color:#fff6;text-transform:uppercase}.ec-duration{margin-top:6px;font-size:10px;font-weight:700;color:#ffffff4d;background:#ffffff0d;padding:2px 6px;border-radius:8px}.ec-bar{width:2px;background:#ffffff0f;border-radius:2px;margin-right:12px;flex-shrink:0}.event-card.in-agenda .ec-bar{background:#00a85940}.ec-body{flex:1;min-width:0;display:flex;flex-direction:column;padding-right:12px;padding-bottom:2px}.ec-top-row{display:flex;align-items:flex-start;gap:8px;margin-bottom:4px}.ec-category-icon{font-size:16px;line-height:1.2}.ec-title{font-size:16px;font-weight:700;color:#fff;line-height:1.3}.ec-meta-row{margin-bottom:8px}.ec-location{background:none;border:none;padding:0;font-size:13px;color:#ffffff80;cursor:pointer;text-align:left;transition:color .1s}.ec-location:active{color:var(--primary, #00A859)}.ec-tags-row{display:flex;flex-wrap:wrap;gap:6px}.ec-tag{padding:3px 8px;background:#ffffff14;border-radius:12px;font-size:11px;font-weight:600;color:#ffffffb3}.ec-tag.paid{background:#f4433626;color:#ff8a80}.ec-tag.free{background:#00a85926;color:#7fffc0}.ec-tag.age{background:#ff980026;color:#ffb74d}.ec-expanded{margin-top:10px;padding-top:10px;border-top:1px dashed rgba(255,255,255,.1);animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.ec-description{margin:0 0 12px;font-size:13px;line-height:1.45;color:#ffffffb3}.ec-detail-grid{display:flex;flex-direction:column;gap:6px}.ec-detail{display:flex;align-items:flex-start;gap:6px;font-size:12px;color:#fff9}.ec-expand-btn{margin-top:8px;align-self:flex-start;background:none;border:none;padding:2px 0;font-size:11px;font-weight:700;color:var(--primary, #00A859);text-transform:uppercase;letter-spacing:.5px;cursor:pointer;-webkit-tap-highlight-color:transparent}.ec-expand-btn:active{opacity:.7}.ec-actions{display:flex;flex-direction:column;align-items:center;gap:8px;padding:0 12px;border-left:1px solid rgba(255,255,255,.05)}.ec-action-btn,.ec-add-btn{width:34px;height:34px;border-radius:50%;border:none;background:#ffffff0f;color:#fff9;font-size:15px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s;-webkit-tap-highlight-color:transparent}.ec-action-btn:active,.ec-add-btn:active{transform:scale(.9)}.ec-action-btn.active{color:var(--primary, #00A859)}.ec-add-btn{font-size:20px;font-weight:300}.ec-add-btn.in{background:var(--primary, #00A859);color:#000;font-weight:800;font-size:14px}.schedule-page{display:flex;flex-direction:column;height:100%}.segmented-control{display:flex;padding:var(--spacing-sm);background:var(--background);border-bottom:1px solid rgba(255,255,255,.1)}.segment{flex:1;padding:var(--spacing-sm);background:transparent;border:1px solid rgba(255,255,255,.2);color:var(--text-secondary);font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:all .15s;min-height:44px;touch-action:manipulation}.segment:first-child{border-radius:var(--radius-sm) 0 0 var(--radius-sm)}.segment:last-child{border-radius:0 var(--radius-sm) var(--radius-sm) 0}.segment:not(:last-child){border-right:none}.segment.active{background:var(--primary);border-color:var(--primary);color:#000}.sched-filter-row{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--background);border-bottom:1px solid rgba(255,255,255,.1);min-height:52px}.sched-filter-btn{display:flex;align-items:center;gap:6px;padding:8px 16px;border:1.5px solid rgba(255,255,255,.2);border-radius:20px;background:transparent;color:var(--text-secondary);font-size:14px;font-weight:600;white-space:nowrap;cursor:pointer;min-height:38px;flex-shrink:0;touch-action:manipulation;transition:all .15s}.sched-filter-btn.open{border-color:var(--primary, #00A859);color:var(--primary, #00A859);background:#00a8591f}.sched-filter-btn.has-filters{border-color:var(--primary, #00A859);color:var(--primary, #00A859);background:#00a8591a}.sched-filter-badge{background:var(--primary, #00A859);color:#000;border-radius:10px;padding:1px 7px;font-size:11px;font-weight:700;min-width:20px;text-align:center}.sched-filter-arrow{font-size:9px;opacity:.6}.sched-pills-scroll{display:flex;gap:6px;overflow-x:auto;flex:1;align-items:center;scrollbar-width:none;-webkit-overflow-scrolling:touch}.sched-pills-scroll::-webkit-scrollbar{display:none}.sched-pill{display:inline-flex;align-items:center;gap:4px;padding:4px 8px 4px 10px;background:#00a85926;border:1px solid rgba(0,168,89,.35);border-radius:20px;font-size:12px;color:var(--primary, #00A859);white-space:nowrap;flex-shrink:0}.sched-pill button{background:none;border:none;color:var(--primary, #00A859);font-size:15px;cursor:pointer;padding:0;line-height:1;font-weight:700;touch-action:manipulation;display:flex;align-items:center}.sched-pill-clear{background:none;border:none;color:var(--text-secondary);font-size:12px;cursor:pointer;white-space:nowrap;flex-shrink:0;text-decoration:underline;touch-action:manipulation;padding:4px}.sched-export-btn{flex-shrink:0}.sched-clear-link{background:none;border:none;color:var(--primary, #00A859);font-size:13px;cursor:pointer;text-decoration:underline;touch-action:manipulation}.sched-filter-panel{background:var(--surface, #161616);border-bottom:2px solid var(--primary, #00A859);padding:16px 16px 8px;overflow-y:auto;max-height:60vh;animation:schedPanelIn .2s ease}@keyframes schedPanelIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.sched-panel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.sched-panel-title{font-size:15px;font-weight:700;color:var(--text-primary)}.sched-panel-clear{background:none;border:none;color:var(--primary, #00A859);font-size:13px;font-weight:600;cursor:pointer;touch-action:manipulation}.sched-panel-section{margin-bottom:18px}.sched-panel-label{font-size:11px;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.6px;margin-bottom:9px}.sched-panel-chips{display:flex;flex-wrap:wrap;gap:7px}.sched-panel-chip{padding:7px 14px;border:1.5px solid rgba(255,255,255,.15);border-radius:20px;background:transparent;color:var(--text-secondary);font-size:13px;font-weight:500;cursor:pointer;min-height:34px;touch-action:manipulation;transition:all .15s}.sched-panel-chip.active{background:var(--primary, #00A859);border-color:var(--primary, #00A859);color:#000;font-weight:700}.sched-panel-actions{display:flex;gap:10px;padding:14px 0 12px;border-top:1px solid rgba(255,255,255,.08);position:sticky;bottom:0;background:var(--surface, #161616)}.sched-panel-cancel{flex:1;padding:12px;border:1.5px solid rgba(255,255,255,.2);border-radius:10px;background:transparent;color:var(--text-secondary);font-size:14px;font-weight:600;cursor:pointer;touch-action:manipulation}.sched-panel-apply{flex:2;padding:12px;border:none;border-radius:10px;background:var(--primary, #00A859);color:#000;font-size:14px;font-weight:700;cursor:pointer;touch-action:manipulation;transition:opacity .15s}.sched-panel-apply:active{opacity:.85}.event-list{flex:1;overflow-y:auto;padding:var(--spacing-sm)}.day-section{margin-bottom:var(--spacing-lg)}.sticky-header{position:sticky;top:0;background:var(--background);padding:var(--spacing-sm) 0;font-size:var(--font-size-lg);font-weight:700;color:var(--primary);z-index:10;border-bottom:2px solid var(--primary);margin-bottom:var(--spacing-sm)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl);text-align:center;min-height:300px}.empty-icon{font-size:4rem;margin-bottom:var(--spacing-md);opacity:.5}.empty-title{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-sm)}.empty-subtitle{color:var(--text-secondary);font-size:var(--font-size-sm)}.custom-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:10000}.custom-modal-content{background:var(--background-light);border-radius:var(--radius-lg);padding:var(--spacing-xl);max-width:400px;width:90%;box-shadow:var(--shadow-lg);animation:cmUp .25s ease}@keyframes cmUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.custom-modal-content h3{margin:0 0 var(--spacing-md);color:var(--text-primary)}.custom-modal-content p{margin:0 0 var(--spacing-sm);color:var(--text-secondary)}.custom-modal-content p strong{color:var(--text-primary);display:block;margin:var(--spacing-md) 0}.modal-actions{display:flex;flex-direction:column;gap:var(--spacing-sm);margin-top:var(--spacing-lg)}.modal-actions .btn{width:100%;padding:var(--spacing-sm) var(--spacing-md);font-weight:600}.btn-text{background:none;border:none;color:var(--text-secondary);cursor:pointer}.filter-scroll{display:flex;flex-direction:column;gap:8px;padding:8px 0 12px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.filter-scroll::-webkit-scrollbar{display:none}.filter-group{display:flex;flex-direction:row;gap:6px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}.filter-group::-webkit-scrollbar{display:none}.filter-pill{flex-shrink:0;padding:6px 14px;border-radius:20px;border:1.5px solid rgba(255,255,255,.15);background:#ffffff0f;color:#ffffffb3;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s ease;white-space:nowrap}.filter-pill:hover{background:#ffffff1f;color:#fff}.filter-pill.active{background:var(--color-primary, #FF6B35);border-color:var(--color-primary, #FF6B35);color:#fff;font-weight:600}.filter-pill.export-pill{background:#00a85933;border-color:#00a859;color:#00a859}.filter-divider{width:100%;height:1px;background:#ffffff14;margin:2px 0}.filter-bar-row{display:flex;flex-direction:column;gap:8px;padding:8px 0 12px}.filter-btn-row{display:flex;flex-direction:row}.event-highlighted{animation:highlight-pulse 3s ease-out}@keyframes highlight-pulse{0%{box-shadow:0 0 0 3px var(--color-primary, #FF6B35)}70%{box-shadow:0 0 0 3px var(--color-primary, #FF6B35)}to{box-shadow:none}}.filter-day-scroll{display:flex;flex-direction:row;gap:6px;overflow-x:auto;scrollbar-width:none;flex:1;padding-bottom:2px}.filter-day-scroll::-webkit-scrollbar{display:none}.filter-toggle-btn{flex-shrink:0;padding:6px 14px;border-radius:20px;border:1.5px solid rgba(255,255,255,.15);background:#ffffff0f;color:#ffffffb3;font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap;transition:all .15s ease}.filter-toggle-btn.has-filters{border-color:var(--color-primary, #FF6B35);color:var(--color-primary, #FF6B35);background:#ff6b351a}.filter-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:1000;display:flex;align-items:center;justify-content:center;padding:24px 16px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.filter-modal{background:var(--color-surface, #1a1a2e);border-radius:20px;width:100%;max-width:480px;max-height:80vh;display:flex;flex-direction:column;overflow:hidden;border:1px solid rgba(255,255,255,.1);box-shadow:0 24px 60px #00000080}.filter-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid rgba(255,255,255,.08)}.filter-modal-header h3{font-size:17px;font-weight:700;color:#fff;margin:0}.filter-modal-close{background:none;border:none;color:#fff9;font-size:18px;cursor:pointer;padding:4px 8px}.filter-modal-body{flex:1;overflow-y:auto;padding:16px 20px;display:flex;flex-direction:column;gap:20px}.filter-modal-section{display:flex;flex-direction:column;gap:10px}.filter-modal-label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.8px;color:#ffffff73}.filter-modal-pills{display:flex;flex-wrap:wrap;gap:8px}.filter-modal-footer{display:flex;gap:10px;padding:16px 20px;border-top:1px solid rgba(255,255,255,.08)}.filter-reset-btn{flex:1;padding:12px;border-radius:12px;border:1.5px solid rgba(255,255,255,.15);background:transparent;color:#ffffffb3;font-size:15px;font-weight:600;cursor:pointer}.filter-apply-btn{flex:2;padding:12px;border-radius:12px;border:none;background:var(--color-primary, #FF6B35);color:#fff;font-size:15px;font-weight:600;cursor:pointer}.leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,.leaflet-pane>svg,.leaflet-pane>canvas,.leaflet-zoom-box,.leaflet-image-layer,.leaflet-layer{position:absolute;left:0;top:0}.leaflet-container{overflow:hidden}.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-tile::selection{background:transparent}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{width:1600px;height:1600px;-webkit-transform-origin:0 0}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-overlay-pane svg{max-width:none!important;max-height:none!important}.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer,.leaflet-container .leaflet-tile{max-width:none!important;max-height:none!important;width:auto;padding:0}.leaflet-container img.leaflet-tile{mix-blend-mode:plus-lighter}.leaflet-container.leaflet-touch-zoom{-ms-touch-action:pan-x pan-y;touch-action:pan-x pan-y}.leaflet-container.leaflet-touch-drag{-ms-touch-action:pinch-zoom;touch-action:none;touch-action:pinch-zoom}.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{-ms-touch-action:none;touch-action:none}.leaflet-container{-webkit-tap-highlight-color:transparent}.leaflet-container a{-webkit-tap-highlight-color:rgba(51,181,229,.4)}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{width:0;height:0;-moz-box-sizing:border-box;box-sizing:border-box;z-index:800}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg{z-index:200}.leaflet-vml-shape{width:1px;height:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{position:relative;z-index:800;pointer-events:visiblePainted;pointer-events:auto}.leaflet-top,.leaflet-bottom{position:absolute;z-index:1000;pointer-events:none}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{float:left;clear:both}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-popup{opacity:0;-webkit-transition:opacity .2s linear;-moz-transition:opacity .2s linear;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-animated{-webkit-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0}svg.leaflet-zoom-animated{will-change:transform}.leaflet-zoom-anim .leaflet-zoom-animated{-webkit-transition:-webkit-transform .25s cubic-bezier(0,0,.25,1);-moz-transition:-moz-transform .25s cubic-bezier(0,0,.25,1);transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-zoom-anim .leaflet-tile,.leaflet-pan-anim .leaflet-tile{-webkit-transition:none;-moz-transition:none;transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair}.leaflet-popup-pane,.leaflet-control{cursor:auto}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-image-layer,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}.leaflet-marker-icon.leaflet-interactive,.leaflet-image-layer.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path{pointer-events:visiblePainted;pointer-events:auto}.leaflet-container{background:#ddd;outline-offset:1px}.leaflet-container a{color:#0078a8}.leaflet-zoom-box{border:2px dotted #38f;background:#ffffff80}.leaflet-container{font-family:Helvetica Neue,Arial,Helvetica,sans-serif;font-size:12px;font-size:.75rem;line-height:1.5}.leaflet-bar{box-shadow:0 1px 5px #000000a6;border-radius:4px}.leaflet-bar a{background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;display:block;text-align:center;text-decoration:none;color:#000}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50% 50%;background-repeat:no-repeat;display:block}.leaflet-bar a:hover,.leaflet-bar a:focus{background-color:#f4f4f4}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom:none}.leaflet-bar a.leaflet-disabled{cursor:default;background-color:#f4f4f4;color:#bbb}.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}.leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.leaflet-touch .leaflet-bar a:last-child{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{font:700 18px Lucida Console,Monaco,monospace;text-indent:1px}.leaflet-touch .leaflet-control-zoom-in,.leaflet-touch .leaflet-control-zoom-out{font-size:22px}.leaflet-control-layers{box-shadow:0 1px 5px #0006;background:#fff;border-radius:5px}.leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAQAAAADQ4RFAAACf0lEQVR4AY1UM3gkARTePdvdoTxXKc+qTl3aU5U6b2Kbkz3Gtq3Zw6ziLGNPzrYx7946Tr6/ee/XeCQ4D3ykPtL5tHno4n0d/h3+xfuWHGLX81cn7r0iTNzjr7LrlxCqPtkbTQEHeqOrTy4Yyt3VCi/IOB0v7rVC7q45Q3Gr5K6jt+3Gl5nCoDD4MtO+j96Wu8atmhGqcNGHObuf8OM/x3AMx38+4Z2sPqzCxRFK2aF2e5Jol56XTLyggAMTL56XOMoS1W4pOyjUcGGQdZxU6qRh7B9Zp+PfpOFlqt0zyDZckPi1ttmIp03jX8gyJ8a/PG2yutpS/Vol7peZIbZcKBAEEheEIAgFbDkz5H6Zrkm2hVWGiXKiF4Ycw0RWKdtC16Q7qe3X4iOMxruonzegJzWaXFrU9utOSsLUmrc0YjeWYjCW4PDMADElpJSSQ0vQvA1Tm6/JlKnqFs1EGyZiFCqnRZTEJJJiKRYzVYzJck2Rm6P4iH+cmSY0YzimYa8l0EtTODFWhcMIMVqdsI2uiTvKmTisIDHJ3od5GILVhBCarCfVRmo4uTjkhrhzkiBV7SsaqS+TzrzM1qpGGUFt28pIySQHR6h7F6KSwGWm97ay+Z+ZqMcEjEWebE7wxCSQwpkhJqoZA5ivCdZDjJepuJ9IQjGGUmuXJdBFUygxVqVsxFsLMbDe8ZbDYVCGKxs+W080max1hFCarCfV+C1KATwcnvE9gRRuMP2prdbWGowm1KB1y+zwMMENkM755cJ2yPDtqhTI6ED1M/82yIDtC/4j4BijjeObflpO9I9MwXTCsSX8jWAFeHr05WoLTJ5G8IQVS/7vwR6ohirYM7f6HzYpogfS3R2OAAAAAElFTkSuQmCC);width:36px;height:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAQAAABvcdNgAAAEsklEQVR4AWL4TydIhpZK1kpWOlg0w3ZXP6D2soBtG42jeI6ZmQTHzAxiTbSJsYLjO9HhP+WOmcuhciVnmHVQcJnp7DFvScowZorad/+V/fVzMdMT2g9Cv9guXGv/7pYOrXh2U+RRR3dSd9JRx6bIFc/ekqHI29JC6pJ5ZEh1yWkhkbcFeSjxgx3L2m1cb1C7bceyxA+CNjT/Ifff+/kDk2u/w/33/IeCMOSaWZ4glosqT3DNnNZQ7Cs58/3Ce5HL78iZH/vKVIaYlqzfdLu8Vi7dnvUbEza5Idt36tquZFldl6N5Z/POLof0XLK61mZCmJSWjVF9tEjUluu74IUXvgttuVIHE7YxSkaYhJZam7yiM9Pv82JYfl9nptxZaxMJE4YSPty+vF0+Y2up9d3wwijfjZbabqm/3bZ9ecKHsiGmRflnn1MW4pjHf9oLufyn2z3y1D6n8g8TZhxyzipLNPnAUpsOiuWimg52psrTZYnOWYNDTMuWBWa0tJb4rgq1UvmutpaYEbZlwU3CLJm/ayYjHW5/h7xWLn9Hh1vepDkyf7dE7MtT5LR4e7yYpHrkhOUpEfssBLq2pPhAqoSWKUkk7EDqkmK6RrCEzqDjhNDWNE+XSMvkJRDWlZTmCW0l0PHQGRZY5t1L83kT0Y3l2SItk5JAWHl2dCOBm+fPu3fo5/3v61RMCO9Jx2EEYYhb0rmNQMX/vm7gqOEJLcXTGw3CAuRNeyaPWwjR8PRqKQ1PDA/dpv+on9Shox52WFnx0KY8onHayrJzm87i5h9xGw/tfkev0jGsQizqezUKjk12hBMKJ4kbCqGPVNXudyyrShovGw5CgxsRICxF6aRmSjlBnHRzg7Gx8fKqEubI2rahQYdR1YgDIRQO7JvQyD52hoIQx0mxa0ODtW2Iozn1le2iIRdzwWewedyZzewidueOGqlsn1MvcnQpuVwLGG3/IR1hIKxCjelIDZ8ldqWz25jWAsnldEnK0Zxro19TGVb2ffIZEsIO89EIEDvKMPrzmBOQcKQ+rroye6NgRRxqR4U8EAkz0CL6uSGOm6KQCdWjvjRiSP1BPalCRS5iQYiEIvxuBMJEWgzSoHADcVMuN7IuqqTeyUPq22qFimFtxDyBBJEwNyt6TM88blFHao/6tWWhuuOM4SAK4EI4QmFHA+SEyWlp4EQoJ13cYGzMu7yszEIBOm2rVmHUNqwAIQabISNMRstmdhNWcFLsSm+0tjJH1MdRxO5Nx0WDMhCtgD6OKgZeljJqJKc9po8juskR9XN0Y1lZ3mWjLR9JCO1jRDMd0fpYC2VnvjBSEFg7wBENc0R9HFlb0xvF1+TBEpF68d+DHR6IOWVv2BECtxo46hOFUBd/APU57WIoEwJhIi2CdpyZX0m93BZicktMj1AS9dClteUFAUNUIEygRZCtik5zSxI9MubTBH1GOiHsiLJ3OCoSZkILa9PxiN0EbvhsAo8tdAf9Seepd36lGWHmtNANTv5Jd0z4QYyeo/UEJqxKRpg5LZx6btLPsOaEmdMyxYdlc8LMaJnikDlhclqmPiQnTEpLUIZEwkRagjYkEibQErwhkTAKCLQEbUgkzJQWc/0PstHHcfEdQ+UAAAAASUVORK5CYII=);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{padding:6px 10px 6px 6px;color:#333;background:#fff}.leaflet-control-layers-scrollbar{overflow-y:scroll;overflow-x:hidden;padding-right:5px}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{display:block;font-size:13px;font-size:1.08333em}.leaflet-control-layers-separator{height:0;border-top:1px solid #ddd;margin:5px -10px 5px -6px}.leaflet-default-icon-path{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAApCAYAAADAk4LOAAAFgUlEQVR4Aa1XA5BjWRTN2oW17d3YaZtr2962HUzbDNpjszW24mRt28p47v7zq/bXZtrp/lWnXr337j3nPCe85NcypgSFdugCpW5YoDAMRaIMqRi6aKq5E3YqDQO3qAwjVWrD8Ncq/RBpykd8oZUb/kaJutow8r1aP9II0WmLKLIsJyv1w/kqw9Ch2MYdB++12Onxee/QMwvf4/Dk/Lfp/i4nxTXtOoQ4pW5Aj7wpici1A9erdAN2OH64x8OSP9j3Ft3b7aWkTg/Fm91siTra0f9on5sQr9INejH6CUUUpavjFNq1B+Oadhxmnfa8RfEmN8VNAsQhPqF55xHkMzz3jSmChWU6f7/XZKNH+9+hBLOHYozuKQPxyMPUKkrX/K0uWnfFaJGS1QPRtZsOPtr3NsW0uyh6NNCOkU3Yz+bXbT3I8G3xE5EXLXtCXbbqwCO9zPQYPRTZ5vIDXD7U+w7rFDEoUUf7ibHIR4y6bLVPXrz8JVZEql13trxwue/uDivd3fkWRbS6/IA2bID4uk0UpF1N8qLlbBlXs4Ee7HLTfV1j54APvODnSfOWBqtKVvjgLKzF5YdEk5ewRkGlK0i33Eofffc7HT56jD7/6U+qH3Cx7SBLNntH5YIPvODnyfIXZYRVDPqgHtLs5ABHD3YzLuespb7t79FY34DjMwrVrcTuwlT55YMPvOBnRrJ4VXTdNnYug5ucHLBjEpt30701A3Ts+HEa73u6dT3FNWwflY86eMHPk+Yu+i6pzUpRrW7SNDg5JHR4KapmM5Wv2E8Tfcb1HoqqHMHU+uWDD7zg54mz5/2BSnizi9T1Dg4QQXLToGNCkb6tb1NU+QAlGr1++eADrzhn/u8Q2YZhQVlZ5+CAOtqfbhmaUCS1ezNFVm2imDbPmPng5wmz+gwh+oHDce0eUtQ6OGDIyR0uUhUsoO3vfDmmgOezH0mZN59x7MBi++WDL1g/eEiU3avlidO671bkLfwbw5XV2P8Pzo0ydy4t2/0eu33xYSOMOD8hTf4CrBtGMSoXfPLchX+J0ruSePw3LZeK0juPJbYzrhkH0io7B3k164hiGvawhOKMLkrQLyVpZg8rHFW7E2uHOL888IBPlNZ1FPzstSJM694fWr6RwpvcJK60+0HCILTBzZLFNdtAzJaohze60T8qBzyh5ZuOg5e7uwQppofEmf2++DYvmySqGBuKaicF1blQjhuHdvCIMvp8whTTfZzI7RldpwtSzL+F1+wkdZ2TBOW2gIF88PBTzD/gpeREAMEbxnJcaJHNHrpzji0gQCS6hdkEeYt9DF/2qPcEC8RM28Hwmr3sdNyht00byAut2k3gufWNtgtOEOFGUwcXWNDbdNbpgBGxEvKkOQsxivJx33iow0Vw5S6SVTrpVq11ysA2Rp7gTfPfktc6zhtXBBC+adRLshf6sG2RfHPZ5EAc4sVZ83yCN00Fk/4kggu40ZTvIEm5g24qtU4KjBrx/BTTH8ifVASAG7gKrnWxJDcU7x8X6Ecczhm3o6YicvsLXWfh3Ch1W0k8x0nXF+0fFxgt4phz8QvypiwCCFKMqXCnqXExjq10beH+UUA7+nG6mdG/Pu0f3LgFcGrl2s0kNNjpmoJ9o4B29CMO8dMT4Q5ox8uitF6fqsrJOr8qnwNbRzv6hSnG5wP+64C7h9lp30hKNtKdWjtdkbuPA19nJ7Tz3zR/ibgARbhb4AlhavcBebmTHcFl2fvYEnW0ox9xMxKBS8btJ+KiEbq9zA4RthQXDhPa0T9TEe69gWupwc6uBUphquXgf+/FrIjweHQS4/pduMe5ERUMHUd9xv8ZR98CxkS4F2n3EUrUZ10EYNw7BWm9x1GiPssi3GgiGRDKWRYZfXlON+dfNbM+GgIwYdwAAAAASUVORK5CYII=)}.leaflet-container .leaflet-control-attribution{background:#fff;background:#fffc;margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{padding:0 5px;color:#333;line-height:1.4}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:hover,.leaflet-control-attribution a:focus{text-decoration:underline}.leaflet-attribution-flag{display:inline!important;vertical-align:baseline!important;width:1em;height:.6669em}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{border:2px solid #777;border-top:none;line-height:1.1;padding:2px 5px 1px;white-space:nowrap;-moz-box-sizing:border-box;box-sizing:border-box;background:#fffc;text-shadow:1px 1px #fff}.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{box-shadow:none}.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{border:2px solid rgba(0,0,0,.2);background-clip:padding-box}.leaflet-popup{position:absolute;text-align:center;margin-bottom:20px}.leaflet-popup-content-wrapper{padding:1px;text-align:left;border-radius:12px}.leaflet-popup-content{margin:13px 24px 13px 20px;line-height:1.3;font-size:13px;font-size:1.08333em;min-height:1px}.leaflet-popup-content p{margin:1.3em 0}.leaflet-popup-tip-container{width:40px;height:20px;position:absolute;left:50%;margin-top:-1px;margin-left:-20px;overflow:hidden;pointer-events:none}.leaflet-popup-tip{width:17px;height:17px;padding:1px;margin:-10px auto 0;pointer-events:auto;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#fff;color:#333;box-shadow:0 3px 14px #0006}.leaflet-container a.leaflet-popup-close-button{position:absolute;top:0;right:0;border:none;text-align:center;width:24px;height:24px;font:16px/24px Tahoma,Verdana,sans-serif;color:#757575;text-decoration:none;background:transparent}.leaflet-container a.leaflet-popup-close-button:hover,.leaflet-container a.leaflet-popup-close-button:focus{color:#585858}.leaflet-popup-scrolled{overflow:auto}.leaflet-oldie .leaflet-popup-content-wrapper{-ms-zoom:1}.leaflet-oldie .leaflet-popup-tip{width:24px;margin:0 auto;-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";filter:progid:DXImageTransform.Microsoft.Matrix(M11=.70710678,M12=.70710678,M21=-.70710678,M22=.70710678)}.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-tooltip{position:absolute;padding:6px;background-color:#fff;border:1px solid #fff;border-radius:3px;color:#222;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;box-shadow:0 1px 3px #0006}.leaflet-tooltip.leaflet-interactive{cursor:pointer;pointer-events:auto}.leaflet-tooltip-top:before,.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{position:absolute;pointer-events:none;border:6px solid transparent;background:transparent;content:""}.leaflet-tooltip-bottom{margin-top:6px}.leaflet-tooltip-top{margin-top:-6px}.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{left:50%;margin-left:-6px}.leaflet-tooltip-top:before{bottom:0;margin-bottom:-12px;border-top-color:#fff}.leaflet-tooltip-bottom:before{top:0;margin-top:-12px;margin-left:-6px;border-bottom-color:#fff}.leaflet-tooltip-left{margin-left:-6px}.leaflet-tooltip-right{margin-left:6px}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{top:50%;margin-top:-6px}.leaflet-tooltip-left:before{right:0;margin-right:-12px;border-left-color:#fff}.leaflet-tooltip-right:before{left:0;margin-left:-12px;border-right-color:#fff}@media print{.leaflet-control{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.poi-detail-modal{max-width:500px;width:90vw}.poi-detail-title{display:flex;align-items:center;gap:var(--spacing-sm)}.poi-detail-icon{font-size:2rem}.poi-detail-title h2{margin:0;font-size:var(--font-size-lg)}.poi-detail-body{padding:var(--spacing-md);max-height:60vh;overflow-y:auto}.poi-detail-section{margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-md);border-bottom:1px solid rgba(255,255,255,.1)}.poi-detail-section:last-child{border-bottom:none}.poi-detail-section h3{margin:0 0 var(--spacing-sm) 0;font-size:var(--font-size-md);color:var(--primary)}.poi-detail-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-sm)}.poi-detail-label{font-weight:600;color:var(--text-secondary)}.poi-detail-value{color:var(--text-primary)}.accessibility-badge,.feature-badge{display:inline-flex;align-items:center;gap:.5rem;padding:var(--spacing-sm) var(--spacing-md);background-color:var(--success);color:#fff;border-radius:var(--radius-sm);font-weight:600;font-size:var(--font-size-sm)}.feature-badge{background-color:var(--primary);color:#000}.modal-footer{display:flex;gap:var(--spacing-sm)}.modal-footer .btn{flex:1}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000000b3;display:flex;align-items:center;justify-content:center;z-index:2000;animation:fadeIn var(--transition-fast)}.modal-content{background-color:var(--background-light);border-radius:var(--radius-lg);max-width:90vw;max-height:90vh;width:500px;display:flex;flex-direction:column;box-shadow:var(--shadow-lg);animation:slideUp var(--transition-normal)}.travel-info-modal{max-width:500px;max-height:85vh}.travel-section{margin-bottom:var(--spacing-lg)}.travel-section h3{margin-bottom:var(--spacing-sm);color:var(--primary);font-size:var(--font-size-md);display:flex;align-items:center;gap:.5rem}.address-text{font-size:var(--font-size-sm);color:var(--text-secondary);font-style:italic}.parking-options{display:grid;grid-template-columns:1fr;gap:var(--spacing-sm);margin:var(--spacing-sm) 0}.parking-item{padding:var(--spacing-sm);background-color:var(--surface);border-radius:var(--radius-sm);display:flex;flex-direction:column}.parking-item strong{color:var(--text-primary);font-size:var(--font-size-sm)}.parking-item span{color:var(--text-secondary);font-size:var(--font-size-xs)}.travel-link{display:block;margin-top:var(--spacing-sm);color:var(--primary);text-decoration:none;font-weight:600;font-size:var(--font-size-sm)}.travel-link:hover{text-decoration:underline}.btn-back{background:none;border:none;color:var(--primary, #00A859);font-size:14px;font-weight:700;cursor:pointer;padding:4px 0;white-space:nowrap;flex-shrink:0}.btn-back:hover{opacity:.75}.map-page{position:fixed;top:var(--top-bar-height, 56px);left:0;right:0;bottom:var(--bottom-nav-height, 60px);display:flex;flex-direction:column;overflow:hidden;z-index:1}.map-topbar{position:relative;z-index:500;display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--color-bg, #0d0d1a);border-bottom:1px solid rgba(255,255,255,.08);flex-shrink:0;pointer-events:all}.map-search-wrap{flex:1;display:flex;align-items:center;gap:8px;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:0 10px;height:38px}.map-search-icon{font-size:14px;opacity:.6;flex-shrink:0}.map-search-input{flex:1;background:none;border:none;outline:none;color:#fff;font-size:14px}.map-search-input::placeholder{color:#ffffff4d}.map-search-clear{background:none;border:none;color:#fff6;cursor:pointer;font-size:13px;padding:0;flex-shrink:0}.map-icon-btn{position:relative;width:38px;height:38px;border-radius:10px;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);color:#fff;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s;-webkit-tap-highlight-color:transparent}.map-icon-btn.active{background:#00a85926;border-color:var(--primary, #00A859)}.map-icon-btn.spinning{animation:mapSpin 1s linear infinite}@keyframes mapSpin{to{transform:rotate(360deg)}}.map-icon-badge{position:absolute;top:-5px;right:-5px;min-width:16px;height:16px;background:var(--primary, #00A859);color:#000;border-radius:20px;font-size:9px;font-weight:800;display:flex;align-items:center;justify-content:center;padding:0 3px}.map-panel{position:relative;z-index:400;background:var(--color-surface, #1a1a2e);border-bottom:1px solid rgba(255,255,255,.08);max-height:50vh;overflow-y:auto;flex-shrink:0;pointer-events:all;animation:panelSlideIn .2s ease}@keyframes panelSlideIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.map-panel-block{padding:12px 14px 10px;border-bottom:1px solid rgba(255,255,255,.06)}.map-panel-block:last-child{border-bottom:none}.map-panel-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.map-panel-title{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.8px;color:#fff6}.map-panel-close-btn{width:26px;height:26px;border-radius:50%;background:#ffffff12;border:1px solid rgba(255,255,255,.1);color:#ffffff80;font-size:13px;cursor:pointer;display:flex;align-items:center;justify-content:center}.map-panel-link{background:none;border:none;color:#fff6;font-size:12px;font-weight:600;cursor:pointer;padding:2px 6px;border-radius:6px;transition:color .12s}.map-panel-link:hover{color:#fff}.floor-group-head{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:#ffffff40;margin:8px 0 5px}.floor-row{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:2px}.floor-tile{display:flex;flex-direction:column;align-items:center;gap:2px;padding:7px 10px;border:1.5px solid rgba(255,255,255,.1);border-radius:10px;background:#ffffff08;color:#ffffff80;cursor:pointer;min-width:48px;transition:all .13s;-webkit-tap-highlight-color:transparent}.floor-tile:active{transform:scale(.95)}.floor-tile.active{background:#00a85926;border-color:var(--primary, #00A859);color:#fff}.floor-tile.wide{flex-direction:row;gap:6px;width:100%;justify-content:center;padding:8px 14px;font-size:13px;font-weight:700}.floor-tile-lbl{font-size:11px;font-weight:700}.floor-tile-cnt{font-size:9px;background:#ffffff1a;padding:1px 5px;border-radius:20px;color:#fff6}.floor-tile.active .floor-tile-cnt{background:#00a85940;color:var(--primary, #00A859)}.cat-grid{display:flex;flex-wrap:wrap;gap:6px}.cat-chip{display:flex;align-items:center;gap:5px;padding:6px 10px;border:1.5px solid rgba(255,255,255,.1);border-radius:20px;background:#ffffff08;color:#ffffff73;font-size:12px;font-weight:600;cursor:pointer;transition:all .13s;-webkit-tap-highlight-color:transparent}.cat-chip.on{background:color-mix(in srgb,var(--cc, #00A859) 18%,transparent);border-color:var(--cc, #00A859);color:#fff}.cat-chip.dim{opacity:.4}.cat-name{font-size:11px}.cat-cnt{font-size:10px;font-weight:700;background:#ffffff1a;padding:1px 5px;border-radius:20px;color:#fff6}.cat-chip.on .cat-cnt{background:color-mix(in srgb,var(--cc, #00A859) 28%,transparent);color:#fff}.cat-check{font-size:10px;font-weight:800;color:var(--cc, #00A859)}.map-canvas-wrap{position:relative;flex:1;overflow:hidden;z-index:1;min-height:0}.map-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.map-status{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:#0a0a0ab3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff9;font-size:13px}.map-status.error{color:#fff6;text-align:center}.map-status.error p{margin:0;font-size:14px;font-weight:600;color:#fff}.map-status.error code{font-size:11px;color:#ffffff59}.map-status.error small{font-size:11px}.map-spinner{width:28px;height:28px;border:3px solid rgba(255,255,255,.15);border-top-color:var(--primary, #00A859);border-radius:50%;animation:mapSpin .8s linear infinite}.map-floor-pill{position:absolute;top:10px;left:10px;z-index:1000;display:flex;align-items:center;gap:6px;padding:5px 12px;background:#000000b3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.15);border-radius:20px;color:#fff;font-size:12px;font-weight:700;cursor:pointer;transition:all .15s;-webkit-tap-highlight-color:transparent}.pill-badge{font-size:10px;background:#ffa50033;color:orange;padding:1px 6px;border-radius:10px}.pill-caret{font-size:10px;opacity:.5}.map-fab:active{transform:scale(.93)}.map-route-panel{background:#161616;border-top:2px solid var(--primary, #00A859);padding:14px 14px max(14px,env(safe-area-inset-bottom));flex-shrink:0;z-index:300;animation:panelSlideUp .2s ease}@keyframes panelSlideUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.map-route-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.map-route-head h3{margin:0;font-size:15px;font-weight:800;color:var(--primary, #00A859)}.map-route-head button{background:none;border:none;color:#ffffff80;font-size:18px;cursor:pointer}.map-route-selects{display:flex;align-items:center;gap:8px;margin-bottom:10px}.map-route-selects select{flex:1;padding:8px 10px;background:#ffffff0f;border:1.5px solid rgba(255,255,255,.1);border-radius:10px;color:#fff;font-size:13px}.route-arrow{color:#fff6;font-size:16px;flex-shrink:0}.map-route-result{display:flex;align-items:center;justify-content:space-between;padding-top:8px;border-top:1px solid rgba(255,255,255,.07);font-size:13px;font-weight:700;color:#fff9}.poi-pin{width:34px;height:34px;background:var(--c, #888);border-radius:50% 50% 50% 4px;transform:rotate(-45deg);display:flex;align-items:center;justify-content:center;border:2px solid rgba(255,255,255,.8);box-shadow:0 2px 8px #00000080;font-size:16px}.poi-pin>*{transform:rotate(45deg)}.friend-pin{width:34px;height:34px;border-radius:50%;border:2.5px solid var(--primary, #00A859);background:#222;overflow:hidden;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;color:#fff;position:relative;box-shadow:0 2px 8px #00000080}.friend-pin img{width:100%;height:100%;object-fit:cover}.friend-dot{position:absolute;bottom:0;right:0;width:10px;height:10px;background:var(--primary, #00A859);border:2px solid #111;border-radius:50%}.user-pin{width:14px;height:14px;background:#2196f3;border:2px solid #fff;border-radius:50%;position:relative;box-shadow:0 0 6px #2196f399}.user-pulse{position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;background:#2196f34d;border-radius:50%;animation:userPulse 2s infinite}@keyframes userPulse{0%{transform:scale(1);opacity:.6}to{transform:scale(2.5);opacity:0}}.poi-popup{min-width:180px}.poi-popup-head{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:700;margin-bottom:4px;color:#111}.poi-popup-desc{font-size:12px;color:#555;margin:0 0 8px;line-height:1.4}.poi-popup-btns{display:flex;gap:6px}.poi-popup-btns button{flex:1;padding:6px 8px;background:var(--primary, #00A859);color:#000;border:none;border-radius:6px;font-size:12px;font-weight:700;cursor:pointer}.poi-popup-btns button:last-child{background:#eee;color:#333}.map-controls{position:absolute;right:12px;bottom:90px;z-index:1000;display:flex;flex-direction:column;align-items:center;background:#0f0f0fe0;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.12);border-radius:18px;box-shadow:0 8px 32px #0000008c,0 2px 8px #0000004d;overflow:hidden;padding:4px 0}.map-ctrl-btn{width:46px;height:46px;background:transparent;border:none;color:#ffffffd9;font-size:20px;font-weight:400;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .12s,color .12s;-webkit-tap-highlight-color:transparent;letter-spacing:-1px}.map-ctrl-btn:hover{background:#ffffff12;color:#fff}.map-ctrl-btn:active{background:#ffffff21;transform:scale(.93)}.map-ctrl-btn.active{color:var(--primary, #00A859);background:#00a8591f}.map-ctrl-btn svg{flex-shrink:0}.map-ctrl-divider{width:24px;height:1px;background:#ffffff17;margin:2px 0;flex-shrink:0}.map-ctrl-divider.thick{width:30px;height:1.5px;background:#ffffff26;margin:4px 0}.map-floor-pill{position:absolute;top:10px;left:10px;z-index:1000;display:flex;align-items:center;gap:7px;padding:6px 13px 6px 11px;background:#0a0a0ad1;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.14);border-radius:22px;color:#fff;font-size:12px;font-weight:700;cursor:pointer;transition:background .15s,border-color .15s;-webkit-tap-highlight-color:transparent;box-shadow:0 4px 14px #0006;letter-spacing:.2px}.map-floor-pill:active{opacity:.8}.map-floor-pill:hover{background:#141414e6;border-color:#ffffff38}.pill-badge{font-size:10px;background:#ffa5002e;color:orange;padding:1px 7px;border-radius:10px;font-weight:700}.pill-caret{font-size:9px;opacity:.45;margin-left:-2px}.map-route-go-btn{padding:9px 20px;background:var(--primary, #00A859);color:#000;border:none;border-radius:10px;font-size:13px;font-weight:800;cursor:pointer;transition:opacity .15s;flex-shrink:0}.map-route-go-btn:active{opacity:.8}.leaflet-control-zoom{display:none!important}.leaflet-popup-content-wrapper{border-radius:12px!important;box-shadow:0 8px 24px #0000004d!important}.map-ctrl-btn.zoom{font-size:26px;font-weight:300;line-height:1;letter-spacing:0;color:#fff}.add-friend-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;display:flex;align-items:flex-end;animation:afFadeIn .2s ease}@keyframes afFadeIn{0%{opacity:0}to{opacity:1}}.add-friend-sheet{width:100%;max-height:92vh;background:#141414;border-radius:24px 24px 0 0;display:flex;flex-direction:column;overflow:hidden;animation:afSlideUp .28s ease}@keyframes afSlideUp{0%{transform:translateY(60px);opacity:0}to{transform:translateY(0);opacity:1}}.af-handle{width:40px;height:4px;background:#fff3;border-radius:2px;margin:12px auto 0}.af-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px}.af-title{font-size:18px;font-weight:800;color:#fff;margin:0}.af-close{background:none;border:none;font-size:18px;color:#ffffff80;cursor:pointer;transition:color .15s;padding:4px}.af-close:hover{color:#fff}.af-tabs{display:flex;gap:8px;padding:0 16px 16px;border-bottom:1px solid rgba(255,255,255,.07);overflow-x:auto}.af-tab{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;background:#ffffff0a;border:1px solid rgba(255,255,255,.05);padding:10px 0;border-radius:14px;color:#ffffff80;font-size:11px;font-weight:700;cursor:pointer;transition:all .15s;min-width:72px}.af-tab span:first-child{font-size:16px}.af-tab.active{background:#00a8591a;border-color:#00a8594d;color:var(--primary, #00A859)}.af-content{padding:24px 20px 32px;display:flex;flex-direction:column;align-items:center;text-align:center;overflow-y:auto}.af-instruction{font-size:14px;color:#fff9;margin:0 0 20px;line-height:1.4}.af-qr-display{display:flex;flex-direction:column;align-items:center;width:100%}.af-qr-box{background:#fff;padding:12px;border-radius:16px;margin-bottom:16px;display:inline-block}.af-username{font-size:15px;font-weight:700;color:var(--primary, #00A859);background:#00a8591a;padding:4px 16px;border-radius:20px}.af-qr-fallback{width:190px;height:190px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#000}.af-primary-btn{width:100%;padding:14px;background:var(--primary, #00A859);color:#000;border:none;border-radius:14px;font-size:15px;font-weight:800;cursor:pointer;transition:opacity .15s}.af-primary-btn:disabled{opacity:.4;cursor:not-allowed}.af-primary-btn:not(:disabled):active{opacity:.8}.af-form{width:100%;display:flex;flex-direction:column;align-items:center}.af-input{width:100%;box-sizing:border-box;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:12px;color:#fff;font-size:15px;padding:14px;margin-bottom:20px;outline:none;transition:border-color .15s}.af-input:focus{border-color:var(--primary, #00A859)}.af-invite-preview{background:#ffffff0d;padding:16px;border-radius:14px;margin-bottom:20px;text-align:left;width:100%;box-sizing:border-box;border:1px dashed rgba(255,255,255,.1)}.af-invite-preview strong{font-size:11px;text-transform:uppercase;color:#ffffff4d;display:block;margin-bottom:6px}.af-invite-preview p{margin:0;font-size:13px;color:#fffc;line-height:1.4}.af-success{display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--primary, #00A859);padding:20px 0}.af-success span{font-size:48px}.af-success p{font-size:18px;font-weight:700;margin:0}.af-scan{width:100%;display:flex;flex-direction:column;align-items:center}.af-qr-reader{width:100%;max-width:300px;height:300px;background:#000;border-radius:16px;overflow:hidden;margin-bottom:20px;border:2px solid rgba(255,255,255,.1)}.af-error{color:#ff6b6b;font-size:13px;margin:0 0 16px;background:#ff6b6b1a;padding:8px 12px;border-radius:8px}.report-modal{max-width:600px;width:90vw;max-height:85vh;overflow-y:auto}.report-modal-body{padding:var(--spacing-md)}.report-target{padding:var(--spacing-md);background-color:var(--surface);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg);border-left:3px solid var(--primary)}.report-target strong{display:block;margin-bottom:var(--spacing-xs);color:var(--primary);font-size:var(--font-size-sm)}.report-section{margin-bottom:var(--spacing-lg)}.report-section h3{margin:0 0 var(--spacing-md) 0;font-size:var(--font-size-md);color:var(--text-primary)}.report-categories{display:flex;flex-direction:column;gap:var(--spacing-sm)}.category-card{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);background-color:var(--surface);border:2px solid rgba(255,255,255,.1);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);text-align:left;position:relative}.category-card:hover{background-color:var(--background-light);border-color:#fff3}.category-card.selected{background-color:#ff98001a;border-color:var(--primary)}.category-icon{font-size:1.75rem;flex-shrink:0}.category-info{flex:1}.category-label{font-weight:600;font-size:var(--font-size-md);margin-bottom:.25rem}.category-description{font-size:var(--font-size-sm);color:var(--text-secondary)}.selected-check{position:absolute;top:var(--spacing-sm);right:var(--spacing-sm);color:var(--primary);font-size:1.25rem;font-weight:700}.report-textarea{width:100%;padding:var(--spacing-sm);background-color:var(--surface);border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-sm);color:var(--text-primary);font-size:var(--font-size-sm);font-family:inherit;resize:vertical;min-height:80px}.report-textarea:focus{outline:none;border-color:var(--primary)}.char-count{text-align:right;font-size:var(--font-size-xs);color:var(--text-secondary);margin-top:var(--spacing-xs)}.report-disclaimer{padding:var(--spacing-md);background-color:#ff98001a;border-radius:var(--radius-sm);font-size:var(--font-size-sm);color:var(--text-secondary);border-left:3px solid var(--warning)}.report-disclaimer strong{color:var(--warning)}.report-success{display:flex;flex-direction:column;align-items:center;text-align:center;padding:var(--spacing-xl)}.report-success .success-icon{font-size:4rem;margin-bottom:var(--spacing-md)}.report-success h2{margin:0 0 var(--spacing-sm) 0;color:var(--success)}.report-success p{margin:0;font-size:var(--font-size-md)}.report-success .success-subtitle{color:var(--text-secondary);font-size:var(--font-size-sm);margin-top:var(--spacing-xs)}.chat-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;display:flex;align-items:flex-end;animation:chatFadeIn .2s ease}@keyframes chatFadeIn{0%{opacity:0}to{opacity:1}}.chat-sheet{width:100%;max-height:92vh;background:#141414;border-radius:24px 24px 0 0;display:flex;flex-direction:column;overflow:hidden;animation:chatSlideUp .28s ease}@keyframes chatSlideUp{0%{transform:translateY(60px);opacity:0}to{transform:translateY(0);opacity:1}}.chat-header{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid rgba(255,255,255,.07);flex-shrink:0}.chat-back{background:none;border:none;color:var(--primary, #00A859);font-size:20px;font-weight:700;cursor:pointer;padding:4px;flex-shrink:0}.chat-header-info{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.chat-avatar{position:relative;width:38px;height:38px;flex-shrink:0}.chat-avatar img,.chat-avatar-initial{width:38px;height:38px;border-radius:50%;object-fit:cover}.chat-avatar-initial{background:#ffffff14;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:800;color:#fff}.chat-status-dot{position:absolute;bottom:1px;right:1px;width:10px;height:10px;border-radius:50%;border:2px solid #141414;background:#fff3}.chat-status-dot.online{background:var(--primary, #00A859)}.chat-friend-name{font-size:15px;font-weight:700;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-friend-sub{font-size:11px;color:#ffffff59}.chat-report-btn{background:none;border:none;font-size:16px;cursor:pointer;padding:6px;opacity:.4;flex-shrink:0;transition:opacity .12s}.chat-report-btn:hover{opacity:.8}.chat-banner{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 16px;background:#00a85914;border-bottom:1px solid rgba(0,168,89,.15);font-size:12px;color:#fff9;flex-shrink:0}.chat-banner-btn{background:none;border:1px solid var(--primary, #00A859);color:var(--primary, #00A859);border-radius:20px;padding:4px 12px;font-size:11px;font-weight:700;cursor:pointer;flex-shrink:0}.chat-messages{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px;-webkit-overflow-scrolling:touch}.chat-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:32px;color:#ffffff4d;font-size:14px}.chat-empty span{font-size:2.5rem}.chat-msg{display:flex;align-items:flex-end;gap:6px}.chat-msg.sent{flex-direction:row-reverse}.chat-msg.received{flex-direction:row}.chat-bubble{position:relative;max-width:72%;padding:9px 12px 7px;border-radius:16px}.chat-msg.sent .chat-bubble{background:var(--primary, #00A859);border-bottom-right-radius:4px}.chat-msg.received .chat-bubble{background:#ffffff17;border-bottom-left-radius:4px}.chat-bubble-text{margin:0;font-size:14px;line-height:1.4;color:#fff;word-break:break-word}.chat-msg.sent .chat-bubble-text{color:#000}.chat-bubble-time{display:block;font-size:10px;color:#fff6;margin-top:3px;text-align:right}.chat-msg.sent .chat-bubble-time{color:#0006}.chat-reactions{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px}.chat-reaction{display:inline-flex;align-items:center;gap:3px;padding:2px 7px;border-radius:20px;background:#ffffff1a;border:1px solid rgba(255,255,255,.08);font-size:12px;cursor:pointer;transition:background .12s}.chat-reaction.mine{background:#00a85933;border-color:#00a8594d}.chat-react-btn{background:none;border:none;font-size:11px;cursor:pointer;color:#ffffff4d;padding:2px 0 0;display:block;transition:color .12s}.chat-react-btn:hover{color:#ffffffb3}.chat-emoji-picker{position:absolute;bottom:calc(100% + 4px);left:0;display:flex;gap:4px;background:#222;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:6px 8px;z-index:10;box-shadow:0 4px 20px #0006}.chat-emoji-picker button{background:none;border:none;font-size:18px;cursor:pointer;padding:2px;transition:transform .1s}.chat-emoji-picker button:hover{transform:scale(1.25)}.chat-flag-btn{background:none;border:none;font-size:13px;opacity:.2;cursor:pointer;padding:4px;flex-shrink:0;transition:opacity .12s;align-self:flex-start;margin-top:8px}.chat-flag-btn:hover{opacity:.7}.chat-input-area{padding:10px 12px 14px;border-top:1px solid rgba(255,255,255,.07);flex-shrink:0;background:#141414}.chat-input{width:100%;box-sizing:border-box;background:#ffffff12;border:1.5px solid rgba(255,255,255,.1);border-radius:12px;color:#fff;font-size:14px;padding:10px 14px;resize:none;outline:none;font-family:inherit;line-height:1.4;min-height:42px;max-height:100px;overflow-y:auto;transition:border-color .15s}.chat-input:focus{border-color:var(--primary, #00A859)}.chat-input::placeholder{color:#ffffff40}.chat-input-footer{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:8px}.chat-counter{font-size:11px;color:#ffffff4d}.chat-counter.warn{color:#ff6b6b}.chat-send-btn{padding:8px 22px;background:var(--primary, #00A859);color:#000;border:none;border-radius:20px;font-size:13px;font-weight:800;cursor:pointer;transition:opacity .15s;-webkit-tap-highlight-color:transparent}.chat-send-btn:disabled{opacity:.35;cursor:not-allowed}.chat-send-btn:not(:disabled):active{opacity:.8}.friends-page{padding-bottom:80px}.friends-header{display:flex;align-items:center;justify-content:space-between;padding:0 16px 4px}.friends-header .page-header{margin:0}.friends-add-btn{padding:7px 16px;background:var(--primary, #00A859);color:#000;border:none;border-radius:20px;font-size:13px;font-weight:800;cursor:pointer;transition:opacity .15s;-webkit-tap-highlight-color:transparent}.friends-add-btn:active{opacity:.8}.seg-badge{display:inline-block;margin-left:5px;min-width:18px;height:18px;padding:0 5px;background:#ffffff26;border-radius:20px;font-size:10px;font-weight:800;line-height:18px;vertical-align:middle}.seg-badge.unread{background:none;color:var(--primary, #00A859);font-size:14px}.friends-section-label{display:flex;align-items:center;gap:7px;padding:14px 16px 6px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.7px;color:var(--primary, #00A859)}.friends-section-label.offline{color:#ffffff4d}.online-dot{width:7px;height:7px;border-radius:50%;background:var(--primary, #00A859);box-shadow:0 0 6px var(--primary, #00A859);flex-shrink:0}.offline-dot{width:7px;height:7px;border-radius:50%;background:#fff3;flex-shrink:0}.friend-card{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.05);cursor:pointer;transition:background .12s;-webkit-tap-highlight-color:transparent}.friend-card:active{background:#ffffff08}.friend-avatar-wrap{position:relative;width:44px;height:44px;flex-shrink:0}.friend-avatar-img{width:44px;height:44px;border-radius:50%;object-fit:cover}.avatar-initial{width:44px;height:44px;border-radius:50%;background:#ffffff14;display:flex;align-items:center;justify-content:center;font-size:17px;font-weight:800;color:#fff}.status-dot{position:absolute;bottom:1px;right:1px;width:11px;height:11px;border-radius:50%;border:2px solid #111;background:#fff3}.status-dot.online{background:var(--primary, #00A859)}.status-dot.offline{background:#fff3}.friend-info{flex:1;min-width:0}.friend-name-row{display:flex;align-items:center;gap:7px;margin-bottom:2px}.friend-name{font-size:15px;font-weight:700;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.friend-unread{min-width:18px;height:18px;background:var(--primary, #00A859);color:#000;border-radius:20px;font-size:10px;font-weight:800;display:flex;align-items:center;justify-content:center;padding:0 5px;flex-shrink:0}.friend-sub{font-size:12px;color:#fff6}.friend-pronouns{color:#ffffff4d}.friend-location,.friend-shared{font-size:11px;color:#ffffff59;margin-top:2px}.friend-btns{display:flex;align-items:center;gap:6px;flex-shrink:0}.friend-btn{width:34px;height:34px;border-radius:50%;border:none;background:#ffffff12;font-size:15px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .12s,transform .1s;-webkit-tap-highlight-color:transparent}.friend-btn:active{transform:scale(.9)}.friend-btn.chat:hover{background:#00a85933}.friend-btn.meet:hover{background:#2196f333}.friend-btn.remove{background:transparent;color:#fff3;font-size:13px}.friend-btn.remove:hover{background:#ff6b6b26;color:#ff6b6b}.convo-row{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.05);cursor:pointer;transition:background .12s;-webkit-tap-highlight-color:transparent}.convo-row:active{background:#ffffff08}.convo-row.unread{background:#00a8590a}.convo-avatar{position:relative;width:46px;height:46px;flex-shrink:0}.convo-avatar img{width:46px;height:46px;border-radius:50%;object-fit:cover}.convo-avatar .avatar-initial{width:46px;height:46px;font-size:18px}.convo-info{flex:1;min-width:0}.convo-top{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:3px}.convo-name{font-size:15px;font-weight:700;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.convo-time{font-size:11px;color:#ffffff4d;flex-shrink:0}.convo-preview{font-size:13px;color:#fff6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.convo-you{color:#ffffff40}.convo-badge{min-width:20px;height:20px;background:var(--primary, #00A859);color:#000;border-radius:20px;font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center;padding:0 5px;flex-shrink:0}.empty-state{display:flex;flex-direction:column;align-items:center;gap:8px;padding:48px 24px;text-align:center}.empty-icon{font-size:3rem;margin:0}.empty-title{font-size:17px;font-weight:700;color:#fff;margin:0}.empty-subtitle{font-size:13px;color:#fff6;margin:0}.tag-selector{display:flex;flex-direction:column;height:100%}.ts-selected-pills{display:flex;flex-wrap:wrap;gap:8px;padding:0 16px 16px}.ts-pill{background:var(--tag-color, var(--primary));color:#fff;padding:6px 12px;border-radius:16px;font-size:13px;font-weight:600;display:flex;align-items:center;gap:6px;cursor:pointer;box-shadow:0 2px 8px #0003}.ts-search-wrap{position:relative;padding:0 16px 12px}.ts-search-icon{position:absolute;left:28px;top:50%;transform:translateY(-50%);color:var(--text-muted)}.ts-search-input{width:100%;background:var(--surface-light);border:1px solid var(--border-color);color:var(--text-primary);padding:12px 36px 12px 40px;border-radius:12px;font-size:15px}.ts-search-input:focus{outline:none;border-color:var(--primary)}.ts-search-clear{position:absolute;right:28px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text-muted);font-size:16px;padding:4px;cursor:pointer}.ts-tabs-scroll{overflow-x:auto;scrollbar-width:none;padding:0 16px 12px;margin:0 -16px}.ts-tabs-scroll::-webkit-scrollbar{display:none}.ts-tabs{display:flex;gap:8px;padding:0 16px}.ts-tab-btn{display:flex;align-items:center;gap:6px;padding:8px 16px;background:var(--surface-light);border:1px solid var(--border-color);color:var(--text-secondary);border-radius:20px;font-size:14px;font-weight:500;white-space:nowrap;cursor:pointer;transition:all .2s}.ts-tab-btn.active{background:var(--primary);border-color:var(--primary);color:#fff}.ts-tab-icon{font-size:16px}.ts-grid-wrap{flex:1;overflow-y:auto;padding:4px 16px 20px}.ts-tag-grid{display:flex;flex-wrap:wrap;gap:10px}.ts-tag-btn{background:var(--surface-light);border:1px solid var(--border-color);color:var(--text-primary);padding:10px 16px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.ts-tag-btn.selected{background:var(--tag-color, var(--primary));border-color:var(--tag-color, var(--primary));color:#fff;box-shadow:0 0 12px var(--tag-color, var(--primary))}.ts-tag-btn.disabled{cursor:not-allowed}.ts-no-results{text-align:center;color:var(--text-muted);padding:40px 20px;font-size:15px}.vam-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:1300;display:flex;align-items:flex-end;animation:vamFade .18s ease}@keyframes vamFade{0%{opacity:0}to{opacity:1}}.vam-sheet{width:100%;max-height:94vh;background:#141414;border-radius:24px 24px 0 0;display:flex;flex-direction:column;overflow:hidden;animation:vamUp .28s cubic-bezier(.22,.8,.44,1)}@keyframes vamUp{0%{transform:translateY(60px);opacity:0}to{transform:translateY(0);opacity:1}}.vam-handle{width:40px;height:4px;background:#ffffff1f;border-radius:2px;margin:10px auto 0;flex-shrink:0}.vam-header{display:flex;align-items:flex-start;justify-content:space-between;padding:12px 16px 8px;flex-shrink:0}.vam-header-left{display:flex;align-items:flex-start;gap:10px}.vam-back{background:none;border:none;color:var(--primary, #00A859);font-size:22px;font-weight:700;cursor:pointer;padding:2px 8px 2px 0;margin-top:4px}.vam-title{margin:0;font-size:18px;font-weight:900;color:#fff}.vam-role-badge{display:inline-block;margin-top:4px;padding:3px 9px;background:color-mix(in srgb,var(--role-color, #888) 15%,transparent);border:1px solid color-mix(in srgb,var(--role-color, #888) 30%,transparent);border-radius:20px;font-size:11px;font-weight:700;color:var(--role-color, #888)}.vam-close{background:#ffffff12;border:none;border-radius:50%;width:30px;height:30px;color:#ffffff80;font-size:13px;cursor:pointer;display:flex;align-items:center;justify-content:center}.vam-steps{display:flex;align-items:center;padding:10px 16px 12px;flex-shrink:0;overflow-x:auto;scrollbar-width:none}.vam-steps::-webkit-scrollbar{display:none}.vam-step{display:flex;flex-direction:column;align-items:center;gap:4px;flex-shrink:0}.vam-step-dot{width:26px;height:26px;border-radius:50%;background:#ffffff0f;border:1.5px solid rgba(255,255,255,.1);color:#ffffff4d;font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center;transition:all .2s}.vam-step.active .vam-step-dot{background:var(--primary, #00A859);border-color:var(--primary, #00A859);color:#000}.vam-step.done .vam-step-dot{background:#00a85933;border-color:#00a85966;color:var(--primary, #00A859)}.vam-step-label{font-size:9px;font-weight:700;color:#ffffff40;text-transform:uppercase;letter-spacing:.4px;white-space:nowrap}.vam-step.active .vam-step-label{color:var(--primary, #00A859)}.vam-step.done .vam-step-label{color:#00a85999}.vam-step-line{flex:1;min-width:20px;height:1.5px;background:#ffffff12;margin:0 4px 16px;transition:background .2s}.vam-step-line.done{background:#00a85959}.vam-body{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}.vam-content{padding:0 16px 20px;display:flex;flex-direction:column;gap:16px}.vam-desc{margin:0;font-size:13px;color:#ffffff73;line-height:1.5;padding-top:4px}.vam-field{display:flex;flex-direction:column;gap:6px}.vam-field label{font-size:12px;font-weight:800;color:#fff9;text-transform:uppercase;letter-spacing:.4px}.vam-req{color:var(--primary, #00A859);margin-left:2px}.vam-optional{font-weight:500;color:#ffffff40;text-transform:none;letter-spacing:0}.vam-hint{font-size:11px;color:#ffffff40;margin:0}.vam-hint-inline{display:inline-block;margin-left:6px;font-size:11px;color:#ffffff4d;text-transform:none;letter-spacing:0}.vam-char{font-size:10px;color:#fff3;text-align:right}.vam-input,.vam-textarea{background:#ffffff0f;border:1.5px solid rgba(255,255,255,.09);border-radius:12px;color:#fff;font-size:14px;padding:11px 14px;outline:none;font-family:inherit;transition:border-color .15s;width:100%;box-sizing:border-box}.vam-input:focus,.vam-textarea:focus{border-color:var(--primary, #00A859)}.vam-input::placeholder,.vam-textarea::placeholder{color:#fff3}.vam-textarea{resize:none;line-height:1.5}.vam-link{color:var(--primary, #00A859);text-decoration:underline;cursor:pointer}.vam-con-list{display:flex;flex-direction:column;gap:8px}.vam-con-card{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;background:#ffffff0a;border:1.5px solid rgba(255,255,255,.07);border-radius:14px;cursor:pointer;text-align:left;transition:background .12s,border-color .12s;-webkit-tap-highlight-color:transparent}.vam-con-card.selected{background:#00a85914;border-color:#00a85959}.vam-con-left{display:flex;align-items:center;gap:10px}.vam-con-logo{font-size:24px}.vam-con-name{font-size:13px;font-weight:700;color:#fff}.vam-con-dates{font-size:11px;color:#ffffff59;margin-top:2px}.vam-check{color:var(--primary, #00A859);font-size:16px;font-weight:900}.vam-product-grid{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.vam-product-chip{padding:8px 14px;border-radius:20px;background:#ffffff0d;border:1.5px solid rgba(255,255,255,.08);color:#ffffffb3;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s}.vam-product-chip.selected{background:#00a8591a;border-color:var(--primary, #00A859);color:#fff}.vam-chip-tick{color:var(--primary, #00A859);font-weight:900;margin-right:4px}.vam-activity{display:flex;flex-direction:column;gap:12px;padding:14px;background:#ffffff08;border:1.5px solid rgba(255,255,255,.05);border-radius:16px;transition:background .2s,border-color .2s}.vam-activity.active{background:#ffffff0f;border-color:#ffffff26}.vam-activity-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.vam-activity-left{display:flex;gap:12px}.vam-activity-icon{font-size:24px;flex-shrink:0;margin-top:-2px}.vam-activity-label{font-size:14px;font-weight:700;color:#fff}.vam-activity-sub{font-size:12px;color:#fff6;margin-top:2px;line-height:1.4}.activity-detail{margin-top:4px;font-size:13px}.vam-toggle{display:inline-flex;position:relative;cursor:pointer;flex-shrink:0}.vam-toggle input{opacity:0;width:0;height:0;position:absolute}.vam-toggle-track{display:block;width:44px;height:24px;background:#ffffff1a;border-radius:12px;position:relative;transition:background .2s}.vam-toggle input:checked+.vam-toggle-track{background:var(--primary, #00A859)}.vam-toggle-thumb{position:absolute;width:18px;height:18px;background:#fff;border-radius:50%;top:3px;left:3px;transition:transform .2s;box-shadow:0 1px 3px #0000004d}.vam-toggle input:checked+.vam-toggle-track .vam-toggle-thumb{transform:translate(20px)}.vam-review{background:#ffffff08;border:1px solid rgba(255,255,255,.07);border-radius:16px;overflow:hidden;margin-bottom:16px}.vam-review-row{display:flex;gap:12px;padding:12px 14px;border-bottom:1px solid rgba(255,255,255,.04)}.vam-review-row:last-child{border-bottom:none}.vam-review-label{font-size:11px;font-weight:700;color:#ffffff4d;text-transform:uppercase;letter-spacing:.4px;width:70px;flex-shrink:0;padding-top:2px}.vam-review-vals{display:flex;flex-direction:column;gap:3px}.vam-review-val{font-size:13px;color:#ffffff80}.vam-review-val.primary{font-size:14px;font-weight:700;color:#fff}.vam-review-chips{display:flex;flex-wrap:wrap;gap:6px}.vam-review-chip{font-size:11px;padding:3px 8px;border-radius:12px;background:#ffffff0f;color:#ffffffb3}.vam-review-chip.on{background:#00a85926;color:var(--primary, #00A859);font-weight:600}.vam-review-chip.off{opacity:.5}.vam-terms{display:flex;gap:10px;align-items:flex-start;padding:12px;background:#0003;border-radius:12px;cursor:pointer;-webkit-user-select:none;user-select:none;margin-bottom:24px}.vam-terms input{margin-top:3px;accent-color:var(--primary, #00A859);width:16px;height:16px}.vam-terms span{font-size:12px;color:#fff9;line-height:1.4}.vam-footer{padding:12px 16px 20px;flex-shrink:0;border-top:1px solid rgba(255,255,255,.05)}.vam-next-btn,.vam-submit-btn{width:100%;padding:15px;background:var(--primary, #00A859);color:#000;border:none;border-radius:16px;font-size:15px;font-weight:900;cursor:pointer;transition:opacity .15s;-webkit-tap-highlight-color:transparent}.vam-next-btn:disabled,.vam-submit-btn:disabled{opacity:.35;cursor:not-allowed}.vam-next-btn:not(:disabled):active,.vam-submit-btn:not(:disabled):active{opacity:.8}.vam-submitting{display:inline-flex;align-items:center;gap:8px}.vam-spinner{width:14px;height:14px;border:2px solid rgba(0,0,0,.3);border-top-color:#000;border-radius:50%;display:inline-block;animation:vamspin .7s linear infinite}@keyframes vamspin{to{transform:rotate(360deg)}}.vam-submit-note{font-size:11px;color:#ffffff40;text-align:center;margin:8px 0 0;line-height:1.4}.vam-success{display:flex;flex-direction:column;align-items:center;padding:48px 24px;text-align:center;gap:12px}.vam-success-icon{font-size:56px;animation:vamPop .5s cubic-bezier(.22,.8,.44,1.5)}@keyframes vamPop{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}.vam-success h3{margin:0;font-size:22px;font-weight:900;color:#fff}.vam-success p{margin:0;font-size:14px;color:#ffffff80;line-height:1.5}.vam-success-note{font-size:12px!important;color:#ffffff4d!important;font-style:italic;margin-top:12px!important}.vim-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:1300;display:flex;align-items:flex-end;animation:vimFade .18s ease}@keyframes vimFade{0%{opacity:0}to{opacity:1}}.vim-sheet{width:100%;max-height:94vh;background:#141414;border-radius:24px 24px 0 0;display:flex;flex-direction:column;overflow:hidden;animation:vimUp .28s cubic-bezier(.22,.8,.44,1)}@keyframes vimUp{0%{transform:translateY(60px);opacity:0}to{transform:translateY(0);opacity:1}}.vim-handle{width:40px;height:4px;background:#ffffff1f;border-radius:2px;margin:10px auto 0;flex-shrink:0}.vim-header{display:flex;align-items:flex-start;justify-content:space-between;padding:12px 16px 8px;flex-shrink:0}.vim-header-left{display:flex;align-items:flex-start;gap:10px}.vim-back{background:none;border:none;color:var(--primary, #00A859);font-size:22px;font-weight:700;cursor:pointer;padding:2px 8px 2px 0;margin-top:4px}.vim-title{margin:0;font-size:18px;font-weight:900;color:#fff}.vim-role-badge{display:inline-block;margin-top:4px;padding:3px 9px;background:color-mix(in srgb,var(--role-color) 15%,transparent);border:1px solid color-mix(in srgb,var(--role-color) 30%,transparent);border-radius:20px;font-size:11px;font-weight:700;color:var(--role-color, #888)}.vim-close{background:#ffffff12;border:none;border-radius:50%;width:30px;height:30px;color:#ffffff80;font-size:13px;cursor:pointer;display:flex;align-items:center;justify-content:center}.vim-steps{display:flex;align-items:center;padding:10px 16px 12px;flex-shrink:0;overflow-x:auto;scrollbar-width:none}.vim-steps::-webkit-scrollbar{display:none}.vim-step{display:flex;flex-direction:column;align-items:center;gap:4px;flex-shrink:0}.vim-step-dot{width:26px;height:26px;border-radius:50%;background:#ffffff0f;border:1.5px solid rgba(255,255,255,.1);color:#ffffff4d;font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center;transition:all .2s}.vim-step.active .vim-step-dot{background:var(--primary, #00A859);border-color:var(--primary, #00A859);color:#000}.vim-step.done .vim-step-dot{background:#00a85933;border-color:#00a85966;color:var(--primary, #00A859)}.vim-step-label{font-size:9px;font-weight:700;color:#ffffff40;text-transform:uppercase;letter-spacing:.4px;white-space:nowrap}.vim-step.active .vim-step-label{color:var(--primary, #00A859)}.vim-step.done .vim-step-label{color:#00a85999}.vim-step-line{flex:1;min-width:20px;height:1.5px;background:#ffffff12;margin:0 4px 16px;transition:background .2s}.vim-step-line.done{background:#00a85959}.vim-body{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}.vim-content{padding:0 16px 20px;display:flex;flex-direction:column;gap:16px}.vim-desc{margin:0;font-size:13px;color:#ffffff73;line-height:1.5;padding-top:4px}.vim-field{display:flex;flex-direction:column;gap:6px}.vim-field label{font-size:12px;font-weight:800;color:#fff9;text-transform:uppercase;letter-spacing:.4px}.vim-req{color:var(--primary, #00A859);margin-left:2px}.vim-optional{font-weight:500;color:#ffffff40;text-transform:none;letter-spacing:0}.vim-hint{font-size:11px;color:#ffffff40;margin:0}.vim-char{font-size:10px;color:#fff3;text-align:right}.vim-input,.vim-textarea{background:#ffffff0f;border:1.5px solid rgba(255,255,255,.09);border-radius:12px;color:#fff;font-size:14px;padding:11px 14px;outline:none;font-family:inherit;transition:border-color .15s;width:100%;box-sizing:border-box}.vim-input:focus,.vim-textarea:focus{border-color:var(--primary, #00A859)}.vim-input::placeholder,.vim-textarea::placeholder{color:#fff3}.vim-textarea{resize:none;line-height:1.5}.vim-con-list{display:flex;flex-direction:column;gap:8px}.vim-con-card{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;background:#ffffff0a;border:1.5px solid rgba(255,255,255,.07);border-radius:14px;cursor:pointer;text-align:left;transition:background .12s,border-color .12s;-webkit-tap-highlight-color:transparent}.vim-con-card.selected{background:#00a85914;border-color:#00a85959}.vim-con-left{display:flex;align-items:center;gap:10px}.vim-con-logo{font-size:24px}.vim-con-name{font-size:13px;font-weight:700;color:#fff}.vim-con-dates{font-size:11px;color:#ffffff59;margin-top:2px}.vim-check{color:var(--primary, #00A859);font-size:16px;font-weight:900}.vim-presets{display:flex;flex-direction:column;gap:7px}.vim-preset{display:flex;align-items:center;gap:12px;padding:11px 14px;background:#ffffff0a;border:1.5px solid rgba(255,255,255,.07);border-radius:14px;cursor:pointer;text-align:left;transition:background .12s,border-color .12s;-webkit-tap-highlight-color:transparent}.vim-preset.selected{background:#00a85914;border-color:#00a85959}.vim-preset-icon{font-size:22px;flex-shrink:0}.vim-preset-body{flex:1}.vim-preset-label{font-size:13px;font-weight:700;color:#fff}.vim-preset-desc{font-size:11px;color:#ffffff59;margin-top:2px}.vim-preset-check{color:var(--primary, #00A859);font-weight:900;margin-left:auto;flex-shrink:0}.vim-perm-count{margin-left:8px;font-size:10px;font-weight:600;color:var(--primary, #00A859);background:#00a8591a;padding:2px 8px;border-radius:10px;text-transform:none;letter-spacing:0}.vim-perm-group{display:flex;flex-direction:column;gap:4px;margin-bottom:8px}.vim-perm-group-label{font-size:10px;font-weight:800;color:#ffffff40;text-transform:uppercase;letter-spacing:.5px;padding:6px 0 2px;border-bottom:1px solid rgba(255,255,255,.04);margin-bottom:4px}.vim-perm-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;background:#ffffff08;border:1.5px solid rgba(255,255,255,.05);border-radius:12px;cursor:pointer;transition:background .12s,border-color .12s;-webkit-tap-highlight-color:transparent}.vim-perm-row.on{background:#00a8590f;border-color:#00a85933}.vim-perm-text{flex:1}.vim-perm-label{font-size:13px;font-weight:600;color:#ddd}.vim-perm-row.on .vim-perm-label{color:#fff}.vim-perm-desc{font-size:11px;color:#ffffff4d;margin-top:2px;line-height:1.3}.vim-toggle{display:inline-flex;position:relative;cursor:pointer;flex-shrink:0}.vim-toggle input{opacity:0;width:0;height:0;position:absolute}.vim-toggle-track{display:block;width:40px;height:22px;background:#ffffff1a;border-radius:11px;position:relative;transition:background .2s}.vim-toggle input:checked+.vim-toggle-track{background:var(--primary, #00A859)}.vim-toggle-thumb{position:absolute;width:16px;height:16px;background:#fff;border-radius:50%;top:3px;left:3px;transition:transform .2s;box-shadow:0 1px 3px #0000004d}.vim-toggle input:checked+.vim-toggle-track .vim-toggle-thumb{transform:translate(18px)}.vim-review{background:#ffffff08;border:1px solid rgba(255,255,255,.07);border-radius:16px;overflow:hidden}.vim-review-row{display:flex;gap:12px;padding:12px 14px;border-bottom:1px solid rgba(255,255,255,.04)}.vim-review-row:last-child{border-bottom:none}.vim-review-label{font-size:11px;font-weight:700;color:#ffffff4d;text-transform:uppercase;letter-spacing:.4px;width:80px;flex-shrink:0;padding-top:2px}.vim-review-vals{display:flex;flex-direction:column;gap:3px}.vim-review-val{font-size:13px;color:#ffffff80}.vim-review-val.primary{font-size:14px;font-weight:700;color:#fff}.vim-review-perms{display:flex;flex-direction:column;gap:5px}.vim-review-perm{display:flex;align-items:center;gap:7px;font-size:12px}.vim-review-perm.on{color:#ffffffb3}.vim-review-perm.off{color:#fff3}.vim-footer{padding:12px 16px 20px;flex-shrink:0;border-top:1px solid rgba(255,255,255,.05)}.vim-next-btn,.vim-send-btn{width:100%;padding:15px;background:var(--primary, #00A859);color:#000;border:none;border-radius:16px;font-size:15px;font-weight:900;cursor:pointer;transition:opacity .15s;-webkit-tap-highlight-color:transparent}.vim-next-btn:disabled,.vim-send-btn:disabled{opacity:.35;cursor:not-allowed}.vim-next-btn:not(:disabled):active,.vim-send-btn:not(:disabled):active{opacity:.8}.vim-sending{display:inline-flex;align-items:center;gap:8px}.vim-spinner{width:14px;height:14px;border:2px solid rgba(0,0,0,.3);border-top-color:#000;border-radius:50%;display:inline-block;animation:vimspin .7s linear infinite}@keyframes vimspin{to{transform:rotate(360deg)}}.vim-send-note{font-size:11px;color:#ffffff40;text-align:center;margin:8px 0 0;line-height:1.4}.vim-success{display:flex;flex-direction:column;align-items:center;padding:48px 24px;text-align:center;gap:12px}.vim-success-icon{font-size:56px;animation:vimPop .5s cubic-bezier(.22,.8,.44,1.5)}@keyframes vimPop{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}.vim-success h3{margin:0;font-size:22px;font-weight:900;color:#fff}.vim-success p{margin:0;font-size:14px;color:#ffffff80;line-height:1.5}.vim-success-sub{font-size:12px!important;color:#ffffff4d!important}.settings-page{display:flex;flex-direction:column;height:100%}.settings-header{padding:var(--spacing-md);border-bottom:1px solid rgba(255,255,255,.1)}.settings-header h1{margin:0;font-size:var(--font-size-xl)}.settings-content{flex:1;overflow-y:auto;padding:var(--spacing-md)}.settings-section{margin-bottom:var(--spacing-xl)}.settings-section h2{margin:0 0 var(--spacing-sm) 0;font-size:var(--font-size-lg);color:var(--primary)}.section-description{color:var(--text-secondary);font-size:var(--font-size-sm);margin-bottom:var(--spacing-md)}.form-group{margin-bottom:var(--spacing-md)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-md)}.form-group label{display:block;margin-bottom:var(--spacing-xs);font-weight:600;font-size:var(--font-size-sm);color:var(--text-primary)}.avatar-upload-section{display:flex;gap:var(--spacing-lg);align-items:center;padding:var(--spacing-lg);background-color:var(--surface);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg)}.avatar-preview{flex-shrink:0;position:relative;cursor:pointer}.avatar-image{width:120px;height:120px;border-radius:var(--radius-full);object-fit:cover;border:3px solid var(--primary)}.avatar-placeholder-large{width:120px;height:120px;border-radius:var(--radius-full);background:linear-gradient(135deg,var(--primary),var(--primary-dark));display:flex;align-items:center;justify-content:center;font-size:3rem;font-weight:700;color:var(--text-primary);border:3px solid var(--primary)}.avatar-edit-overlay{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:#0006;display:flex;align-items:center;justify-content:center;font-size:24px;opacity:0;transition:opacity .2s}.avatar-preview:hover .avatar-edit-overlay{opacity:1}.avatar-upload-controls{flex:1;display:flex;flex-direction:column;gap:var(--spacing-sm)}.avatar-upload-controls .btn{width:fit-content}.avatar-upload-controls .btn.disabled{opacity:.6;cursor:not-allowed}.avatar-hint{font-size:var(--font-size-xs);color:var(--text-secondary);margin:0}.moderation-status{padding:var(--spacing-sm);border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-weight:600}.moderation-status.info{background-color:#2196f31a;color:#2196f3;border-left:3px solid #2196F3}.moderation-status.success{background-color:#4caf501a;color:var(--success);border-left:3px solid var(--success)}.moderation-status.error{background-color:#f443361a;color:var(--error);border-left:3px solid var(--error)}.pronoun-options{display:flex;flex-wrap:wrap;gap:var(--spacing-xs);margin-bottom:var(--spacing-sm)}.pronoun-chip{padding:.5rem 1rem;background-color:var(--surface);border:2px solid rgba(255,255,255,.2);border-radius:var(--radius-full);color:var(--text-primary);font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.pronoun-chip:hover{background-color:var(--background-light)}.pronoun-chip.selected{background-color:var(--primary);border-color:var(--primary);color:#000}.privacy-setting{padding:var(--spacing-md);background-color:var(--surface);border-radius:var(--radius-md);margin-bottom:var(--spacing-md)}.privacy-field-info{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-sm)}.privacy-field-name{font-size:var(--font-size-md);color:var(--text-primary)}.privacy-field-value{font-size:var(--font-size-sm);color:var(--text-secondary);font-style:italic}.privacy-options{display:flex;gap:var(--spacing-xs)}.privacy-option{flex:1;display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:var(--spacing-sm);background-color:var(--background);border:2px solid rgba(255,255,255,.1);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast)}.privacy-option:hover{background-color:var(--background-light);border-color:#fff3}.privacy-option.selected{background-color:#ff98001a;border-color:var(--primary)}.privacy-icon{font-size:1.25rem}.privacy-label{font-size:var(--font-size-xs);font-weight:600;text-align:center}.privacy-info-box{padding:var(--spacing-md);background-color:#ff98001a;border-radius:var(--radius-md);border-left:3px solid var(--primary);margin-bottom:var(--spacing-md);font-size:var(--font-size-sm)}.privacy-info-box strong{display:block;margin-bottom:var(--spacing-sm);color:var(--primary)}.privacy-info-box ul{margin:0;padding-left:var(--spacing-md)}.privacy-info-box li{margin-bottom:.25rem;color:var(--text-secondary)}.btn-save{width:100%;padding:var(--spacing-md);font-size:var(--font-size-md);font-weight:700}.security-option{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md);background-color:#ffffff0d;border-radius:var(--radius-md);margin-bottom:var(--spacing-md)}.security-option-info h3{margin:0 0 .25rem;font-size:var(--font-size-md)}.security-option-info p{margin:0;color:var(--text-secondary);font-size:var(--font-size-sm)}.danger-zone{border:2px solid rgba(244,67,54,.3);border-radius:var(--radius-md);padding:var(--spacing-lg);margin-top:var(--spacing-xl)}.danger-zone h2{color:#f44336}.location-toggle-section{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md);background-color:var(--surface);border-radius:var(--radius-md);border:1px solid rgba(255,152,0,.2)}.location-toggle-info strong{display:block;color:var(--primary);margin-bottom:.25rem}.location-toggle-info p{margin:0;font-size:var(--font-size-xs);color:var(--text-secondary)}.switch{position:relative;display:inline-block;width:50px;height:24px}.switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#555;transition:.4s}.slider:before{position:absolute;content:"";height:16px;width:16px;left:4px;bottom:4px;background-color:#fff;transition:.4s}input:checked+.slider{background-color:var(--primary)}input:checked+.slider:before{transform:translate(26px)}.slider.round{border-radius:34px}.slider.round:before{border-radius:50%}.privacy-field-header{display:flex;align-items:center;gap:var(--spacing-sm)}.privacy-field-icon{font-size:1.25rem}.roles-section{padding:12px 16px 100px;display:flex;flex-direction:column;gap:16px;position:relative}.roles-demo-toast{position:fixed;top:80px;left:50%;transform:translate(-50%);background:#1e1e1e;border:1px solid rgba(0,168,89,.3);color:#fff;padding:10px 20px;border-radius:20px;font-size:13px;font-weight:700;z-index:9999;animation:toastIn .25s ease,toastOut .25s ease 2.7s forwards;pointer-events:none;white-space:nowrap;box-shadow:0 4px 20px #00000080}@keyframes toastIn{0%{opacity:0;transform:translate(-50%) translateY(-8px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes toastOut{0%{opacity:1}to{opacity:0}}.roles-active-banner{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:#ffffff08;border:1px solid rgba(255,255,255,.07);border-radius:16px}.roles-active-left{display:flex;align-items:center;gap:12px}.roles-active-icon{font-size:28px}.roles-active-label{font-size:11px;color:#ffffff59;font-weight:600;text-transform:uppercase;letter-spacing:.4px}.roles-active-name{font-size:16px;font-weight:900;margin-top:2px}.roles-active-hint{font-size:11px;color:#ffffff40}.roles-vol-card{background:#45b7d10f;border:1.5px solid rgba(69,183,209,.2);border-radius:16px;padding:14px;display:flex;flex-direction:column;gap:10px}.roles-vol-header{display:flex;align-items:flex-start;gap:10px}.roles-vol-icon{font-size:24px;flex-shrink:0}.roles-vol-title{font-size:11px;color:#45b7d199;font-weight:700;text-transform:uppercase;letter-spacing:.4px}.roles-vol-for{font-size:14px;font-weight:700;color:#fff;margin-top:2px}.roles-vol-perms-label{font-size:11px;color:#ffffff4d;font-weight:700;text-transform:uppercase;letter-spacing:.4px}.roles-vol-perms{display:flex;flex-direction:column;gap:5px}.roles-vol-perm{display:flex;align-items:flex-start;gap:8px;padding:8px 10px;border-radius:10px}.roles-vol-perm.allowed{background:#00a85912}.roles-vol-perm.denied{background:#ffffff05;opacity:.5}.roles-vol-perm-name{font-size:12px;font-weight:700;color:#ddd}.roles-vol-perm-desc{font-size:10px;color:#ffffff4d;margin-top:1px}.roles-list{display:flex;flex-direction:column;gap:10px}.role-card{border-radius:18px;padding:14px;border:1.5px solid rgba(255,255,255,.07);background:#ffffff08;transition:border-color .2s,background .2s;overflow:hidden}.role-card.active{background:color-mix(in srgb,var(--role-color) 8%,#111);border-color:color-mix(in srgb,var(--role-color) 35%,transparent)}.role-card.locked{opacity:.8}.role-card-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.role-card-left{display:flex;align-items:flex-start;gap:12px;flex:1;min-width:0}.role-card-avatar{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0}.role-card-label{font-size:14px;font-weight:800;color:#fff}.role-card-desc{font-size:12px;color:#ffffff59;margin-top:3px;line-height:1.3}.role-card-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.role-badge{padding:3px 9px;border-radius:20px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.3px}.role-badge.active{background:color-mix(in srgb,var(--role-color) 20%,transparent);color:var(--role-color);border:1px solid color-mix(in srgb,var(--role-color) 35%,transparent)}.role-badge.granted{background:#00a8591a;color:var(--primary, #00A859);border:1px solid rgba(0,168,89,.2)}.role-badge.locked{background:#ffffff0d;color:#ffffff4d;border:1px solid rgba(255,255,255,.07);font-size:14px}.role-toggle{display:inline-flex;position:relative;cursor:pointer;flex-shrink:0}.role-toggle input{opacity:0;width:0;height:0;position:absolute}.role-toggle-track{display:block;width:44px;height:24px;background:#ffffff1a;border-radius:12px;position:relative;transition:background .2s}.role-toggle input:checked+.role-toggle-track{background:var(--t-color, var(--primary, #00A859))}.role-toggle-thumb{position:absolute;width:18px;height:18px;background:#fff;border-radius:50%;top:3px;left:3px;transition:transform .2s;box-shadow:0 1px 4px #00000059}.role-toggle input:checked+.role-toggle-track .role-toggle-thumb{transform:translate(20px)}.role-card-cta{margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.05)}.role-apply-btn{padding:10px 18px;background:var(--primary, #00A859);color:#000;border:none;border-radius:12px;font-size:13px;font-weight:900;cursor:pointer;transition:opacity .15s;width:100%;-webkit-tap-highlight-color:transparent}.role-apply-btn:active{opacity:.8}.role-apply-btn.small{width:auto;padding:7px 14px;font-size:12px}.role-status-pill{display:inline-block;padding:8px 14px;border-radius:12px;font-size:12px;font-weight:600;line-height:1.4}.role-status-pill.pending{background:#ffa5001a;color:orange;border:1px solid rgba(255,165,0,.2)}.role-status-pill.rejected{background:#ff50501a;color:#ff5050;border:1px solid rgba(255,80,80,.2)}.role-status-pill.info{background:#ffffff0a;color:#fff6;border:1px solid rgba(255,255,255,.07)}.role-status-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.role-card-detail{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;padding-top:10px;border-top:1px solid rgba(255,255,255,.05)}.role-detail-chip{padding:4px 10px;background:#c77dff1a;border:1px solid rgba(199,125,255,.2);border-radius:20px;font-size:11px;font-weight:700;color:#c77dff}.roles-invite-section{background:#ffffff05;border:1.5px solid rgba(255,255,255,.07);border-radius:18px;padding:16px;display:flex;flex-direction:column;gap:12px}.roles-invite-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.roles-invite-title{font-size:15px;font-weight:900;color:#fff;margin:0 0 4px}.roles-invite-sub{font-size:12px;color:#ffffff4d;line-height:1.4}.roles-invite-btn{padding:9px 18px;background:var(--primary, #00A859);color:#000;border:none;border-radius:20px;font-size:13px;font-weight:900;cursor:pointer;flex-shrink:0;transition:opacity .15s}.roles-invite-btn:active{opacity:.8}.roles-invites-list{display:flex;flex-direction:column;gap:8px}.roles-invite-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;background:#ffffff08;border:1px solid rgba(255,255,255,.05);border-radius:12px}.roles-invite-row-left{flex:1;min-width:0}.roles-invite-name{font-size:13px;font-weight:700;color:#fff}.roles-invite-event{font-size:11px;color:#ffffff59;margin-top:2px}.roles-invite-perms{font-size:10px;color:#ffffff40;margin-top:1px}.roles-invite-status{padding:3px 9px;border-radius:20px;font-size:11px;font-weight:700;flex-shrink:0}.roles-invite-status.pending{background:#ffa5001a;color:orange}.roles-invite-status.accepted{background:#00a8591a;color:var(--primary, #00A859)}.roles-invite-status.declined{background:#ff50501a;color:#ff5050}.roles-admin-section{background:#ffffff04;border:1.5px dashed rgba(255,255,255,.1);border-radius:18px;padding:14px;display:flex;flex-direction:column;gap:10px}.roles-admin-header{display:flex;flex-direction:column;gap:3px}.roles-admin-badge{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:800;color:#fff6;text-transform:uppercase;letter-spacing:.5px}.roles-admin-hint{font-size:10px;color:#fff3}.roles-admin-empty{font-size:12px;color:#fff3;text-align:center;padding:8px 0}.roles-admin-row{display:flex;align-items:center;gap:12px;padding:11px 12px;background:#ffffff08;border:1px solid rgba(255,255,255,.06);border-radius:12px}.roles-admin-row-info{flex:1}.roles-admin-row-label{font-size:13px;font-weight:700;color:#fff}.roles-admin-row-meta{font-size:11px;color:#ffffff59;margin-top:2px}.roles-admin-row-type{font-size:10px;color:#fff3;margin-top:2px;font-weight:600}.roles-admin-actions{display:flex;gap:6px;flex-shrink:0}.roles-admin-approve,.roles-admin-reject{padding:7px 13px;border-radius:20px;border:none;font-size:12px;font-weight:800;cursor:pointer;transition:opacity .15s}.roles-admin-approve{background:#00a85933;color:var(--primary, #00A859);border:1px solid rgba(0,168,89,.3)}.roles-admin-reject{background:#ff50501a;color:#ff5050;border:1px solid rgba(255,80,80,.2)}.roles-admin-approve:active,.roles-admin-reject:active{opacity:.7}.roles-demo-section{display:flex;flex-direction:column;gap:8px;padding-top:6px;border-top:1px solid rgba(255,255,255,.04)}.roles-demo-label{font-size:10px;color:#fff3;font-weight:700;text-transform:uppercase;letter-spacing:.4px}.roles-demo-btns{display:flex;flex-wrap:wrap;gap:7px}.roles-demo-btn{padding:7px 13px;background:#ffffff0d;border:1px solid rgba(255,255,255,.08);border-radius:20px;font-size:11px;font-weight:700;cursor:pointer;color:#ffffff80;transition:opacity .15s;-webkit-tap-highlight-color:transparent}.roles-demo-btn:active{opacity:.7}.roles-demo-btn.organizer{background:#ff6b351a;color:#ff6b35;border-color:#ff6b3533}.roles-demo-btn.vendor{background:#c77dff1a;color:#c77dff;border-color:#c77dff33}.roles-demo-btn.volunteer{background:#45b7d11a;color:#45b7d1;border-color:#45b7d133}.roles-demo-btn.reset{background:#ff505014;color:#ff5050;border-color:#ff505026}.notifications-page{display:flex;flex-direction:column;height:100%}.notifications-page .settings-content{flex:1;overflow-y:auto;padding:var(--spacing-md)}.permission-status{display:flex;align-items:flex-start;gap:var(--spacing-md);padding:var(--spacing-lg);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg)}.permission-status .status-icon{font-size:2.5rem;flex-shrink:0}.permission-status strong{display:block;font-size:var(--font-size-lg);margin-bottom:var(--spacing-xs)}.permission-status p{margin:0 0 var(--spacing-sm) 0;color:var(--text-secondary)}.permission-status.default{background-color:#2196f31a;border-left:4px solid #2196F3}.permission-status.granted{background-color:#4caf501a;border-left:4px solid var(--success)}.permission-status.denied{background-color:#f443361a;border-left:4px solid var(--error)}.permission-status.unsupported{background-color:#ffc1071a;border-left:4px solid var(--warning)}.preference-toggle{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md);background-color:var(--surface);border-radius:var(--radius-md);margin-bottom:var(--spacing-sm)}.preference-info{flex:1}.preference-info strong{display:block;font-size:var(--font-size-md);margin-bottom:.25rem;color:var(--text-primary)}.preference-info p{margin:0;font-size:var(--font-size-sm);color:var(--text-secondary)}.toggle-switch{position:relative;display:inline-block;width:52px;height:28px;flex-shrink:0}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#fff3;transition:var(--transition-fast);border-radius:28px}.toggle-slider:before{position:absolute;content:"";height:20px;width:20px;left:4px;bottom:4px;background-color:#fff;transition:var(--transition-fast);border-radius:50%}.toggle-switch input:checked+.toggle-slider{background-color:var(--primary)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(24px)}.toggle-switch input:disabled+.toggle-slider{opacity:.5;cursor:not-allowed}.preference-detail{padding:var(--spacing-md);background-color:var(--background-light);border-radius:var(--radius-sm);margin:var(--spacing-sm) 0 var(--spacing-md) 0}.preference-detail label{display:block;margin-bottom:var(--spacing-xs);font-weight:600;font-size:var(--font-size-sm);color:var(--text-primary)}.preference-detail .input,.preference-detail select{width:100%}.quiet-hours-times{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-md);padding:var(--spacing-md);background-color:var(--background-light);border-radius:var(--radius-sm);margin-top:var(--spacing-sm)}.save-indicator{position:fixed;bottom:80px;left:50%;transform:translate(-50%);padding:var(--spacing-sm) var(--spacing-lg);background-color:var(--success);color:#000;border-radius:var(--radius-full);font-weight:600;font-size:var(--font-size-sm);box-shadow:0 4px 12px #0000004d;animation:slideUp .3s ease-out;z-index:1000}@keyframes slideUp{0%{opacity:0;transform:translate(-50%) translateY(20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.oc-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1100;display:flex;align-items:flex-end;animation:ocFade .2s ease}@keyframes ocFade{0%{opacity:0}to{opacity:1}}.oc-sheet{width:100%;max-height:96vh;background:#141414;border-radius:24px 24px 0 0;display:flex;flex-direction:column;overflow:hidden;animation:ocUp .28s ease}@keyframes ocUp{0%{transform:translateY(60px);opacity:0}to{transform:translateY(0);opacity:1}}.oc-handle{width:36px;height:4px;border-radius:2px;background:#ffffff2e;margin:10px auto 0;flex-shrink:0}.oc-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px 10px;flex-shrink:0}.oc-header-left{display:flex;align-items:center;gap:10px}.oc-back{background:none;border:none;color:var(--primary, #00A859);font-size:22px;font-weight:700;cursor:pointer;padding:2px 8px 2px 0}.oc-title{margin:0;font-size:17px;font-weight:800;color:#fff}.oc-role-badge{display:inline-block;font-size:11px;font-weight:700;color:var(--primary, #00A859);background:#00a8591a;border:1px solid rgba(0,168,89,.25);border-radius:20px;padding:2px 9px;margin-top:3px}.oc-close{background:#ffffff14;border:none;width:30px;height:30px;border-radius:50%;color:#ffffff80;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center}.oc-steps{display:flex;align-items:center;padding:0 18px 14px;gap:0;flex-shrink:0;overflow-x:auto;scrollbar-width:none}.oc-steps::-webkit-scrollbar{display:none}.oc-step{display:flex;align-items:center;gap:5px;flex-shrink:0;opacity:.35;transition:opacity .2s}.oc-step:after{content:"›";margin:0 5px;color:#fff3;font-size:14px}.oc-step:last-child:after{display:none}.oc-step.active{opacity:1}.oc-step.done{opacity:.65}.oc-step-dot{width:20px;height:20px;border-radius:50%;background:#ffffff14;border:1.5px solid rgba(255,255,255,.15);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:800;color:#ffffff80}.oc-step.active .oc-step-dot{background:var(--primary, #00A859);border-color:var(--primary, #00A859);color:#000}.oc-step.done .oc-step-dot{background:#00a85933;border-color:#00a85966;color:var(--primary, #00A859)}.oc-step-label{font-size:11px;font-weight:700;color:#fff9;white-space:nowrap}.oc-step.active .oc-step-label{color:#fff}.oc-body{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}.oc-step-content{padding:4px 18px 24px;display:flex;flex-direction:column;gap:14px}.oc-step-desc{font-size:13px;color:#fff6;margin:0;line-height:1.4}.oc-empty{font-size:14px;color:#ffffff4d;text-align:center;padding:24px}.oc-event-list{display:flex;flex-direction:column;gap:8px}.oc-event-card{display:flex;flex-direction:column;gap:7px;padding:14px;background:#ffffff0a;border:1.5px solid rgba(255,255,255,.08);border-radius:14px;text-align:left;cursor:pointer;transition:all .13s}.oc-event-card:active{transform:scale(.98)}.oc-event-card.selected{background:#00a8591a;border-color:var(--primary, #00A859)}.oc-event-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.oc-event-title{font-size:14px;font-weight:700;color:#fff;line-height:1.3}.oc-event-meta{display:flex;flex-direction:column;gap:2px;font-size:11px;color:#ffffff59}.oc-check{font-size:14px;color:var(--primary, #00A859);font-weight:900;flex-shrink:0}.oc-segment-list{display:flex;flex-direction:column;gap:8px}.oc-segment-card{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 14px;background:#ffffff0a;border:1.5px solid rgba(255,255,255,.08);border-radius:14px;cursor:pointer;text-align:left;transition:all .13s}.oc-segment-card.selected{background:#00a85914;border-color:var(--primary, #00A859)}.oc-segment-card.empty{opacity:.45}.oc-segment-left{display:flex;align-items:flex-start;gap:11px}.oc-segment-icon{font-size:20px;flex-shrink:0;margin-top:1px}.oc-segment-label{font-size:14px;font-weight:700;color:#fff;margin-bottom:2px}.oc-segment-desc{font-size:11px;color:#ffffff59}.oc-segment-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.oc-segment-count{font-size:18px;font-weight:800;color:var(--primary, #00A859)}.oc-segment-count.zero{color:#fff3;font-size:14px}.oc-audience-preview{background:#ffffff08;border:1px solid rgba(255,255,255,.07);border-radius:12px;padding:12px 14px}.oc-preview-label{display:block;font-size:11px;font-weight:700;color:#ffffff59;text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.oc-preview-names{display:flex;flex-wrap:wrap;gap:6px}.oc-preview-chip{padding:4px 10px;background:#ffffff12;border-radius:20px;font-size:12px;color:#ffffff8c}.oc-preview-chip.more{color:#ffffff4d}.oc-settings-group{display:flex;flex-direction:column;gap:8px}.oc-settings-label{font-size:12px;font-weight:800;color:#fff6;text-transform:uppercase;letter-spacing:.5px}.oc-toggle-row{display:flex;flex-direction:column;gap:8px}.oc-toggle-btn{display:flex;align-items:flex-start;gap:12px;padding:14px;background:#ffffff0a;border:1.5px solid rgba(255,255,255,.08);border-radius:14px;text-align:left;cursor:pointer;transition:all .13s}.oc-toggle-btn.active{background:#00a85914;border-color:var(--primary, #00A859)}.oc-toggle-icon{font-size:22px;flex-shrink:0}.oc-toggle-name{font-size:14px;font-weight:700;color:#fff;margin-bottom:3px}.oc-toggle-desc{font-size:12px;color:#ffffff59;line-height:1.4}.oc-compose-form{display:flex;flex-direction:column;gap:4px}.oc-field-label{font-size:12px;font-weight:800;color:#fff6;text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px;display:block}.oc-input{width:100%;box-sizing:border-box;background:#ffffff0f;border:1.5px solid rgba(255,255,255,.1);border-radius:12px;color:#fff;font-size:15px;padding:11px 14px;outline:none;transition:border-color .15s}.oc-input:focus{border-color:var(--primary, #00A859)}.oc-input::placeholder{color:#fff3}.oc-textarea{width:100%;box-sizing:border-box;background:#ffffff0f;border:1.5px solid rgba(255,255,255,.1);border-radius:12px;color:#fff;font-size:14px;padding:11px 14px;outline:none;resize:vertical;font-family:inherit;line-height:1.5;transition:border-color .15s}.oc-textarea:focus{border-color:var(--primary, #00A859)}.oc-textarea::placeholder{color:#fff3}.oc-char-hint{font-size:11px;color:#fff3;text-align:right}.oc-templates{display:flex;flex-direction:column;gap:6px;margin-top:4px}.oc-templates-label{font-size:11px;font-weight:700;color:#ffffff4d;text-transform:uppercase;letter-spacing:.4px}.oc-template-btn{padding:8px 14px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:10px;color:#ffffff80;font-size:12px;font-weight:600;text-align:left;cursor:pointer;transition:all .12s}.oc-template-btn:active{background:#00a8591a;border-color:#00a8594d;color:#fff}.oc-preview-card{background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:16px}.oc-preview-from{display:flex;align-items:center;gap:10px;margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.07)}.oc-preview-from-avatar{font-size:24px;width:40px;height:40px;background:#ffffff0f;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.oc-preview-from-name{font-size:13px;font-weight:700;color:#fff}.oc-preview-event-name{font-size:11px;color:#ffffff59;margin-top:2px}.oc-preview-subject{margin:0 0 8px;font-size:15px;font-weight:800;color:#fff}.oc-preview-body{margin:0;font-size:13px;color:#ffffff8c;line-height:1.5}.oc-summary{background:#ffffff08;border:1px solid rgba(255,255,255,.07);border-radius:14px;overflow:hidden}.oc-summary-row{display:flex;align-items:center;justify-content:space-between;padding:11px 14px;border-bottom:1px solid rgba(255,255,255,.05);font-size:13px}.oc-summary-row:last-child{border-bottom:none}.oc-summary-row span{color:#ffffff59}.oc-summary-row strong{color:#fff;text-align:right;max-width:60%}.oc-send-btn{width:100%;padding:15px;background:var(--primary, #00A859);color:#000;border:none;border-radius:14px;font-size:15px;font-weight:900;cursor:pointer;transition:opacity .15s;-webkit-tap-highlight-color:transparent}.oc-send-btn:disabled{opacity:.5;cursor:not-allowed}.oc-send-btn:not(:disabled):active{opacity:.8}.oc-sending{display:flex;align-items:center;justify-content:center;gap:10px}.oc-spinner{width:16px;height:16px;border:2px solid rgba(0,0,0,.2);border-top-color:#000;border-radius:50%;animation:ocSpin .6s linear infinite;flex-shrink:0}@keyframes ocSpin{to{transform:rotate(360deg)}}.oc-footer{padding:12px 18px 20px;border-top:1px solid rgba(255,255,255,.07);flex-shrink:0;background:#141414}.oc-next-btn{width:100%;padding:14px;background:var(--primary, #00A859);color:#000;border:none;border-radius:14px;font-size:15px;font-weight:900;cursor:pointer;transition:opacity .15s;-webkit-tap-highlight-color:transparent}.oc-next-btn:disabled{background:#ffffff14;color:#ffffff40;cursor:not-allowed}.oc-next-btn:not(:disabled):active{opacity:.8}.oc-success{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:60px 24px;text-align:center}.oc-success-icon{font-size:3.5rem}.oc-success h3{margin:0;font-size:22px;font-weight:900;color:#fff}.oc-success p{margin:0;font-size:14px;color:#ffffff73}.messages-page{padding-bottom:100px}.messages-header{display:flex;align-items:center;justify-content:space-between;padding:18px 16px 4px}.msg-role-pill{display:flex;align-items:center;gap:5px;padding:6px 12px;background:#ffffff12;border:1px solid rgba(255,255,255,.1);border-radius:20px;color:#ffffffb3;font-size:11px;font-weight:700;cursor:pointer;white-space:nowrap}.msg-role-pill:active{background:#ffffff1f}.msg-demo-menu{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200;background:#00000080;display:flex;align-items:flex-end}.msg-demo-inner{width:100%;background:#1a1a1a;border-radius:20px 20px 0 0;padding:16px;display:flex;flex-direction:column;gap:4px}.msg-demo-label{font-size:11px;font-weight:700;color:#ffffff4d;text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}.msg-demo-item{display:flex;align-items:center;gap:10px;padding:12px 14px;background:transparent;border:1px solid rgba(255,255,255,.07);border-radius:12px;color:#ffffffb3;font-size:14px;font-weight:600;cursor:pointer;text-align:left;transition:background .12s}.msg-demo-item.active{background:#00a8591a;border-color:#00a8594d;color:#fff}.msg-demo-check{margin-left:auto;color:var(--primary, #00A859);font-weight:900}.msg-demo-hint{font-size:11px;color:#ffffff40;margin:8px 0 0;line-height:1.4}.msg-staff-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:10px 16px 4px;padding:13px 14px;background:#00a85912;border:1px solid rgba(0,168,89,.2);border-radius:14px}.msg-staff-banner-left{display:flex;align-items:center;gap:10px}.msg-staff-icon{font-size:22px}.msg-staff-title{font-size:13px;font-weight:700;color:#fff}.msg-staff-sub{font-size:11px;color:#ffffff59;margin-top:2px;line-height:1.3}.msg-staff-compose-btn{padding:9px 18px;background:var(--primary, #00A859);color:#000;border:none;border-radius:20px;font-size:13px;font-weight:900;cursor:pointer;flex-shrink:0;transition:opacity .15s}.msg-staff-compose-btn:active{opacity:.8}.msg-list{padding:8px 0}.msg-row{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;border-bottom:1px solid rgba(255,255,255,.05);cursor:pointer;position:relative;transition:background .1s;-webkit-tap-highlight-color:transparent}.msg-row:active{background:#ffffff0a}.msg-row.unread{background:#00a8590a}.msg-row-avatar{width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}.msg-row-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.msg-row-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.msg-row-from{font-size:13px;font-weight:800;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.msg-row-time{font-size:10px;color:#ffffff4d;white-space:nowrap;flex-shrink:0}.msg-row-subject{font-size:13px;font-weight:700;color:#eee;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.msg-row.unread .msg-row-subject{color:#fff}.msg-row-preview{font-size:12px;color:#ffffff4d;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.4;margin-top:1px}.msg-row-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px}.msg-chip{display:inline-flex;align-items:center;padding:2px 8px;border-radius:20px;font-size:10px;font-weight:700;background:#ffffff0f;color:var(--chip-color, rgba(255, 255, 255, .4));border:1px solid rgba(255,255,255,.06);white-space:nowrap}.msg-chip.neutral{color:#ffffff59}.msg-chip.replies-on{background:#00a8591a;color:var(--primary, #00A859);border-color:#00a85933}.msg-chip.replies-off{background:#ff646414;color:#ff646499}.msg-unread-dot{width:8px;height:8px;border-radius:50%;background:var(--primary, #00A859);flex-shrink:0;margin-top:6px}.msg-sent-row{padding:14px 16px;border-bottom:1px solid rgba(255,255,255,.05);display:flex;flex-direction:column;gap:5px}.msg-sent-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.msg-sent-subject{font-size:14px;font-weight:700;color:#fff}.msg-sent-time{font-size:10px;color:#ffffff4d;flex-shrink:0}.msg-sent-event{font-size:11px;color:#ffffff59}.msg-sent-chips{display:flex;flex-wrap:wrap;gap:4px}.msg-sent-reply-count{font-size:12px;color:#ffffff59;margin-top:2px}.msg-friends-section{padding:16px}.msg-friends-card{display:flex;align-items:center;gap:12px;padding:16px 14px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:16px;cursor:pointer;transition:background .12s}.msg-friends-card:active{background:#ffffff14}.msg-friends-card-icon{font-size:28px}.msg-friends-card-body{flex:1}.msg-friends-card-title{font-size:15px;font-weight:700;color:#fff}.msg-friends-card-sub{font-size:12px;color:#ffffff59;margin-top:2px}.msg-friends-card-arrow{font-size:22px;color:#fff3;font-weight:300}.msg-friends-hint{font-size:12px;color:#ffffff40;text-align:center;margin-top:12px;line-height:1.5}.msg-fab{position:fixed;bottom:80px;right:18px;display:flex;align-items:center;gap:7px;padding:13px 20px;background:var(--primary, #00A859);color:#000;border:none;border-radius:30px;font-size:14px;font-weight:900;box-shadow:0 4px 24px #00a85966;cursor:pointer;z-index:50;transition:transform .15s,opacity .15s;-webkit-tap-highlight-color:transparent}.msg-fab:active{transform:scale(.96);opacity:.9}.thread-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1100;display:flex;align-items:flex-end;animation:threadFade .2s ease}@keyframes threadFade{0%{opacity:0}to{opacity:1}}.thread-sheet{width:100%;max-height:96vh;background:#141414;border-radius:24px 24px 0 0;display:flex;flex-direction:column;overflow:hidden;animation:threadUp .28s ease}@keyframes threadUp{0%{transform:translateY(60px);opacity:0}to{transform:translateY(0);opacity:1}}.thread-header{display:flex;align-items:center;gap:10px;padding:14px 16px 10px;border-bottom:1px solid rgba(255,255,255,.07);flex-shrink:0}.thread-back{background:none;border:none;color:var(--primary, #00A859);font-size:22px;font-weight:700;cursor:pointer;padding:2px 8px 2px 0;flex-shrink:0}.thread-header-info{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.thread-avatar{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}.thread-from{font-size:15px;font-weight:800;color:#fff}.thread-role{font-size:11px;font-weight:700;margin-top:1px}.thread-badges{display:flex;align-items:center;gap:5px;flex-shrink:0}.thr-badge{padding:3px 9px;border-radius:20px;font-size:10px;font-weight:700;background:#ffffff12;color:#fff6;border:1px solid rgba(255,255,255,.08)}.thr-badge.group{background:#c77dff1a;color:#c77dff;border-color:#c77dff33}.thr-badge.direct{background:#00a8591a;color:var(--primary, #00A859);border-color:#00a85933}.thr-badge.no-reply{background:#ff646414;color:#ff646480}.thread-event-banner{display:flex;align-items:center;gap:10px;padding:10px 16px;background:#ffffff08;border-bottom:1px solid rgba(255,255,255,.06);font-size:12px;flex-shrink:0}.thread-event-title{font-weight:700;color:#fff}.thread-event-sub{color:#ffffff4d;margin-top:1px}.thread-body{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:16px;display:flex;flex-direction:column;gap:16px}.thread-original{background:#ffffff08;border:1px solid rgba(255,255,255,.07);border-radius:16px;padding:16px}.thread-date{display:block;font-size:10px;font-weight:700;color:#ffffff4d;text-transform:uppercase;letter-spacing:.4px;margin-bottom:8px}.thread-subject{margin:0 0 10px;font-size:16px;font-weight:900;color:#fff;line-height:1.3}.thread-text{margin:0;font-size:14px;line-height:1.6;color:#ffffffa6;white-space:pre-line}.thread-reactions{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.thread-reaction{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:20px;background:#ffffff12;border:1px solid rgba(255,255,255,.08);font-size:13px;cursor:pointer;transition:background .12s}.thread-reaction.mine{background:#00a85926;border-color:#00a8594d}.thread-react-btn{background:none;border:none;font-size:11px;cursor:pointer;color:#ffffff40;padding:6px 0 0;display:block;transition:color .12s}.thread-react-btn:hover{color:#fff9}.thread-emoji-picker{position:absolute;bottom:calc(100% + 4px);left:0;display:flex;gap:4px;background:#252525;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:6px 8px;z-index:10;box-shadow:0 4px 20px #00000080}.thread-emoji-picker button{background:none;border:none;font-size:18px;cursor:pointer;padding:2px;transition:transform .1s}.thread-emoji-picker button:hover{transform:scale(1.25)}.thread-replies{display:flex;flex-direction:column;gap:8px}.thread-replies-label{font-size:11px;font-weight:700;color:#ffffff40;text-transform:uppercase;letter-spacing:.5px}.thread-reply{display:flex}.thread-reply.sent{justify-content:flex-end}.thread-reply.received{justify-content:flex-start}.thread-reply-bubble{max-width:72%;padding:9px 12px 7px;border-radius:16px}.thread-reply.sent .thread-reply-bubble{background:var(--primary, #00A859);border-bottom-right-radius:4px}.thread-reply.received .thread-reply-bubble{background:#ffffff17;border-bottom-left-radius:4px}.thread-reply-name{display:block;font-size:11px;font-weight:700;color:#ffffff80;margin-bottom:3px}.thread-reply-bubble p{margin:0;font-size:13px;line-height:1.4;color:#fff;word-break:break-word}.thread-reply.sent .thread-reply-bubble p{color:#000}.thread-reply-time{display:block;font-size:10px;color:#fff6;margin-top:3px;text-align:right}.thread-reply.sent .thread-reply-time{color:#0006}.thread-no-reply-notice{text-align:center;font-size:12px;color:#fff3;padding:12px;background:#ffffff05;border-radius:10px;border:1px dashed rgba(255,255,255,.06)}.thread-input-area{display:flex;align-items:flex-end;gap:8px;padding:10px 12px 16px;border-top:1px solid rgba(255,255,255,.07);flex-shrink:0;background:#141414}.thread-input{flex:1;background:#ffffff12;border:1.5px solid rgba(255,255,255,.1);border-radius:12px;color:#fff;font-size:14px;padding:10px 14px;resize:none;outline:none;font-family:inherit;line-height:1.4;min-height:40px;max-height:100px;overflow-y:auto;transition:border-color .15s}.thread-input:focus{border-color:var(--primary, #00A859)}.thread-input::placeholder{color:#fff3}.thread-send-btn{padding:10px 20px;background:var(--primary, #00A859);color:#000;border:none;border-radius:20px;font-size:13px;font-weight:800;cursor:pointer;flex-shrink:0;transition:opacity .15s;-webkit-tap-highlight-color:transparent}.thread-send-btn:disabled{opacity:.35;cursor:not-allowed}.thread-send-btn:not(:disabled):active{opacity:.8}.search-page{display:flex;flex-direction:column;min-height:100%;padding-bottom:90px}.search-bar{display:flex;align-items:center;gap:10px;margin:0 16px 12px;padding:0 14px;background:#ffffff12;border:1.5px solid rgba(255,255,255,.12);border-radius:14px;height:46px;transition:border-color .15s}.search-bar:focus-within{border-color:var(--primary, #00A859);background:#ffffff17}.search-bar-icon{font-size:15px;opacity:.5;flex-shrink:0}.search-bar-input{flex:1;background:none;border:none;outline:none;color:#fff;font-size:15px}.search-bar-input::placeholder{color:#ffffff4d}.search-bar-clear{background:none;border:none;color:#ffffff4d;font-size:14px;cursor:pointer;padding:4px;flex-shrink:0;border-radius:50%;transition:color .12s}.search-bar-clear:hover{color:#ffffffb3}.search-suggestions{margin:0 16px 8px;background:#1a1a1a;border:1px solid rgba(255,255,255,.08);border-radius:12px;overflow:hidden}.search-suggestion{width:100%;display:flex;align-items:center;gap:10px;padding:11px 14px;background:none;border:none;border-bottom:1px solid rgba(255,255,255,.05);color:#ffffffb3;font-size:14px;cursor:pointer;text-align:left;transition:background .12s}.search-suggestion:last-child{border-bottom:none}.search-suggestion:hover{background:#ffffff0a}.suggestion-icon{font-size:13px;opacity:.5;flex-shrink:0}.search-filters{display:flex;gap:7px;padding:0 16px 12px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.search-filters::-webkit-scrollbar{display:none}.search-filter-pill{display:flex;align-items:center;gap:5px;padding:6px 13px;background:#ffffff0f;border:1.5px solid rgba(255,255,255,.1);border-radius:20px;color:#ffffff8c;font-size:13px;font-weight:600;white-space:nowrap;cursor:pointer;transition:all .13s;flex-shrink:0}.search-filter-pill.active{background:#00a85926;border-color:var(--primary, #00A859);color:#fff}.filter-pill-count{background:#ffffff1f;border-radius:20px;font-size:10px;font-weight:800;padding:1px 6px}.search-filter-pill.active .filter-pill-count{background:#00a8594d}.search-loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:32px;color:#fff6;font-size:14px}.search-spinner{width:20px;height:20px;border:2px solid rgba(255,255,255,.1);border-top-color:var(--primary, #00A859);border-radius:50%;animation:searchSpin .7s linear infinite}@keyframes searchSpin{to{transform:rotate(360deg)}}.search-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:48px 24px 24px;text-align:center}.search-empty-icon{font-size:3rem;margin-bottom:4px}.search-empty-title{font-size:16px;font-weight:700;color:#fff;margin:0}.search-empty-sub{font-size:13px;color:#fff6;margin:0}.search-results{padding:0 0 16px}.results-section{margin-bottom:4px}.results-section-head{padding:12px 16px 6px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.7px;color:#ffffff59}.result-row{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.05);cursor:pointer;transition:background .12s;-webkit-tap-highlight-color:transparent}.result-row:active{background:#ffffff0a}.result-row:last-child{border-bottom:none}.result-avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--primary, #00A859),#006b38);display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:800;color:#000;flex-shrink:0}.result-icon-box{width:40px;height:40px;border-radius:12px;background:#ffffff12;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}.result-body{flex:1;min-width:0}.result-title{font-size:14px;font-weight:700;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:2px}.result-meta{font-size:12px;color:#fff6;margin-bottom:4px}.result-desc{font-size:12px;color:#ffffff59;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.result-tags{display:flex;flex-wrap:wrap;gap:4px}.result-tag{display:inline-block;padding:2px 8px;background:#ffffff14;border-radius:20px;font-size:10px;font-weight:700;color:#ffffff80}.result-tag.paid{background:#ff6b6b26;color:#f99}.result-tag.age{background:#ffa5001f;color:orange}.result-tag.accessible{background:#2196f31f;color:#64b5f6}.result-caret{font-size:20px;color:#ffffff26;flex-shrink:0}.recent-searches{padding:0 16px}.recent-head{display:flex;align-items:center;justify-content:space-between;padding:4px 0 8px;font-size:13px;font-weight:700;color:#ffffff80}.recent-head button{background:none;border:none;color:var(--primary, #00A859);font-size:12px;font-weight:600;cursor:pointer;padding:0}.recent-row{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid rgba(255,255,255,.05);cursor:pointer}.recent-row:last-child{border-bottom:none}.recent-icon{font-size:15px;opacity:.4;flex-shrink:0}.recent-text{flex:1;font-size:14px;color:#ffffffb3}.search-start{padding:8px 16px 24px}.search-start-title{font-size:18px;font-weight:800;color:#fff;margin:0 0 4px;letter-spacing:-.3px}.search-start-sub{font-size:13px;color:#fff6;margin:0 0 20px}.search-category-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:24px}.search-cat-card{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 6px;background:#ffffff0d;border:1.5px solid rgba(255,255,255,.08);border-radius:14px;cursor:pointer;transition:all .13s;-webkit-tap-highlight-color:transparent}.search-cat-card:active{background:#00a8591a;border-color:var(--primary, #00A859);transform:scale(.96)}.search-cat-icon{font-size:24px}.search-cat-label{font-size:10px;font-weight:700;color:#fff9;text-align:center;line-height:1.2}.search-popular{margin-top:4px}.search-popular-label{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.7px;color:#ffffff4d;margin-bottom:10px}.search-chips{display:flex;flex-wrap:wrap;gap:7px}.search-chip{padding:6px 14px;background:#ffffff0f;border:1.5px solid rgba(255,255,255,.1);border-radius:20px;color:#ffffffa6;font-size:12px;font-weight:600;cursor:pointer;transition:all .12s;white-space:nowrap;-webkit-tap-highlight-color:transparent}.search-chip:active{background:#00a8591a;border-color:var(--primary, #00A859);color:#fff}.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(135deg,#1a1a1a,#2d2d2d);padding:var(--spacing-md)}.login-container{width:100%;max-width:400px;background-color:var(--surface);border-radius:var(--radius-lg);padding:var(--spacing-xl);box-shadow:0 8px 32px #0006}.login-header{text-align:center;margin-bottom:var(--spacing-xl)}.login-header h1{font-size:var(--font-size-xxl);margin:0 0 var(--spacing-sm) 0;background:linear-gradient(135deg,var(--primary),var(--primary-dark));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.login-header p{color:var(--text-secondary);font-size:var(--font-size-sm);margin:0}.login-form{display:flex;flex-direction:column;gap:var(--spacing-md)}.error-message{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background-color:#f443361a;border-left:3px solid var(--error);border-radius:var(--radius-sm);color:var(--error);font-size:var(--font-size-sm)}.error-icon{font-size:1.2rem}.password-input-wrapper{position:relative;display:flex;align-items:center}.password-input-wrapper .input{padding-right:3rem}.password-toggle-btn{position:absolute;right:.75rem;background:none;border:none;cursor:pointer;font-size:1.25rem;padding:.25rem;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);transition:color var(--transition-fast);z-index:1}.password-toggle-btn:hover{color:var(--text-primary)}.password-toggle-btn:focus{outline:2px solid var(--primary);outline-offset:2px;border-radius:var(--radius-sm)}.form-options{display:flex;justify-content:space-between;align-items:center;margin-top:calc(var(--spacing-sm) * -1)}.checkbox-label{display:flex;align-items:center;gap:var(--spacing-xs);font-size:var(--font-size-sm);color:var(--text-secondary);cursor:pointer}.checkbox-label input[type=checkbox]{cursor:pointer}.link{color:var(--primary);text-decoration:none;font-size:var(--font-size-sm);transition:opacity var(--transition-fast)}.link:hover{opacity:.8;text-decoration:underline}.btn-full{width:100%;margin-top:var(--spacing-sm)}.login-footer{text-align:center;margin-top:var(--spacing-lg);padding-top:var(--spacing-lg);border-top:1px solid rgba(255,255,255,.1)}.login-footer p{color:var(--text-secondary);font-size:var(--font-size-sm);margin:0}.demo-credentials{margin-top:var(--spacing-lg);padding:var(--spacing-md);background-color:#ff98001a;border-radius:var(--radius-sm);border-left:3px solid var(--primary)}.demo-title{font-weight:600;font-size:var(--font-size-sm);color:var(--primary);margin:0 0 var(--spacing-xs) 0}.demo-text{font-size:var(--font-size-xs);color:var(--text-secondary);margin:.25rem 0;font-family:monospace}.login-divider{display:flex;align-items:center;gap:12px;margin:16px 0;color:#ffffff59;font-size:13px}.login-divider:before,.login-divider:after{content:"";flex:1;height:1px;background:#ffffff1a}.magic-link-success{text-align:center;padding:24px 16px;background:#00a8591a;border:1px solid rgba(0,168,89,.3);border-radius:12px;margin-bottom:16px}.magic-link-icon{font-size:36px;display:block;margin-bottom:8px}.magic-link-title{font-size:17px;font-weight:700;color:#fff;margin:0 0 6px}.magic-link-sub{font-size:14px;color:#fff9;margin:0 0 16px}.magic-link-form{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}.magic-link-hint{font-size:13px;color:#ffffff8c;text-align:center;margin:0}.btn-secondary{background:#ffffff0f;border:1.5px solid rgba(255,255,255,.15);color:#fffc}.btn-ghost{background:transparent;border:none;color:#ffffff80;font-size:14px}.register-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(135deg,#1a1a1a,#2d2d2d);padding:var(--spacing-md)}.register-container{width:100%;max-width:450px;background-color:var(--surface);border-radius:var(--radius-lg);padding:var(--spacing-xl);box-shadow:0 8px 32px #0006}.register-header{text-align:center;margin-bottom:var(--spacing-xl)}.register-header h1{font-size:var(--font-size-xxl);margin:0 0 var(--spacing-sm) 0;background:linear-gradient(135deg,var(--primary),var(--primary-dark));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.register-header p{color:var(--text-secondary);font-size:var(--font-size-sm);margin:0}.register-form{display:flex;flex-direction:column;gap:var(--spacing-md)}.password-strength{margin-top:var(--spacing-xs)}.strength-bar{height:4px;background-color:#ffffff1a;border-radius:2px;overflow:hidden;margin-bottom:var(--spacing-xs)}.strength-fill{height:100%;transition:width .3s ease,background-color .3s ease}.strength-fill.strength-1{background-color:#f44336}.strength-fill.strength-2{background-color:#ff9800}.strength-fill.strength-3{background-color:#ffc107}.strength-fill.strength-4{background-color:#8bc34a}.strength-fill.strength-5{background-color:#4caf50}.strength-label{font-size:var(--font-size-xs);color:var(--text-secondary)}.password-requirements{margin-top:var(--spacing-sm);padding:var(--spacing-sm);background-color:#ffffff0d;border-radius:var(--radius-sm)}.requirements-title{font-size:var(--font-size-xs);color:var(--text-secondary);margin:0 0 var(--spacing-xs) 0;font-weight:600}.password-requirements ul{list-style:none;padding:0;margin:0}.password-requirements li{font-size:var(--font-size-xs);color:var(--text-secondary);position:relative;padding:.25rem 0 .25rem 1.5rem}.password-requirements li:before{content:"○";position:absolute;left:0;color:var(--text-secondary)}.password-requirements li.valid{color:var(--success)}.password-requirements li.valid:before{content:"✓";color:var(--success)}.register-footer{text-align:center;margin-top:var(--spacing-lg);padding-top:var(--spacing-lg);border-top:1px solid rgba(255,255,255,.1)}.register-footer p{color:var(--text-secondary);font-size:var(--font-size-sm);margin:0}.mfa-verify-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(135deg,#1a1a1a,#2d2d2d);padding:var(--spacing-md)}.mfa-verify-container{width:100%;max-width:450px;background-color:var(--surface);border-radius:var(--radius-lg);padding:var(--spacing-xl);box-shadow:0 8px 32px #0006}.mfa-verify-header{text-align:center;margin-bottom:var(--spacing-xl)}.mfa-verify-header h1{font-size:var(--font-size-xxl);margin:0 0 var(--spacing-sm) 0;background:linear-gradient(135deg,var(--primary),var(--primary-dark));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.mfa-verify-header p{color:var(--text-secondary);font-size:var(--font-size-sm);margin:0}.method-selector{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:var(--spacing-sm);margin-bottom:var(--spacing-lg)}.method-btn{padding:var(--spacing-md);background-color:#ffffff0d;border:2px solid transparent;border-radius:var(--radius-md);color:var(--text-secondary);font-size:var(--font-size-sm);cursor:pointer;transition:all var(--transition-fast)}.method-btn:hover{background-color:#ffffff1a}.method-btn.active{background-color:#ff98001a;border-color:var(--primary);color:var(--primary)}.verification-content,.verification-form{display:flex;flex-direction:column;gap:var(--spacing-md)}.biometric-prompt{text-align:center;padding:var(--spacing-xl) 0}.biometric-icon{font-size:4rem;margin-bottom:var(--spacing-md);animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.05)}}.biometric-prompt p{color:var(--text-secondary);font-size:var(--font-size-md)}.send-code-section{text-align:center;padding:var(--spacing-md) 0}.send-code-text{color:var(--text-secondary);font-size:var(--font-size-sm);margin-bottom:var(--spacing-md)}.code-input{font-size:1.5rem;text-align:center;letter-spacing:.5rem;font-family:monospace}.resend-btn{background:none;border:none;color:var(--primary);font-size:var(--font-size-sm);cursor:pointer;padding:var(--spacing-xs);transition:opacity var(--transition-fast);align-self:flex-end}.resend-btn:hover{opacity:.8;text-decoration:underline}.resend-btn:disabled{opacity:.5;cursor:not-allowed}.mfa-verify-footer{text-align:center;margin-top:var(--spacing-lg);padding-top:var(--spacing-lg);border-top:1px solid rgba(255,255,255,.1)}.mfa-setup-page{padding:var(--spacing-md);max-width:800px;margin:0 auto}.mfa-setup-container{background-color:var(--surface);border-radius:var(--radius-lg);padding:var(--spacing-xl)}.mfa-setup-header{margin-bottom:var(--spacing-xl)}.mfa-setup-header h1{font-size:var(--font-size-xxl);margin:0 0 var(--spacing-sm) 0}.mfa-setup-header p{color:var(--text-secondary);font-size:var(--font-size-sm);margin:0}.mfa-method-card{background-color:#ffffff0d;border-radius:var(--radius-md);padding:var(--spacing-lg);margin-bottom:var(--spacing-md);border:1px solid rgba(255,255,255,.1)}.method-header{display:flex;align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.method-icon{font-size:2rem;width:3rem;height:3rem;display:flex;align-items:center;justify-content:center;background-color:#ff98001a;border-radius:var(--radius-md)}.method-info{flex:1}.method-info h3{margin:0 0 .25rem;font-size:var(--font-size-lg)}.method-info p{margin:0;color:var(--text-secondary);font-size:var(--font-size-sm)}.method-status{margin-left:auto}.status-badge{padding:.25rem .75rem;border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:600;background-color:#ffffff1a;color:var(--text-secondary)}.status-badge.enabled{background-color:#4caf5033;color:var(--success)}.method-details{margin-top:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid rgba(255,255,255,.1)}.detail-text{color:var(--text-secondary);font-size:var(--font-size-sm);margin:0 0 var(--spacing-sm) 0}.setup-form{margin-top:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid rgba(255,255,255,.1);display:flex;flex-direction:column;gap:var(--spacing-sm)}.error-text{color:var(--error);font-size:var(--font-size-sm);padding:var(--spacing-sm);background-color:#f443361a;border-radius:var(--radius-sm)}.button-group{display:flex;gap:var(--spacing-sm)}.btn-sm{padding:.5rem 1rem;font-size:var(--font-size-sm)}.btn-danger{background-color:#f4433633;color:#f44336;border:1px solid #f44336}.btn-danger:hover{background-color:#f443364d}.mfa-footer{margin-top:var(--spacing-xl);padding-top:var(--spacing-lg);border-top:1px solid rgba(255,255,255,.1)}.picker-page{min-height:100dvh;display:flex;flex-direction:column;background:#0a0a0a;padding-bottom:env(safe-area-inset-bottom)}.picker-header{padding:52px 24px 20px;text-align:center}.picker-logo{font-size:32px;font-weight:900;letter-spacing:-1px;color:#fff;margin-bottom:6px}.picker-subtitle{font-size:15px;color:#fff6;margin:0}.picker-list{flex:1;padding:8px 16px 16px;display:flex;flex-direction:column;gap:12px;overflow-y:auto}.picker-card{position:relative;width:100%;height:110px;border-radius:18px;overflow:hidden;border:2px solid rgba(255,255,255,.08);cursor:pointer;text-align:left;padding:0;transition:transform .15s,border-color .15s,box-shadow .15s;-webkit-tap-highlight-color:transparent;background:#1a1a1a}.picker-card:active:not(:disabled){transform:scale(.97)}.picker-card.selected{border-color:var(--card-accent, #00A859);box-shadow:0 0 0 1px var(--card-accent, #00A859),0 8px 32px color-mix(in srgb,var(--card-accent, #00A859) 25%,transparent)}.picker-card.locked{opacity:.55;cursor:default}.picker-card-bg{position:absolute;top:0;right:0;bottom:0;left:0}.picker-card-img{width:100%;height:100%;object-fit:cover;object-position:center;opacity:.35}.picker-card-gradient{position:absolute;top:0;right:0;bottom:0;left:0;mix-blend-mode:multiply}.picker-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to right,#000000bf,#0003);z-index:1}.picker-card-content{position:relative;z-index:2;padding:14px 16px;height:100%;display:flex;flex-direction:column;justify-content:center;gap:4px}.picker-card-top-row{display:flex;align-items:center;gap:8px;margin-bottom:2px}.picker-shortname{font-size:20px;font-weight:900;color:#fff;letter-spacing:-.5px;text-shadow:0 1px 4px rgba(0,0,0,.5)}.picker-badge{font-size:11px;font-weight:700;padding:2px 8px;border-radius:20px;border:1px solid;background:#0006;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);flex-shrink:0}.picker-fullname{font-size:12px;color:#fff9;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.picker-meta-row{display:flex;align-items:center;gap:6px;font-size:11px;color:#ffffff73;margin-top:2px}.picker-sep{opacity:.4}.picker-check{position:absolute;top:12px;right:12px;z-index:3;width:24px;height:24px;border-radius:50%;color:#000;font-size:13px;font-weight:800;display:flex;align-items:center;justify-content:center}.picker-lock-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;cursor:default}.picker-footer{padding:16px 16px max(20px,env(safe-area-inset-bottom));background:linear-gradient(to top,#0a0a0a 70%,transparent);position:sticky;bottom:0}.picker-enter-btn{width:100%;padding:16px;background:var(--btn-color, var(--primary, #00A859));color:#000;font-size:16px;font-weight:800;border:none;border-radius:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .15s;-webkit-tap-highlight-color:transparent}.picker-enter-btn:disabled{opacity:.35;cursor:default}.picker-enter-btn:not(:disabled):active{transform:scale(.98);opacity:.9}.picker-enter-btn.loading{opacity:.7}.picker-spinner{width:16px;height:16px;border:2.5px solid rgba(0,0,0,.3);border-top-color:#000;border-radius:50%;animation:pickerSpin .7s linear infinite}@keyframes pickerSpin{to{transform:rotate(360deg)}}.onboarding-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--background);z-index:2000;display:flex;flex-direction:column;animation:fadeIn .3s ease forwards}.onboarding-overlay.closing{animation:fadeOut .3s ease forwards}.onboarding-modal{flex:1;display:flex;flex-direction:column;background:var(--background);width:100%;max-width:600px;margin:0 auto;animation:slideUp .4s cubic-bezier(.16,1,.3,1) forwards}.onboarding-modal.closing{animation:slideDown .3s ease forwards}.onboarding-header{padding:40px 20px 20px;position:relative;display:flex;align-items:flex-start}.onboarding-back{position:absolute;top:40px;left:12px;background:none;border:none;color:var(--text-primary);font-size:24px;padding:8px;cursor:pointer;z-index:10}.onboarding-titles{flex:1;text-align:center}.onboarding-header h2{margin:0 0 8px;font-size:28px;font-weight:800;color:var(--text-primary)}.onboarding-header p{margin:0;font-size:15px;color:var(--text-secondary);line-height:1.4}.onboarding-body{flex:1;overflow:hidden;position:relative}.onboarding-footer{padding:16px 20px 32px;background:var(--surface);border-top:1px solid var(--border-color);display:flex;gap:12px;align-items:center}.onboarding-skip-btn{background:none;border:none;font-size:15px;font-weight:600;color:var(--text-muted);padding:14px 16px;cursor:pointer;border-radius:12px}.onboarding-save-btn{flex:1;background:var(--surface-light);color:var(--text-muted);border:none;padding:16px;border-radius:12px;font-size:16px;font-weight:700;cursor:pointer;transition:all .2s}.onboarding-save-btn.active{background:var(--primary);color:#fff;box-shadow:0 4px 12px #6366f14d}@keyframes slideDown{0%{transform:translateY(0)}to{transform:translateY(100%)}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.app{display:flex;flex-direction:column;min-height:100vh;padding-top:var(--app-bar-height);padding-bottom:var(--bottom-nav-height)}.app-main{flex:1;overflow-y:auto;overflow-x:hidden}.app-main:has(.map-page){overflow:hidden;height:100%;padding:0}.offline-banner{position:fixed;top:var(--app-bar-height);left:0;right:0;background-color:var(--warning);color:#000;padding:var(--spacing-xs) var(--spacing-sm);display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);z-index:999;font-size:var(--font-size-sm);font-weight:600}.offline-banner+.app-main{padding-top:2.5rem}:root{--primary: #FF9800;--primary-dark: #F57C00;--primary-light: #FFB74D;--background: #1E1E1E;--background-light: #2A2A2A;--surface: #333333;--text-primary: #FFFFFF;--text-secondary: #B0B0B0;--error: #F44336;--success: #4CAF50;--warning: #FFC107;--spacing-xs: .5rem;--spacing-sm: 1rem;--spacing-md: 1.5rem;--spacing-lg: 2rem;--spacing-xl: 3rem;--app-bar-height: 3.5rem;--bottom-nav-height: 3.5rem;--fab-size: 3.5rem;--list-item-height: 4.5rem;--event-card-height: 6rem;--result-row-height: 4rem;--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-md: 1rem;--font-size-lg: 1.25rem;--font-size-xl: 1.5rem;--font-size-xxl: 2rem;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px rgba(0, 0, 0, .4);--shadow-lg: 0 10px 20px rgba(0, 0, 0, .5);--shadow-fab: 0 6px 12px rgba(255, 152, 0, .4);--radius-sm: 4px;--radius-md: 8px;--radius-lg: 16px;--radius-full: 9999px;--transition-fast: .15s ease-in-out;--transition-normal: .3s ease-in-out;--transition-slow: .5s ease-in-out}*{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;height:100%;overflow-x:hidden}body{font-family:var(--font-family);font-size:var(--font-size-md);line-height:1.5;color:var(--text-primary);background-color:var(--background);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{width:100%;min-height:100vh;display:flex;flex-direction:column}.text-xs{font-size:var(--font-size-xs)}.text-sm{font-size:var(--font-size-sm)}.text-md{font-size:var(--font-size-md)}.text-lg{font-size:var(--font-size-lg)}.text-xl{font-size:var(--font-size-xl)}.text-xxl{font-size:var(--font-size-xxl)}.font-bold{font-weight:700}.font-semibold{font-weight:600}.font-medium{font-weight:500}.font-normal{font-weight:400}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-accent{color:var(--primary)}.glass-card{background:#333333b3;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-md);box-shadow:var(--shadow-md)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-md);font-weight:600;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-normal);text-decoration:none;-webkit-user-select:none;user-select:none}.btn-primary{background-color:var(--primary);color:#000}.btn-primary:hover{background-color:var(--primary-dark);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-primary:active{transform:translateY(0)}.btn-secondary{background-color:var(--surface);color:var(--text-primary)}.btn-secondary:hover{background-color:var(--background-light)}.btn-icon{width:2.5rem;height:2.5rem;padding:0;border-radius:var(--radius-full);background-color:transparent;color:var(--text-primary)}.btn-icon:hover{background-color:#ffffff1a}.icon{width:1.5rem;height:1.5rem;display:inline-block}.icon-sm{width:1rem;height:1rem}.icon-lg{width:2rem;height:2rem}.container{width:100%;max-width:768px;margin:0 auto;padding:0 var(--spacing-sm)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-xs{gap:var(--spacing-xs)}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.gap-lg{gap:var(--spacing-lg)}.p-xs{padding:var(--spacing-xs)}.p-sm{padding:var(--spacing-sm)}.p-md{padding:var(--spacing-md)}.p-lg{padding:var(--spacing-lg)}.px-sm{padding-left:var(--spacing-sm);padding-right:var(--spacing-sm)}.py-sm{padding-top:var(--spacing-sm);padding-bottom:var(--spacing-sm)}.m-xs{margin:var(--spacing-xs)}.m-sm{margin:var(--spacing-sm)}.m-md{margin:var(--spacing-md)}.m-lg{margin:var(--spacing-lg)}.mt-sm{margin-top:var(--spacing-sm)}.mb-sm{margin-bottom:var(--spacing-sm)}.card{background-color:var(--surface);border-radius:var(--radius-md);padding:var(--spacing-md);box-shadow:var(--shadow-sm);transition:all var(--transition-normal)}.card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.input{width:100%;padding:var(--spacing-sm);font-size:var(--font-size-md);color:var(--text-primary);background-color:var(--surface);border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-sm);transition:border-color var(--transition-fast)}.input:focus{outline:none;border-color:var(--primary)}.input::placeholder{color:var(--text-secondary)}.badge{display:inline-flex;align-items:center;padding:.25rem .75rem;font-size:var(--font-size-xs);font-weight:600;border-radius:var(--radius-full);background-color:var(--primary);color:#000}.badge-secondary{background-color:var(--surface);color:var(--text-primary)}.divider{height:1px;background-color:#ffffff1a;margin:var(--spacing-md) 0}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.fade-in{animation:fadeIn var(--transition-normal)}.slide-up{animation:slideUp var(--transition-normal)}@media (min-width: 768px){.container{padding:0 var(--spacing-md)}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--background)}::-webkit-scrollbar-thumb{background:var(--surface);border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb:hover{background:var(--background-light)}.spinner{width:2rem;height:2rem;border:3px solid rgba(255,255,255,.3);border-top-color:var(--primary);border-radius:var(--radius-full);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.hidden{display:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.line-clamp-3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
