@import"https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700&display=swap";:root{--primary-h: 250;--primary-s: 85%;--primary-l: 60%;--primary: hsl(var(--primary-h), var(--primary-s), var(--primary-l));--primary-dark: hsl(var(--primary-h), var(--primary-s), 50%);--primary-light: hsl(var(--primary-h), var(--primary-s), 95%);--bg-color: #f8f9fa;--surface-color: #ffffff;--text-primary: #1a1b1e;--text-secondary: #5f6368;--text-tertiary: #9aa0a6;--border-color: #e0e0e0;--success: #34a853;--error: #ea4335;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -1px rgb(0 0 0 / .06);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -2px rgb(0 0 0 / .05);--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: 1rem;--radius-xl: 1.5rem}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:Outfit,sans-serif;background-color:var(--bg-color);color:var(--text-primary);line-height:1.6;-webkit-font-smoothing:antialiased;min-height:100vh}input,button,select{font-family:inherit;font-size:1rem}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 1rem}.flex-center{display:flex;align-items:center;justify-content:center}.grid{display:grid}.card{background:var(--surface-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:2rem;transition:transform .2s ease,box-shadow .2s ease}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.75rem 1.5rem;border-radius:var(--radius-md);font-weight:500;cursor:pointer;transition:all .2s;border:none;outline:none}.btn-primary{background-color:var(--primary);color:#fff;box-shadow:0 4px 12px hsla(var(--primary-h),var(--primary-s),var(--primary-l),.3)}.btn-primary:hover{background-color:var(--primary-dark);transform:translateY(-1px)}.btn-primary:active{transform:translateY(0)}.btn-full{width:100%}.landing-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 50% 10%,#f3f4fa,#fff);padding:2rem}.hero-content{max-width:480px;width:100%;text-align:center;animation:fadeIn .8s ease-out}.brand-title{font-size:3.5rem;font-weight:700;margin-bottom:.5rem;background:linear-gradient(135deg,var(--primary) 0%,#a855f7 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-.02em}.tagline{font-size:1.25rem;font-weight:500;color:var(--text-primary);margin-bottom:.5rem}.description{font-size:1rem;color:var(--text-secondary);margin-bottom:2.5rem;line-height:1.5}.signup-card{text-align:left;background:#fffc;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.5)}.form-group{margin-bottom:1.25rem}.form-group label{display:block;font-size:.875rem;font-weight:500;color:var(--text-secondary);margin-bottom:.5rem}.form-group input,.form-group select{width:100%;padding:.75rem 1rem;border:1px solid var(--border-color);border-radius:var(--radius-md);background-color:#fff;transition:border-color .2s,box-shadow .2s;color:var(--text-primary)}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.select-wrapper{position:relative}.profile-setup-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background-color:var(--bg-color);padding:2rem;background:radial-gradient(circle at 50% 10%,#f3f4fa,#fff)}.profile-card{width:100%;max-width:600px;animation:fadeIn .6s ease-out}.profile-header{text-align:center;margin-bottom:2rem}.profile-title{font-size:2rem;font-weight:700;color:var(--text-primary);margin-bottom:.5rem}.profile-subtitle{color:var(--text-secondary);font-size:1rem}.profile-form textarea{width:100%;padding:.75rem 1rem;border:1px solid var(--border-color);border-radius:var(--radius-md);font-family:inherit;resize:vertical;transition:border-color .2s,box-shadow .2s}.profile-form textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.interests-section{margin:2rem 0}.section-title{font-size:1rem;font-weight:600;color:var(--text-primary);margin-bottom:1rem}.interests-grid{display:flex;flex-wrap:wrap;gap:.75rem}.interest-pill{padding:.5rem 1rem;border-radius:50px;border:1px solid var(--border-color);background-color:#fff;color:var(--text-secondary);font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s ease;-webkit-user-select:none;user-select:none}.interest-pill:hover{background-color:var(--primary-light);border-color:var(--primary-light);color:var(--primary)}.interest-pill.selected{background-color:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 2px 8px rgba(var(--primary-h),var(--primary-s),var(--primary-l),.4)}.save-btn{margin-top:1rem}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media(max-width:600px){.profile-card{padding:1.5rem}}.study-prefs-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background-color:var(--bg-color);padding:2rem;background:radial-gradient(circle at 50% 10%,#f3f4fa,#fff)}.prefs-card{width:100%;max-width:600px;animation:fadeIn .6s ease-out}.prefs-header{text-align:center;margin-bottom:2.5rem}.prefs-title{font-size:2rem;font-weight:700;color:var(--text-primary);margin-bottom:.5rem}.prefs-subtitle{color:var(--text-secondary);font-size:1rem}.options-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;margin-bottom:2.5rem}.option-card{background:#fff;border:2px solid var(--border-color);border-radius:var(--radius-md);padding:1.5rem;text-align:center;cursor:pointer;transition:all .2s ease;display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%}.option-card:hover{border-color:var(--primary-light);transform:translateY(-2px)}.option-card.selected{border-color:var(--primary);background-color:var(--primary-light);box-shadow:0 4px 12px rgba(var(--primary-h),var(--primary-s),var(--primary-l),.2)}.option-icon{font-size:2rem;margin-bottom:1rem}.option-title{font-size:1.1rem;font-weight:600;color:var(--text-primary);margin-bottom:.5rem}.option-desc{font-size:.85rem;color:var(--text-secondary);line-height:1.4}.ghost-mode-section{display:flex;align-items:center;justify-content:space-between;background:#f8f9fa;padding:1rem 1.5rem;border-radius:var(--radius-md);margin-bottom:2rem;border:1px solid var(--border-color)}.ghost-text{display:flex;flex-direction:column}.ghost-label{font-weight:600;color:var(--text-primary);margin-bottom:.25rem}.ghost-helper{font-size:.85rem;color:var(--text-secondary);font-style:italic}.switch{position:relative;display:inline-block;width:50px;height:28px;flex-shrink:0}.switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;inset:0;background-color:#ccc;transition:.4s}.slider:before{position:absolute;content:"";height:20px;width:20px;left:4px;bottom:4px;background-color:#fff;transition:.4s}input:checked+.slider{background-color:var(--primary)}input:focus+.slider{box-shadow:0 0 1px var(--primary)}input:checked+.slider:before{transform:translate(22px)}.slider.round{border-radius:34px}.slider.round:before{border-radius:50%}@media(max-width:600px){.prefs-card{padding:1.5rem}.options-grid{grid-template-columns:1fr}.option-card{flex-direction:row;text-align:left;padding:1rem;justify-content:flex-start}.option-icon{margin-bottom:0;margin-right:1rem;font-size:1.5rem}.option-title{margin-bottom:.25rem}}.loader-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 50% 50%,#fff,#f3f4fa);flex-direction:column}.loader-content{text-align:center;animation:fadeIn .8s ease-out}.spinner-ring{width:80px;height:80px;border-radius:50%;border:4px solid transparent;border-top-color:var(--primary);border-right-color:var(--primary-light);margin:0 auto 2rem;animation:spin 1.5s linear infinite;display:flex;align-items:center;justify-content:center;position:relative}.spinner-ring:before{content:"";position:absolute;inset:-4px;border-radius:50%;border:4px solid transparent;border-bottom-color:#a855f7;animation:spin-reverse 2s linear infinite}.spinner-core{width:40px;height:40px;background-color:var(--primary-light);border-radius:50%;animation:pulse 1.5s ease-in-out infinite}.loader-title{font-size:1.75rem;font-weight:700;color:var(--text-primary);margin-bottom:.75rem;letter-spacing:-.01em}.loader-subtitle{color:var(--text-secondary);font-size:1rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes spin-reverse{0%{transform:rotate(360deg)}to{transform:rotate(0)}}@keyframes pulse{0%{transform:scale(.8);opacity:.5}50%{transform:scale(1);opacity:1}to{transform:scale(.8);opacity:.5}}.results-container{min-height:100vh;padding:2rem 1rem;background-color:var(--bg-color);background:radial-gradient(circle at 50% 10%,#f3f4fa,#fff)}.results-content{max-width:1000px;margin:0 auto;text-align:center;animation:fadeIn .8s ease-out}.ghost-banner{background-color:#f0fff4;border:1px solid #c6f6d5;border-radius:var(--radius-md);padding:1rem 1.5rem;margin-bottom:2rem;display:flex;align-items:flex-start;text-align:left;animation:slideDown .5s ease-out}.banner-icon{font-size:1.5rem;margin-right:1rem;margin-top:.1rem}.banner-title{font-size:1rem;font-weight:600;color:#276749;margin-bottom:.5rem}.banner-info{list-style:none;padding:0;margin:0}.banner-info li{font-size:.85rem;color:#2f855a;margin-bottom:.25rem;line-height:1.4}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.results-header{margin-bottom:3rem}.results-title{font-size:2.5rem;font-weight:700;color:var(--text-primary);margin-bottom:.5rem}.results-subtitle{color:var(--text-secondary);font-size:1.1rem}.cards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;margin-bottom:3rem}@media(min-width:768px){.cards-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:1024px){.cards-grid{grid-template-columns:repeat(3,1fr)}}.profile-card-result{background:#fff;border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow-md);transition:transform .2s,box-shadow .2s;border:1px solid var(--border-color);display:flex;flex-direction:column;align-items:center}.profile-card-result:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg)}.profile-avatar{font-size:3rem;background:var(--bg-color);width:80px;height:80px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:1rem}.profile-name{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin-bottom:.75rem}.profile-tags{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin-bottom:1.25rem}.profile-tag{background:#f1f3f4;color:var(--text-secondary);font-size:.75rem;padding:.25rem .75rem;border-radius:50px;font-weight:500}.ai-reason{background:linear-gradient(135deg,rgba(var(--primary-h),var(--primary-s),var(--primary-l),.1),#a855f71a);padding:.75rem;border-radius:var(--radius-md);margin-bottom:1.5rem;width:100%;text-align:left;font-size:.9rem;color:var(--text-primary);display:flex;gap:.5rem}.reason-icon{font-size:1rem}.ai-reason p{font-style:italic;font-size:.9rem;line-height:1.4;margin:0}.connect-btn{margin-top:auto}.btn-secondary{background:#fff;border:1px solid var(--border-color);color:var(--text-secondary);padding:.75rem 1.5rem;border-radius:var(--radius-md);font-weight:500;cursor:pointer;transition:all .2s}.btn-secondary:hover{background:#f8f9fa;border-color:var(--text-tertiary);color:var(--text-primary)}.refine-btn{margin-top:1rem}.study-groups-header{margin-top:4rem;margin-bottom:2rem}.study-groups-title{font-size:2rem;font-weight:700;color:var(--text-primary);margin-bottom:.5rem}.study-groups-subtitle{color:var(--text-secondary);font-size:1rem}.group-card{position:relative}.group-icon{font-size:2.5rem;background:var(--primary-light);width:70px;height:70px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:1rem}.group-description{font-size:.9rem;color:var(--text-secondary);margin-bottom:1rem;line-height:1.4}.member-count{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--text-secondary);margin-bottom:1.5rem;padding:.5rem 1rem;background:#f8f9fa;border-radius:var(--radius-md);width:100%;justify-content:center}.member-icon{font-size:1rem}.clickable-card{cursor:pointer}.clickable-card:hover{transform:translateY(-8px);box-shadow:0 12px 24px #00000026}.modal-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:fadeIn .3s}.modal-content{background:#fff;border-radius:var(--radius-xl);max-width:600px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d;position:relative;animation:scaleIn .3s ease-out}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.modal-close{position:absolute;top:1rem;right:1rem;background:none;border:none;font-size:2rem;color:var(--text-tertiary);cursor:pointer;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s;z-index:10}.modal-close:hover{background:#f1f3f4;color:var(--text-primary)}.modal-header-group{text-align:center;padding:2rem 2rem 1rem;border-bottom:1px solid var(--border-color)}.group-icon-large{font-size:3rem;background:var(--primary-light);width:80px;height:80px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 1rem}.modal-title{font-size:1.75rem;font-weight:700;color:var(--text-primary);margin-bottom:.5rem}.modal-subtitle{font-size:.9rem;color:var(--text-secondary)}.modal-body{padding:1.5rem 2rem}.modal-section{margin-bottom:2rem}.modal-section:last-child{margin-bottom:0}.modal-section h3{font-size:1.1rem;font-weight:600;color:var(--text-primary);margin-bottom:.75rem}.modal-section p{color:var(--text-secondary);line-height:1.6}.members-display{display:flex;flex-wrap:wrap;gap:.75rem}.member-avatar-small{font-size:2rem;background:#f8f9fa;width:50px;height:50px;border-radius:50%;display:flex;align-items:center;justify-content:center}.modal-actions{padding:1rem 2rem 2rem;display:flex;gap:1rem}.btn-modal{flex:1;padding:.875rem}.chat-modal{max-width:700px}.chat-messages-modal{padding:1.5rem 2rem;max-height:300px;overflow-y:auto}.message{margin-bottom:1.25rem;padding:1rem;background:#f8f9fa;border-radius:var(--radius-md);border-left:3px solid var(--primary-light)}.message-header{display:flex;justify-content:space-between;margin-bottom:.5rem}.message-text{color:var(--text-secondary);line-height:1.5}.chat-input-modal{padding:1rem 2rem 2rem;display:flex;gap:.75rem;border-top:1px solid var(--border-color)}.chat-input-modal input{flex:1;padding:.75rem 1rem;border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:1rem}.chat-input-modal input:focus{outline:none;border-color:var(--primary)}.leaderboard-section{padding:1.5rem 2rem;background:#fafbfc;border-bottom:1px solid var(--border-color)}.leaderboard-title{font-size:1.1rem;font-weight:600;color:var(--text-primary);margin-bottom:.25rem}.leaderboard-subtitle{font-size:.8rem;color:var(--text-tertiary);margin-bottom:1rem;font-style:italic}.leaderboard-list{display:flex;flex-direction:column;gap:.75rem}.leaderboard-item{display:grid;grid-template-columns:40px 40px 1fr 60px;align-items:center;gap:.75rem;padding:.875rem 1rem;background:#fff;border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:transform .2s}.leaderboard-item:hover{transform:translate(3px)}.leaderboard-item.top-rank{background:linear-gradient(135deg,#fff9e6,#fff);box-shadow:0 2px 8px #ffc10733}.rank-badge{font-size:.85rem;font-weight:600;color:var(--text-secondary);text-align:center}.leaderboard-item.top-rank .rank-badge{font-size:1rem}.user-avatar{font-size:1.75rem;background:#f1f3f4;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm)}.user-info{display:flex;flex-direction:column;gap:.35rem;min-width:0}.user-info .user-name{font-size:.9rem;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.progress-bar-container{width:100%;height:6px;background:#e9ecef;border-radius:3px;overflow:hidden}.progress-bar{height:100%;background:linear-gradient(90deg,var(--primary) 0%,#a855f7 100%);border-radius:3px;transition:width .3s ease}.leaderboard-item .study-hours{font-size:.85rem;font-weight:600;color:var(--primary);text-align:right;white-space:nowrap}.leaderboard-note{font-size:.8rem;color:var(--text-secondary);margin-top:.75rem;margin-bottom:0;line-height:1.4}@media(max-width:600px){.modal-content{max-height:95vh}.modal-header-group{padding:1.5rem 1rem 1rem}.modal-body{padding:1rem}.modal-actions{padding:1rem;flex-direction:column}.chat-input-modal,.leaderboard-section{padding:1rem}.leaderboard-item{grid-template-columns:35px 35px 1fr 55px;gap:.5rem;padding:.75rem}.user-avatar{width:35px;height:35px;font-size:1.5rem}}.chat-header-row{display:flex;justify-content:space-between;align-items:center;gap:1rem;text-align:left}.chat-header-info{flex:1}.vibe-map-toggle{padding:.5rem 1rem;font-size:.9rem;border-radius:var(--radius-md);white-space:nowrap}.vibe-map-section{padding:.1rem 2rem 1.5rem;background:#f8f9fa;border-bottom:1px solid var(--border-color);max-height:500px;overflow-y:auto}.vibe-map-title{font-size:1.1rem;font-weight:600;color:var(--text-primary);margin-bottom:.25rem;margin-top:1rem}.vibe-map-personalization{font-size:.85rem;color:var(--primary);margin-bottom:1.25rem;font-style:italic;opacity:.9}.vibe-filters-container{margin:1.5rem 0;padding:1.25rem;background:#f8fbff;border-radius:var(--radius-lg);border:1px solid #e3f2fd}.vibe-filters-label{font-size:.8rem;font-weight:700;text-transform:uppercase;color:#1976d2;margin-bottom:1.25rem;letter-spacing:1px;display:flex;align-items:center;gap:.75rem}.vibe-filters-label:after{content:"";height:1px;flex:1;background:#e3f2fd}.vibe-filters-inline{display:flex;gap:.6rem;flex-wrap:wrap}.vibe-filter-btn-inline{display:flex;align-items:center;gap:.4rem;padding:.5rem .875rem;background:#fff;border:1px solid var(--border-color);border-radius:50px;font-size:.85rem;color:var(--text-secondary);cursor:pointer;transition:all .2s}.vibe-filter-btn-inline:hover{background:#f1f3f4;border-color:var(--text-tertiary)}.vibe-filter-btn-inline.active{background:var(--primary-light);border-color:var(--primary);color:var(--primary);font-weight:600}.map-embed{margin-bottom:1.5rem;box-shadow:var(--shadow-sm);border-radius:8px;overflow:hidden;height:300px}.vibe-places-list{display:flex;flex-direction:column;gap:.75rem;text-align:left}.places-header{font-size:1rem;font-weight:600;color:var(--text-primary);margin-bottom:.5rem;display:flex;align-items:center;gap:.5rem}.places-count-inline{font-size:.85rem;color:var(--text-tertiary);font-weight:400}.vibe-place-card{background:#fff;border-radius:var(--radius-md);padding:.875rem;display:flex;gap:1rem;align-items:center;border:1px solid var(--border-color);transition:all .2s}.vibe-place-card:hover{border-color:var(--primary-light);transform:translate(4px);box-shadow:var(--shadow-sm)}.place-emoji-inline{font-size:1.75rem;background:#f8f9fa;width:45px;height:45px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.place-details{flex:1}.place-name-inline{font-weight:600;color:var(--text-primary);font-size:.95rem;margin-bottom:.15rem}.place-meta{font-size:.8rem;color:var(--text-secondary)}@media(max-width:600px){.vibe-map-section{padding:1rem}.chat-header-row{flex-direction:column;align-items:flex-start;gap:.75rem}.vibe-map-toggle{width:100%}}.safety-banner.info-style{background-color:#fffde7;border-bottom:1px solid #fff9c4;padding:1rem 1.5rem;display:flex;align-items:center;gap:1.25rem;position:relative;animation:slideDownChat .3s ease-out;box-shadow:0 4px 15px #ffeb3b26}.safety-icon-circle{width:32px;height:32px;background-color:#fff9c4;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.info-icon{font-size:1rem;font-weight:800;color:#f57f17;font-family:serif;font-style:italic}.safety-banner-content{flex:1;text-align:left}.safety-banner-list{list-style:none;padding:0;margin:0}.safety-banner-list li{font-size:.85rem;color:#795548;margin-bottom:.15rem;line-height:1.4;position:relative;padding-left:1.2rem;font-weight:500}.safety-banner-list li:before{content:"•";position:absolute;left:.4rem;font-weight:700;color:#f57f17}.safety-banner-close{background:none;border:none;font-size:1.5rem;color:#d7ccc8;cursor:pointer;line-height:1;padding:0 .5rem;transition:color .2s}.safety-banner-close:hover{color:#795548}@keyframes slideDownChat{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.vibe-map-safety-box{background-color:#f0f7ff;border:1px solid #d0e7ff;border-radius:var(--radius-md);padding:1rem;margin-bottom:1.5rem;text-align:left;box-shadow:var(--shadow-sm)}.safety-box-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.safety-box-icon{font-size:1.1rem}.safety-box-title{font-size:.95rem;font-weight:700;color:#0056b3;margin:0}.safety-box-list{list-style:none;padding:0;margin:0}.safety-box-list li{font-size:.85rem;color:#335d8a;margin-bottom:.25rem;padding-left:1.25rem;position:relative;line-height:1.4}.safety-box-list li:last-child{margin-bottom:0}.safety-box-list li:before{content:"•";position:absolute;left:.4rem;font-weight:700;color:#4da3ff}.personal-chat-modal{max-width:500px}.personal-safety-banner{border-radius:var(--radius-md) var(--radius-md) 0 0}.personal-messages{display:flex;flex-direction:column;padding:1.5rem;gap:1rem;background:#fdfdfd}.message-bubble-wrapper{display:flex;width:100%}.message-bubble-wrapper.received{justify-content:flex-start}.message-bubble-wrapper.sent{justify-content:flex-end}.message-bubble{max-width:80%;padding:.75rem 1rem;border-radius:18px;position:relative;box-shadow:var(--shadow-sm)}.received .message-bubble{background-color:#f1f3f4;color:var(--text-primary);border-bottom-left-radius:4px}.sent .message-bubble{background:var(--primary);color:#fff;border-bottom-right-radius:4px}.message-content{font-size:.95rem;line-height:1.4;margin-bottom:.25rem}.message-timestamp{font-size:.7rem;opacity:.7;text-align:right}.received .message-timestamp{color:var(--text-tertiary)}.sent .message-timestamp{color:#fffc}@media(max-width:600px){.personal-chat-modal{width:95%;margin:10px}.message-bubble{max-width:90%}}.vibe-tags-section{margin:1.25rem 0;text-align:left;padding:.75rem;background:#f8fbff;border-radius:var(--radius-md);border:1px dashed #d0e1f9}.vibe-tags-grid{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.5rem}.vibe-tag-badge{background:#fff;padding:.35rem .75rem;border-radius:50px;font-size:.75rem;color:#5c6bc0;border:1px solid #e8eaf6;display:flex;align-items:center;gap:.35rem;font-weight:600;box-shadow:0 1px 2px #0000000d}.vibe-tags-note{font-size:.65rem;color:var(--text-tertiary);font-style:italic;margin:0;opacity:.8}.vibe-tags-header{display:flex;flex-wrap:wrap;gap:.4rem;margin:.25rem 0 .5rem}.vibe-tag-badge-small{background:#fff;padding:.2rem .6rem;border-radius:50px;font-size:.7rem;color:#7e57c2;border:1px solid #ede7f6;font-weight:500;box-shadow:var(--shadow-sm)}.received .vibe-tag-badge-small{color:#43a047;border-color:#e8f5e9}.sent .vibe-tag-badge-small{color:#42a5f5;border-color:#e3f2fd}@media(max-width:600px){.vibe-tags-grid{justify-content:flex-start}}.category-section{margin-bottom:3rem;padding:0 1rem}.category-label{font-size:1.25rem;font-weight:700;color:var(--text-primary);margin-bottom:1.5rem;padding-left:.5rem;border-left:4px solid var(--primary);line-height:1}.category-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem;margin-bottom:1rem}.group-card{display:flex;flex-direction:column;justify-content:space-between;padding:1.5rem;background:#fff;border-radius:var(--radius-lg);border:1px solid var(--border);transition:transform .3s ease,box-shadow .3s ease;min-height:220px}.group-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg)}.group-category-tag{display:inline-block;padding:.25rem .75rem;background:#e3f2fd;color:#1976d2;border-radius:50px;font-size:.7rem;font-weight:700;text-transform:uppercase;margin-bottom:1rem;align-self:flex-start}.group-description{font-size:.9rem;color:var(--text-secondary);line-height:1.5;margin:.5rem 0 1rem;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}@media(max-width:768px){.category-grid{display:flex;overflow-x:auto;padding-bottom:1rem;gap:1rem;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}.group-card{flex:0 0 280px;scroll-snap-align:start}}.place-name-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:.25rem;gap:.5rem}.place-vibe-tag{font-size:.65rem;background:#e3f2fd;color:#1976d2;padding:.15rem .5rem;border-radius:4px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}.suggested-label{font-size:.75rem;color:#2e7d32;background:#e8f5e9;display:inline-block;padding:.15rem .5rem;border-radius:4px;margin-top:.5rem;font-weight:600;border:1px dashed #c8e6c9}@media(max-width:480px){.place-name-row{flex-direction:column;align-items:flex-start;gap:.25rem}}.ghost-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background-color:var(--bg-color);padding:2rem;background:radial-gradient(circle at 50% 10%,#e8f0fe,#fff)}.ghost-card{width:100%;max-width:500px;text-align:center;border-top:4px solid #4285f4}.ghost-header{margin-bottom:2rem}.ghost-title{font-size:2rem;font-weight:700;color:var(--text-primary);margin-bottom:.5rem}.ghost-subtitle{color:var(--text-secondary);font-size:1.1rem}.info-card{background:#f8f9fa;border-radius:var(--radius-md);padding:1.5rem;margin-bottom:2rem;text-align:left}.info-item{display:flex;align-items:flex-start;margin-bottom:1.5rem}.info-item:last-child{margin-bottom:0}.info-icon{font-size:1.5rem;margin-right:1rem;min-width:2rem}.info-text h3{font-size:1rem;font-weight:600;color:var(--text-primary);margin-bottom:.25rem}.info-text p{font-size:.9rem;color:var(--text-secondary);line-height:1.4}.ghost-controls{margin-bottom:2rem;padding:0 1rem}.control-row{display:flex;align-items:center;justify-content:space-between}.control-label{font-weight:600;color:var(--text-primary)}.confirmation-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background-color:var(--bg-color);padding:2rem;background:radial-gradient(circle at 50% 50%,#f0fff4,#fff)}.confirmation-card{width:100%;max-width:450px;background:#fff;border-radius:var(--radius-xl);padding:2.5rem 2rem;box-shadow:var(--shadow-lg);text-align:center;animation:scaleIn .5s cubic-bezier(.175,.885,.32,1.275)}.ghost-avatar-large{font-size:5rem;background:#f1f3f4;width:120px;height:120px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 1.5rem;border:4px solid white;box-shadow:var(--shadow-md)}.confirmation-title{font-size:2rem;font-weight:700;color:var(--text-primary);margin-bottom:.5rem}.confirmation-subtitle{font-size:1.1rem;font-weight:500;color:var(--success);margin-bottom:2rem}.privacy-note{background:#fff8e1;border:1px solid #ffe0b2;border-radius:var(--radius-md);padding:1rem;display:flex;align-items:flex-start;text-align:left;margin-bottom:2rem}.note-icon{margin-right:.75rem;font-size:1.2rem}.privacy-note p{font-size:.9rem;color:#795548;line-height:1.4;margin:0}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.group-detail-container{min-height:100vh;padding:2rem 1rem;background:radial-gradient(circle at 50% 10%,#f3f4fa,#fff)}.group-detail-content{max-width:800px;margin:0 auto;animation:fadeIn .6s ease-out}.back-button{background:none;border:none;color:var(--text-secondary);font-size:1rem;cursor:pointer;padding:.5rem 0;margin-bottom:1.5rem;transition:color .2s}.group-detail-header{text-align:center;margin-bottom:2rem}.group-detail-icon{font-size:4rem;background:var(--primary-light);width:100px;height:100px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 1.5rem;box-shadow:var(--shadow-md)}.group-detail-title{font-size:2.5rem;font-weight:700;color:var(--text-primary);margin-bottom:1rem}.verified-badge{display:inline-flex;align-items:center;gap:.5rem;background:#e8f5e9;color:#2e7d32;padding:.5rem 1rem;border-radius:50px;font-size:.9rem;font-weight:500}.badge-icon{background:#2e7d32;color:#fff;width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.75rem}.group-detail-card{background:#fff;border-radius:var(--radius-lg);padding:2.5rem;box-shadow:var(--shadow-lg)}.group-section{margin-bottom:2.5rem}.group-section:last-of-type{margin-bottom:2rem}.section-title{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin-bottom:1rem}.group-detail-description{font-size:1rem;line-height:1.7;color:var(--text-secondary)}.group-detail-tags{display:flex;flex-wrap:wrap;gap:.75rem}.group-tag{background:var(--primary-light);color:var(--primary);padding:.5rem 1rem;border-radius:50px;font-size:.9rem;font-weight:500}.members-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(60px,1fr));gap:1rem;max-width:400px}.member-avatar{font-size:2.5rem;background:#f8f9fa;width:60px;height:60px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:2px solid white;box-shadow:var(--shadow-sm);transition:transform .2s}.member-avatar:hover{transform:scale(1.1)}.action-buttons{display:flex;gap:1rem;margin-top:2rem}.btn-action{flex:1;padding:1rem;font-size:1rem}@media(max-width:600px){.group-detail-card{padding:1.5rem}.action-buttons{flex-direction:column}.btn-action{width:100%}.members-grid{grid-template-columns:repeat(auto-fill,minmax(50px,1fr))}.member-avatar{width:50px;height:50px;font-size:2rem}}.chat-container{min-height:100vh;padding:1rem;background:radial-gradient(circle at 50% 10%,#f3f4fa,#fff)}.chat-content{max-width:800px;margin:0 auto;display:flex;flex-direction:column;height:calc(100vh - 2rem)}.back-button{background:none;border:none;color:var(--text-secondary);font-size:1rem;cursor:pointer;padding:.5rem 0;margin-bottom:1rem;transition:color .2s;align-self:flex-start}.back-button:hover{color:var(--primary)}.chat-header{text-align:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color)}.chat-title{font-size:1.75rem;font-weight:700;color:var(--text-primary);margin-bottom:.25rem}.chat-label{font-size:.85rem;color:var(--text-secondary);font-style:italic}.chat-messages{flex:1;overflow-y:auto;padding:1rem;background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);margin-bottom:1rem}.message{margin-bottom:1.5rem;padding:1rem;background:#f8f9fa;border-radius:var(--radius-md);border-left:3px solid var(--primary-light)}.message-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.message-user{font-weight:600;color:var(--text-primary);font-size:.9rem}.message-time{font-size:.75rem;color:var(--text-tertiary)}.message-text{color:var(--text-secondary);line-height:1.5;font-size:.95rem}.chat-input-container{display:flex;gap:.75rem;padding:1rem;background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.chat-input{flex:1;padding:.75rem 1rem;border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:1rem;font-family:inherit;transition:border-color .2s}.chat-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.send-btn{padding:.75rem 1.5rem;white-space:nowrap}@media(max-width:600px){.chat-content{height:calc(100vh - 1rem)}.chat-header{margin-bottom:1rem}.chat-title{font-size:1.5rem}.send-btn{padding:.75rem 1rem}}.vibesnap-immersive{position:fixed;top:0;left:0;width:100vw;height:100vh;background:linear-gradient(135deg,#1a237e,#0d47a1);z-index:9999;color:#fff;display:flex;align-items:center;justify-content:center;font-family:Inter,sans-serif;overflow:hidden}.vibesnap-overlay{width:100%;max-width:600px;padding:2rem;text-align:center}.vibesnap-card{background:#ffffff1a;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.2);border-radius:32px;padding:3rem 2rem;box-shadow:0 20px 50px #0000004d}.vibesnap-logo{font-size:4rem;margin-bottom:1rem;filter:drop-shadow(0 0 20px var(--primary));animation:pulse 2s infinite}.vibesnap-title{font-size:3rem;font-weight:800;margin-bottom:1rem;letter-spacing:-1px;background:linear-gradient(to right,#fff,#bbdefb);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.vibesnap-desc{font-size:1.1rem;color:#fffc;margin-bottom:2.5rem;line-height:1.6}.glow-btn{padding:1rem 2.5rem;font-size:1.25rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;box-shadow:0 0 30px #2196f380;transition:all .3s cubic-bezier(.175,.885,.32,1.275)}.glow-btn:hover{transform:scale(1.05);box-shadow:0 0 50px #2196f3cc}.timer-ring{width:100px;height:100px;border-radius:50%;border:4px solid rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;margin:0 auto 3rem;position:relative}.timer-text{font-size:2.5rem;font-weight:800;font-variant-numeric:tabular-nums}.timer-warning{color:#ff5252;animation:blink 1s infinite}.vibesnap-question-text{font-size:2rem;margin-bottom:3rem;font-weight:700;min-height:5rem}.options-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-bottom:3rem}.option-card{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:24px;padding:2rem 1rem;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1)}.option-card:hover{background:#ffffff26;transform:translateY(-5px);border-color:var(--primary)}.option-emoji{font-size:3rem;margin-bottom:1rem}.option-label{font-weight:600;font-size:.95rem}.progress-bar-vibesnap{width:100%;height:6px;background:#ffffff1a;border-radius:3px;overflow:hidden}.progress-fill{height:100%;background:var(--primary);transition:width .3s ease}.result-card{border-color:var(--primary)}.squad-icon{font-size:5rem;margin-bottom:1.5rem}.result-preamble{font-size:1.1rem;opacity:.8;margin-bottom:.5rem}.squad-name{font-size:2.5rem;font-weight:800;margin-bottom:2rem;color:gold;text-transform:uppercase;letter-spacing:2px}.squad-desc-box{background:#0003;padding:1.5rem;border-radius:16px;margin-bottom:2.5rem;line-height:1.6;font-size:1.05rem}.result-actions{display:flex;gap:1rem;justify-content:center;margin-bottom:1.5rem}.mvp-tag{font-size:.75rem;opacity:.5;margin-top:1rem}.vibesnap-exit{position:absolute;top:2rem;right:2rem;background:#ffffff1a;border:none;color:#fff;font-size:2rem;width:50px;height:50px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.vibesnap-exit:hover{background:#fff3}@keyframes pulse{0%{transform:scale(1);opacity:1}50%{transform:scale(1.1);opacity:.8}to{transform:scale(1);opacity:1}}@keyframes blink{50%{opacity:.5}}.bounce-in{animation:bounceIn .8s cubic-bezier(.68,-.55,.265,1.55)}@keyframes bounceIn{0%{opacity:0;transform:scale(.3)}to{opacity:1;transform:scale(1)}}@media(max-width:600px){.vibesnap-overlay{padding:1rem}.vibesnap-title{font-size:2.25rem}.vibesnap-question-text{font-size:1.5rem}.options-grid{gap:1rem}.option-emoji{font-size:2.25rem}.result-actions{flex-direction:column}}
