*{margin:0;padding:0;box-sizing:border-box}:root{--bg:#0b0f14;--surface: rgba(15,23,42,.72);--border:#334155;--text:#e6edf5;--muted:#94a3b8;--primary:#38bdf8;--onPrimary:#0b1220}html,body,#root{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh;color:#333}body.loop-theme{background:var(--bg);color:var(--text)}.loop-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;position:relative}.loop-bg-dots{position:fixed;inset:0;pointer-events:none;opacity:.5;background:radial-gradient(600px 300px at 10% 10%,rgba(56,189,248,.08),transparent 60%),radial-gradient(500px 250px at 90% 90%,rgba(2,132,199,.08),transparent 60%);z-index:0}.loop-bubbles{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:0}.loop-bubbles span{position:absolute;bottom:-80px;width:12px;height:12px;border-radius:50%;background:radial-gradient(circle at 30% 30%,rgba(56,189,248,.9),rgba(56,189,248,.2) 60%,transparent 70%);filter:blur(.3px);animation:floatUp 10s linear infinite;opacity:.25}.loop-bubbles span:nth-child(3n){width:16px;height:16px;animation-duration:12s;left:10%}.loop-bubbles span:nth-child(4n){width:20px;height:20px;animation-duration:14s;left:40%}.loop-bubbles span:nth-child(5n){width:10px;height:10px;animation-duration:9s;left:70%}.loop-bubbles span:nth-child(6n){width:14px;height:14px;animation-duration:11s;left:85%}@keyframes floatUp{0%{transform:translateY(0) translate(0)}50%{transform:translateY(-50vh) translate(10px)}to{transform:translateY(-105vh) translate(-10px)}}.loop-surface{position:relative;z-index:1}.loop-tiles{width:100%;max-width:760px;display:grid;grid-template-columns:1fr 1fr;gap:12px}.loop-tile{background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:16px;box-shadow:0 10px 30px #00000040;transition:transform .15s ease,box-shadow .2s ease;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.loop-tile:hover{transform:translateY(-2px);box-shadow:0 16px 40px #38bdf826}.loop-tile.primary{grid-column:1 / -1;padding:20px;box-shadow:0 16px 48px #38bdf82e}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 14px;border-radius:9999px;font-weight:700;border:1px solid var(--border)}.btn.primary{background:var(--primary);color:var(--onPrimary);border-color:var(--primary);cursor:pointer}.btn.ghost{background:#ffffff0f;color:var(--text);cursor:pointer}.input{width:100%;padding:12px 14px;background:#020617cc;color:var(--text);border:1px solid var(--border);border-radius:14px;outline:none}.input:focus{box-shadow:0 0 0 2px #38bdf859}.loop-h1{font-size:2rem;font-weight:800;letter-spacing:-.01em}.loop-muted{color:var(--muted)}.app{max-width:800px;margin:0 auto;padding:20px;min-height:100vh;display:flex;flex-direction:column}.app-header{text-align:center;margin-bottom:40px;color:#fff}.app-header h1{font-size:3rem;font-weight:700;margin-bottom:10px;text-shadow:2px 2px 4px rgba(0,0,0,.3)}.app-header p{font-size:1.2rem;opacity:.9}.app-main{flex:1;background:#fff;border-radius:20px;padding:30px;box-shadow:0 20px 40px #0000001a}.input-section{display:flex;gap:15px;margin-bottom:30px}.loop-input{flex:1;padding:15px 20px;border:2px solid #e1e5e9;border-radius:12px;font-size:16px;transition:all .3s ease}.loop-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.add-button{padding:15px 25px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease}.add-button:hover{transform:translateY(-2px);box-shadow:0 10px 20px #667eea4d}.filter-section{display:flex;gap:10px;margin-bottom:30px;justify-content:center}.filter-section button{padding:10px 20px;border:2px solid #e1e5e9;background:#fff;border-radius:25px;font-size:14px;font-weight:500;cursor:pointer;transition:all .3s ease}.filter-section button:hover{border-color:#667eea;color:#667eea}.filter-section button.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-color:transparent}.loops-container{margin-bottom:30px}.empty-state{text-align:center;padding:60px 20px;color:#666}.empty-state p{font-size:18px}.loop-item{display:flex;align-items:center;gap:15px;padding:20px;border:2px solid #f0f0f0;border-radius:12px;margin-bottom:15px;transition:all .3s ease;background:#fff;animation:fadeIn .3s ease}.loop-item:hover{border-color:#667eea;box-shadow:0 5px 15px #667eea1a}.loop-item.completed{opacity:.7;background:#f8f9fa}.loop-checkbox{width:20px;height:20px;cursor:pointer}.loop-content{flex:1;display:flex;flex-direction:column;gap:5px}.loop-text{font-size:16px;font-weight:500}.loop-item.completed .loop-text{text-decoration:line-through;color:#666}.loop-timestamp{font-size:12px;color:#999}.delete-button{width:30px;height:30px;border:none;background:#ff6b6b;color:#fff;border-radius:50%;font-size:18px;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center}.delete-button:hover{background:#ff5252;transform:scale(1.1)}.actions-section{text-align:center}.clear-button{padding:12px 24px;background:#ff6b6b;color:#fff;border:none;border-radius:25px;font-size:14px;font-weight:500;cursor:pointer;transition:all .3s ease}.clear-button:hover{background:#ff5252;transform:translateY(-2px);box-shadow:0 5px 15px #ff6b6b4d}.app-footer{text-align:center;margin-top:30px;color:#fff;opacity:.8}@media (max-width: 768px){.app{padding:10px}.app-header h1{font-size:2rem}.app-main{padding:20px}.input-section{flex-direction:column}.filter-section{flex-wrap:wrap}.loop-item{padding:15px}}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.loading-spinner{width:40px;height:40px;border:4px solid rgba(255,255,255,.3);border-top:4px solid white;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 20px}@keyframes spin{to{transform:rotate(360deg)}}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;background:linear-gradient(135deg,#667eea,#764ba2)}.login-card{background:#fff;padding:40px;border-radius:20px;box-shadow:0 20px 40px #0000001a;width:100%;max-width:400px;text-align:center}.login-card h2{font-size:2rem;margin-bottom:10px;color:#333}.login-card p{color:#666;margin-bottom:30px}.error-message{background:#ffe6e6;color:#d63031;padding:12px;border-radius:8px;margin-bottom:20px;font-size:14px}.login-form{display:flex;flex-direction:column;gap:20px}.form-group{text-align:left}.form-group label{display:block;margin-bottom:8px;font-weight:500;color:#333}.form-group input{width:100%;padding:12px 16px;border:2px solid #e1e5e9;border-radius:8px;font-size:16px;transition:all .3s ease}.form-group input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.auth-button{padding:15px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease}.auth-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 20px #667eea4d}.auth-button:disabled{opacity:.7;cursor:not-allowed}.auth-switch{margin-top:20px;color:#666}.link-button{background:none;border:none;color:#667eea;cursor:pointer;font-weight:500;text-decoration:underline}.link-button:hover{color:#764ba2}.header-content{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:20px}.user-info{display:flex;align-items:center;gap:15px;color:#fff}.user-info span{font-size:14px;opacity:.9}.logout-button{padding:8px 16px;background:#fff3;color:#fff;border:1px solid rgba(255,255,255,.3);border-radius:20px;font-size:14px;cursor:pointer;transition:all .3s ease}.logout-button:hover{background:#ffffff4d;transform:translateY(-1px)}.loading{text-align:center;padding:40px;font-size:18px;color:#666}@media (max-width: 768px){.header-content{flex-direction:column;text-align:center}.user-info{flex-direction:column;gap:10px}.login-card{padding:30px 20px}}.profile-setup{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:20px}.setup-container{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:20px;padding:40px;width:100%;max-width:600px;box-shadow:0 20px 40px #0000001a}.setup-header{text-align:center;margin-bottom:30px}.setup-header h2{color:#333;font-size:2rem;margin-bottom:10px}.progress-bar{width:100%;height:6px;background:#e1e5e9;border-radius:3px;margin:20px 0 10px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(135deg,#667eea,#764ba2);transition:width .3s ease}.step-indicator{color:#666;font-size:.875rem}.setup-step{margin-top:30px}.setup-step h3{color:#333;font-size:1.5rem;margin-bottom:20px}.interests-container{max-height:400px;overflow-y:auto;margin-bottom:20px}.interest-category{margin-bottom:25px}.interest-category h4{color:#333;font-size:1.1rem;margin-bottom:12px;font-weight:600}.interests-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}.interest-button{display:flex;flex-direction:column;align-items:center;padding:12px 8px;border:2px solid #e1e5e9;border-radius:12px;background:#fff;cursor:pointer;transition:all .3s ease;text-align:center}.interest-button:hover{border-color:#667eea;transform:translateY(-2px)}.interest-button.selected{border-color:#667eea;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.interest-icon{font-size:1.5rem;margin-bottom:4px}.interest-name{font-size:.875rem;font-weight:500}.selected-count{text-align:center;color:#666;font-size:.875rem;margin-bottom:20px}.age-range{display:flex;align-items:center;gap:10px}.age-range input{width:80px}.age-range span{color:#666}.distance-slider{display:flex;align-items:center;gap:15px}.distance-slider input[type=range]{flex:1}.distance-slider span{color:#333;font-weight:500;min-width:60px}.step-buttons{display:flex;gap:15px;margin-top:30px}.prev-button,.next-button,.complete-button{flex:1;padding:14px;border:none;border-radius:10px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease}.prev-button{background:#f8f9fa;color:#666;border:2px solid #e1e5e9}.next-button,.complete-button{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.next-button:hover,.complete-button:hover{transform:translateY(-2px);box-shadow:0 10px 20px #667eea4d}.dashboard{min-height:100vh;display:flex;flex-direction:column;position:relative;padding:20px;color:var(--text)}.dashboard-header{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid rgba(255,255,255,.2);padding:20px}.dashboard-nav{display:flex;gap:20px;max-width:1200px;margin:20px auto 0}.nav-button{padding:12px 24px;background:transparent;color:#666;border:none;border-radius:8px;cursor:pointer;font-weight:500;transition:all .3s ease}.nav-button.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.dashboard-main{flex:1;padding:40px 20px;max-width:1200px;margin:0 auto;width:100%}.match-card{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:20px;overflow:hidden;box-shadow:0 20px 40px #0000001a;max-width:400px;margin:0 auto}.card-content{padding:30px}.profile-photo{text-align:center;margin-bottom:20px}.photo-placeholder{width:120px;height:120px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;color:#fff;font-size:3rem;font-weight:700;margin:0 auto}.profile-info h2{color:#333;font-size:1.5rem;text-align:center;margin-bottom:15px}.bio{color:#666;text-align:center;margin-bottom:25px;line-height:1.5}.interests h3,.compatibility h3{color:#333;font-size:1.1rem;margin-bottom:12px;font-weight:600}.interests-list,.shared-interests{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}.interest-tag,.shared-interest{background:#f8f9fa;color:#333;padding:6px 12px;border-radius:20px;font-size:.875rem;border:1px solid #e1e5e9}.shared-interest{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none}.interest-tag.more{background:#667eea;color:#fff}.card-actions{display:flex;padding:20px 30px;gap:15px;background:#f8f9fa80}.pass-button,.like-button{flex:1;padding:14px;border:none;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease}.pass-button{background:#f8f9fa;color:#666;border:2px solid #e1e5e9}.like-button{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.like-button:hover{transform:translateY(-2px);box-shadow:0 10px 20px #667eea4d}.no-more-matches{text-align:center;color:#fff;padding:60px 20px}.no-more-matches h2{font-size:2rem;margin-bottom:15px}.refresh-button{padding:14px 28px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;margin-top:20px;transition:all .3s ease}.refresh-button:hover{transform:translateY(-2px);box-shadow:0 10px 20px #667eea4d}.matches-section h2{color:#fff;font-size:2rem;margin-bottom:30px;text-align:center}.no-matches{text-align:center;color:#fff;padding:60px 20px}.matches-list{display:grid;gap:20px;max-width:800px;margin:0 auto}.match-item{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:16px;padding:20px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 10px 20px #0000001a}.match-info{display:flex;align-items:center;gap:15px}.match-photo{width:60px;height:60px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.5rem}.match-details h3{color:#333;font-size:1.1rem;margin-bottom:4px}.match-details p{color:#666;font-size:.875rem;margin-bottom:4px}.status{padding:4px 8px;border-radius:12px;font-size:.75rem;font-weight:500}.status.pending{background:#fff3cd;color:#856404}.status.matched{background:#d4edda;color:#155724}.status.declined{background:#f8d7da;color:#721c24}.match-actions{display:flex;gap:10px}.decline-button,.accept-button,.message-button{padding:8px 16px;border:none;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .3s ease}.decline-button{background:#f8f9fa;color:#666;border:1px solid #e1e5e9}.accept-button,.message-button{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.messaging{min-height:100vh;display:flex;flex-direction:column;background:linear-gradient(135deg,#667eea,#764ba2)}.messaging-header{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:20px;display:flex;align-items:center;gap:20px;border-bottom:1px solid rgba(255,255,255,.2)}.back-button{padding:8px 16px;background:transparent;color:#667eea;border:2px solid #667eea;border-radius:8px;cursor:pointer;font-weight:500;transition:all .3s ease}.back-button:hover{background:#667eea;color:#fff}.chat-info h2{color:#333;font-size:1.5rem;margin-bottom:4px}.match-id{color:#666;font-size:.875rem}.messages-container{flex:1;padding:20px;overflow-y:auto;max-width:800px;margin:0 auto;width:100%}.message-group{margin-bottom:30px}.date-separator{text-align:center;margin-bottom:20px}.date-separator span{background:#ffffffe6;color:#666;padding:6px 16px;border-radius:20px;font-size:.875rem;font-weight:500}.message{margin-bottom:12px;display:flex}.message.own{justify-content:flex-end}.message.other{justify-content:flex-start}.message-content{max-width:70%;padding:12px 16px;border-radius:18px;position:relative}.message.own .message-content{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-bottom-right-radius:6px}.message.other .message-content{background:#fffffff2;color:#333;border-bottom-left-radius:6px}.message-content p{margin:0;line-height:1.4}.message-time{display:block;font-size:.75rem;margin-top:4px;opacity:.7}.read-status{margin-left:4px}.read-status.read{color:#4caf50}.no-messages{text-align:center;color:#fff;padding:60px 20px}.message-input-form{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:20px;border-top:1px solid rgba(255,255,255,.2)}.input-container{display:flex;gap:12px;max-width:800px;margin:0 auto}.input-container input{flex:1;padding:12px 16px;border:2px solid #e1e5e9;border-radius:25px;font-size:16px;outline:none;transition:border-color .3s ease}.input-container input:focus{border-color:#667eea}.send-button{padding:12px 24px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:25px;font-weight:600;cursor:pointer;transition:all .3s ease}.send-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 20px #667eea4d}.send-button:disabled{opacity:.5;cursor:not-allowed}.proximity-matches{padding:20px;max-width:800px;margin:0 auto}.location-disabled{text-align:center;padding:60px 20px;background:#fffffff2;border-radius:20px;box-shadow:0 10px 20px #0000001a}.location-disabled .location-icon{font-size:4rem;margin-bottom:20px}.location-disabled h2{color:#333;font-size:2rem;margin-bottom:15px}.location-disabled p{color:#666;font-size:1.1rem;margin-bottom:30px;line-height:1.5}.enable-location-button{padding:14px 28px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease}.enable-location-button:hover{transform:translateY(-2px);box-shadow:0 10px 20px #667eea4d}.proximity-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;padding:20px;background:#fffffff2;border-radius:16px;box-shadow:0 5px 15px #0000001a}.proximity-header h2{color:#333;font-size:1.8rem;margin:0}.proximity-matches .refresh-button{padding:10px 20px;background:transparent;color:#667eea;border:2px solid #667eea;border-radius:8px;cursor:pointer;font-weight:500;transition:all .3s ease}.proximity-matches .refresh-button:hover{background:#667eea;color:#fff}.proximity-matches .refresh-button:disabled{opacity:.5;cursor:not-allowed}.notifications-section{margin-bottom:30px}.notifications-section h3{color:#fff;font-size:1.3rem;margin-bottom:15px}.notifications-list{display:flex;flex-direction:column;gap:10px}.notification-item{display:flex;align-items:center;gap:15px;padding:15px 20px;background:#fffffff2;border-radius:12px;cursor:pointer;transition:all .3s ease;box-shadow:0 5px 15px #0000001a}.notification-item:hover{transform:translateY(-2px);box-shadow:0 10px 25px #00000026}.notification-icon{font-size:1.5rem}.notification-content{flex:1}.notification-content h4{color:#333;font-size:1rem;margin-bottom:5px}.notification-content p{color:#666;font-size:.9rem;margin-bottom:5px}.distance{color:#667eea;font-size:.8rem;font-weight:500}.loading-matches,.no-matches{text-align:center;padding:60px 20px;color:#fff}.no-matches-icon{font-size:4rem;margin-bottom:20px}.no-matches h3{font-size:1.5rem;margin-bottom:10px}.matches-container{display:flex;flex-direction:column;gap:20px}.proximity-match-card{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:20px;overflow:hidden;box-shadow:0 20px 40px #0000001a;transition:all .3s ease}.proximity-match-card:hover{transform:translateY(-5px);box-shadow:0 25px 50px #00000026}.match-header{display:flex;justify-content:space-between;align-items:center;padding:20px 30px 10px;background:#667eea0d}.match-distance,.compatibility-score{color:#667eea;font-weight:600;font-size:.9rem}.match-content{padding:20px 30px}.match-content h3{color:#333;font-size:1.3rem;margin-bottom:10px}.match-content>p{color:#666;margin-bottom:20px}.shared-venues,.shared-events{margin-bottom:20px}.shared-venues h4,.shared-events h4{color:#333;font-size:1rem;margin-bottom:10px}.venues-list,.events-list{display:flex;flex-direction:column;gap:8px}.venue-item,.event-item{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:#f8f9fa;border-radius:8px}.venue-name,.event-name{font-weight:500;color:#333}.venue-category,.event-date{color:#666;font-size:.85rem}.venue-rating{color:#667eea;font-size:.85rem}.match-actions{display:flex;gap:15px;padding:20px 30px;background:#f8f9fa80}.match-actions .pass-button,.match-actions .interested-button{flex:1;padding:14px;border:none;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease}.match-actions .pass-button{background:#f8f9fa;color:#666;border:2px solid #e1e5e9}.match-actions .interested-button{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.match-success{padding:20px 30px;background:#4caf501a;text-align:center}.match-success p{color:#4caf50;font-weight:600;margin-bottom:15px}.view-details-button{padding:12px 24px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:10px;font-weight:600;cursor:pointer;transition:all .3s ease}.match-details-modal{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal-content{background:#fff;border-radius:20px;max-width:800px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 25px 50px #00000040}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:30px 30px 20px;border-bottom:1px solid #e1e5e9}.modal-header h2{color:#333;font-size:1.5rem;margin:0}.close-button{width:40px;height:40px;border:none;background:#f8f9fa;border-radius:50%;font-size:1.5rem;cursor:pointer;color:#666;transition:all .3s ease}.close-button:hover{background:#e9ecef;color:#333}.modal-body{padding:30px}.match-info{display:flex;gap:30px;margin-bottom:30px;padding:20px;background:#f8f9fa;border-radius:12px}.match-info p{color:#333;font-weight:500;margin:0}.venue-suggestions,.event-suggestions{margin-bottom:30px}.venue-suggestions h3,.event-suggestions h3{color:#333;font-size:1.3rem;margin-bottom:20px}.venues-grid,.events-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}.venue-card,.event-card{border:1px solid #e1e5e9;border-radius:12px;padding:20px;transition:all .3s ease}.venue-card:hover,.event-card:hover{box-shadow:0 10px 20px #0000001a;transform:translateY(-2px)}.venue-card h4,.event-card h4{color:#333;font-size:1.1rem;margin-bottom:10px}.venue-card p,.event-card p{color:#666;font-size:.9rem;margin-bottom:15px}.venue-details,.event-details{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:15px}.category,.rating,.price,.date,.venue{padding:4px 8px;border-radius:6px;font-size:.8rem;font-weight:500}.category{background:#667eea1a;color:#667eea}.rating{background:#ffc1071a;color:#ffc107}.price{background:#28a7451a;color:#28a745}.date{background:#6c757d1a;color:#6c757d}.venue{background:#dc35451a;color:#dc3545}.venue-link,.event-link{display:inline-block;padding:8px 16px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;text-decoration:none;border-radius:8px;font-size:.9rem;font-weight:500;transition:all .3s ease}.venue-link:hover,.event-link:hover{transform:translateY(-1px);box-shadow:0 5px 15px #667eea4d}.modal-footer{padding:20px 30px;border-top:1px solid #e1e5e9;text-align:right}.close-modal-button{padding:12px 24px;background:#f8f9fa;color:#666;border:2px solid #e1e5e9;border-radius:8px;cursor:pointer;font-weight:500;transition:all .3s ease}.close-modal-button:hover{border-color:#667eea;color:#667eea}@media (max-width: 768px){.proximity-matches{padding:15px}.proximity-header{flex-direction:column;gap:15px;text-align:center}.proximity-match-card{margin:0 10px}.match-header{flex-direction:column;gap:10px;text-align:center}.match-actions{flex-direction:column}.venues-grid,.events-grid{grid-template-columns:1fr}.modal-content{margin:10px;max-height:95vh}.modal-body{padding:20px}.match-info{flex-direction:column;gap:10px}}@media (max-width: 480px){.permission-container{margin:15px;padding:30px 20px}.permission-actions{flex-direction:column}.privacy-options{gap:10px}.privacy-option{padding:15px}.notification-item{padding:12px 15px}.proximity-match-card{margin:0 5px}.match-content,.match-actions{padding:15px 20px}}.ai-insights{padding:20px;max-width:800px;margin:0 auto}.ai-insights.loading{text-align:center;padding:60px 20px;color:#fff}.insights-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;padding:20px;background:#fffffff2;border-radius:16px;box-shadow:0 5px 15px #0000001a}.insights-header h2{color:#333;font-size:1.8rem;margin:0}.insights-header p{color:#666;margin:5px 0 0;font-size:.9rem}.refresh-insights{padding:10px 20px;background:transparent;color:#667eea;border:2px solid #667eea;border-radius:8px;cursor:pointer;font-weight:500;transition:all .3s ease}.refresh-insights:hover{background:#667eea;color:#fff}.refresh-insights:disabled{opacity:.5;cursor:not-allowed}.no-insights{text-align:center;padding:60px 20px;color:#fff}.no-insights-icon{font-size:4rem;margin-bottom:20px}.no-insights h3{font-size:1.5rem;margin-bottom:10px}.insights-list{display:flex;flex-direction:column;gap:20px}.insight-card{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:16px;padding:20px;cursor:pointer;transition:all .3s ease;box-shadow:0 5px 15px #0000001a;border-left:4px solid transparent}.insight-card:hover{transform:translateY(-2px);box-shadow:0 10px 25px #00000026}.insight-card.unread{border-left-color:#667eea;background:#667eea05}.insight-card.location_suggestion{border-left-color:#4caf50}.insight-card.timing_optimization{border-left-color:#ff9800}.insight-card.conversation_starter{border-left-color:#e91e63}.insight-card.activity_recommendation{border-left-color:#9c27b0}.insight-card.behavioral_insight{border-left-color:#2196f3}.insight-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:15px}.insight-icon{font-size:1.5rem;margin-right:10px}.insight-meta{display:flex;flex-direction:column;gap:5px;align-items:flex-end}.insight-type{font-size:.7rem;font-weight:600;color:#666;text-transform:uppercase;letter-spacing:.5px}.confidence-badge{padding:2px 8px;border-radius:12px;font-size:.7rem;font-weight:600;color:#fff}.insight-content h3{color:#333;font-size:1.2rem;margin-bottom:8px}.insight-content p{color:#666;line-height:1.5;margin-bottom:10px}.actionable-indicator{display:inline-flex;align-items:center;gap:5px;padding:4px 8px;background:#4caf501a;color:#4caf50;border-radius:6px;font-size:.8rem;font-weight:500}.insight-footer{display:flex;justify-content:space-between;align-items:center;margin-top:15px;padding-top:15px;border-top:1px solid #e1e5e9}.expires{color:#999;font-size:.8rem}.unread-indicator{width:8px;height:8px;background:#667eea;border-radius:50%}.nudge-details-modal{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.nudge-details-modal .modal-content{background:#fff;border-radius:20px;max-width:600px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 25px 50px #00000040}.nudge-details-modal .modal-header{display:flex;justify-content:space-between;align-items:center;padding:30px 30px 20px;border-bottom:1px solid #e1e5e9}.modal-title{display:flex;align-items:center;gap:15px}.modal-icon{font-size:2rem}.modal-title h2{color:#333;font-size:1.4rem;margin:0}.nudge-message{margin-bottom:25px}.nudge-message p{color:#333;font-size:1.1rem;line-height:1.6}.nudge-metadata{display:flex;flex-direction:column;gap:15px;margin-bottom:25px;padding:20px;background:#f8f9fa;border-radius:12px}.metadata-item{display:flex;flex-direction:column;gap:5px}.metadata-item strong{color:#333;font-weight:600}.confidence-value{font-weight:600;margin-left:8px}.reasoning{color:#666;font-style:italic;margin:5px 0 0}.nudge-specific-data{margin-bottom:25px;padding:20px;border:1px solid #e1e5e9;border-radius:12px}.nudge-specific-data h4{color:#333;margin-bottom:15px}.conversation-starter blockquote{background:#667eea1a;border-left:4px solid #667eea;padding:15px 20px;margin:0;font-style:italic;color:#333;border-radius:0 8px 8px 0}.nudge-actions{display:flex;gap:15px}.nudge-actions button{flex:1;padding:14px;border:none;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease}.dismiss-button{background:#f8f9fa;color:#666;border:2px solid #e1e5e9!important}.later-button{background:#fff3cd;color:#856404;border:2px solid #ffeaa7!important}.accept-button{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.accept-button:hover{transform:translateY(-2px);box-shadow:0 10px 20px #667eea4d}.admin-dashboard{min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px}.admin-dashboard.unauthorized{display:flex;align-items:center;justify-content:center}.unauthorized-message{background:#fff;padding:40px;border-radius:20px;text-align:center;box-shadow:0 20px 40px #0000001a}.unauthorized-message h2{color:#333;margin-bottom:15px}.unauthorized-message p{color:#666}.admin-dashboard.loading{display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff}.admin-dashboard .dashboard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;padding:20px;background:#fffffff2;border-radius:16px;box-shadow:0 5px 15px #0000001a}.admin-dashboard .dashboard-header h1{color:#333;font-size:2rem;margin:0}.time-range-selector{display:flex;align-items:center;gap:10px}.time-range-selector label{color:#666;font-weight:500}.time-range-selector select{padding:8px 12px;border:2px solid #e1e5e9;border-radius:8px;background:#fff;color:#333;cursor:pointer}.admin-dashboard .dashboard-nav{display:flex;gap:10px;margin-bottom:30px;padding:10px;background:#ffffff1a;border-radius:12px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.admin-dashboard .dashboard-nav .nav-button{padding:12px 20px;background:transparent;color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:500;transition:all .3s ease}.admin-dashboard .dashboard-nav .nav-button:hover{background:#ffffff1a}.admin-dashboard .dashboard-nav .nav-button.active{background:#fff3;box-shadow:0 2px 8px #0000001a}.admin-dashboard .dashboard-main{background:#fffffff2;border-radius:20px;padding:30px;box-shadow:0 20px 40px #0000001a}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin-bottom:40px}.stat-card{display:flex;align-items:center;gap:15px;padding:20px;background:#fff;border-radius:12px;box-shadow:0 5px 15px #0000001a;transition:all .3s ease}.stat-card:hover{transform:translateY(-2px);box-shadow:0 10px 25px #00000026}.stat-icon{font-size:2rem}.stat-content h3{color:#666;font-size:.9rem;margin-bottom:5px;text-transform:uppercase;letter-spacing:.5px}.stat-value{color:#333;font-size:1.8rem;font-weight:700}.charts-section{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:30px;margin-bottom:40px}.chart-container{background:#fff;padding:25px;border-radius:12px;box-shadow:0 5px 15px #0000001a}.chart-container h3{color:#333;margin-bottom:20px;text-align:center}.simple-chart{display:flex;align-items:end;justify-content:space-between;height:200px;gap:5px}.chart-bar{display:flex;flex-direction:column;align-items:center;flex:1;height:100%}.bar{background:linear-gradient(135deg,#667eea,#764ba2);width:100%;min-height:5px;border-radius:2px 2px 0 0;transition:all .3s ease}.bar-label{color:#666;font-size:.8rem;margin-top:8px;text-align:center}.insights-section{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:30px}.top-interests,.top-venues{background:#fff;padding:25px;border-radius:12px;box-shadow:0 5px 15px #0000001a}.top-interests h3,.top-venues h3{color:#333;margin-bottom:20px}.interests-list,.venues-list{display:flex;flex-direction:column;gap:10px}.interest-item,.venue-item{display:flex;justify-content:space-between;align-items:center;padding:10px 15px;background:#f8f9fa;border-radius:8px}.interest-name,.venue-name{color:#333;font-weight:500}.interest-count,.venue-visits{color:#667eea;font-weight:600;font-size:.9rem}.users-table{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 5px 15px #0000001a}.table-header,.table-row{display:grid;grid-template-columns:2fr 1fr 1fr 1.5fr 1.5fr 2fr 1.5fr;gap:20px;padding:20px}.table-header{background:#f8f9fa;font-weight:600;color:#333;border-bottom:1px solid #e1e5e9}.table-row{border-bottom:1px solid #f1f3f4;align-items:center}.table-row:hover{background:#f8f9fa}.user-info{display:flex;flex-direction:column;gap:2px}.user-name{color:#333;font-weight:500}.user-id{color:#999;font-size:.8rem;font-family:monospace}.score-bar{width:60px;height:8px;background:#e1e5e9;border-radius:4px;overflow:hidden;margin-right:10px;display:inline-block}.score-fill{height:100%;border-radius:4px;transition:width .3s ease}.score-fill.social{background:#4caf50}.score-fill.routine{background:#ff9800}.personality-traits{display:flex;flex-wrap:wrap;gap:5px}.trait-tag{padding:2px 6px;background:#667eea1a;color:#667eea;border-radius:4px;font-size:.7rem;font-weight:500}.location-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin-bottom:30px}.heatmap-container{background:#fff;padding:25px;border-radius:12px;box-shadow:0 5px 15px #0000001a}.heatmap-placeholder{text-align:center;padding:60px 20px;color:#666}.location-categories{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:20px}.category-tag{padding:5px 10px;background:#667eea1a;color:#667eea;border-radius:6px;font-size:.8rem;font-weight:500}.patterns-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin-bottom:30px}.patterns-insights{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:30px}.insight-card{background:#fff;padding:25px;border-radius:12px;box-shadow:0 5px 15px #0000001a}.insight-card h3{color:#333;margin-bottom:15px}.insight-card ul{list-style:none;padding:0;margin:0}.insight-card li{padding:8px 0;color:#666;border-bottom:1px solid #f1f3f4}.insight-card li:last-child{border-bottom:none}.ai-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin-bottom:30px}.ai-insights{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:30px;margin-bottom:30px}.ai-recommendations{background:#fff;padding:25px;border-radius:12px;box-shadow:0 5px 15px #0000001a}.ai-recommendations h3{color:#333;margin-bottom:20px}.recommendation-list{display:flex;flex-direction:column;gap:15px}.recommendation{display:flex;align-items:flex-start;gap:15px;padding:15px;background:#f8f9fa;border-radius:8px}.rec-icon{font-size:1.5rem;margin-top:2px}.rec-content h4{color:#333;margin-bottom:5px}.rec-content p{color:#666;margin:0}@media (max-width: 768px){.admin-dashboard .dashboard-header{flex-direction:column;gap:15px;text-align:center}.admin-dashboard .dashboard-nav{flex-wrap:wrap}.stats-grid,.charts-section{grid-template-columns:1fr}.table-header,.table-row{grid-template-columns:1fr;gap:10px}.table-header{display:none}.table-row{display:flex;flex-direction:column;align-items:flex-start}}@media (max-width: 480px){.admin-dashboard{padding:10px}.admin-dashboard .dashboard-main{padding:20px}.nudge-details-modal .modal-content{margin:15px;max-height:95vh}.nudge-actions{flex-direction:column}}body.loop-theme .dashboard-header,body.loop-theme .insights-header,body.loop-theme .proximity-header,body.loop-theme .notification-item,body.loop-theme .match-card,body.loop-theme .matches-section .match-item,body.loop-theme .message.other .message-content,body.loop-theme .message-input-form,body.loop-theme .kit-surface{background:var(--surface);color:var(--text);border:1px solid var(--border)}body.loop-theme .nav-button.active,body.loop-theme .like-button,body.loop-theme .accept-button,body.loop-theme .message-button,body.loop-theme .refresh-button,body.loop-theme .complete-button,body.loop-theme .next-button{background:var(--primary)!important;color:var(--onPrimary)!important;border:1px solid var(--primary)!important;border-radius:9999px!important;padding:10px 14px!important;font-weight:700;box-shadow:0 6px 16px #38bdf840}body.loop-theme .pass-button,body.loop-theme .decline-button,body.loop-theme .prev-button,body.loop-theme .logout-button{background:#ffffff0f!important;color:var(--text)!important;border:1px solid var(--border)!important;border-radius:9999px!important;padding:10px 14px!important;font-weight:600}body.loop-theme input,body.loop-theme select,body.loop-theme textarea{background:#020617cc;color:var(--text);border:1px solid var(--border);border-radius:14px}body.loop-theme input::placeholder{color:var(--muted)}body.loop-theme .progress-bar{background:#ffffff14}body.loop-theme .progress-fill{background:var(--primary)}.kit-surface{margin:12px auto;max-width:800px;padding:12px;border-radius:16px;background:var(--surface, rgba(255,255,255,.92));border:1px solid var(--border, #334155);box-shadow:0 10px 30px #00000040;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.kit-tabs{display:flex;gap:8px;justify-content:center;margin-bottom:8px}.chip-row{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;padding:6px 2px}.chip{display:inline-flex;align-items:center;gap:6px;border-radius:9999px;padding:6px 8px 6px 10px;border:1px solid var(--border, #334155);background:#0f172a80;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 6px 16px #0000002e;transition:transform .15s ease,box-shadow .2s ease,border-color .2s ease}.chip:hover{transform:translateY(-1px);box-shadow:0 10px 22px #38bdf833;border-color:#38bdf880}.chip.plan{background:linear-gradient(#0f172a8c,#0f172a8c),radial-gradient(120% 120% at 0% 0%,rgba(56,189,248,.25),transparent 45%),radial-gradient(120% 120% at 100% 100%,rgba(2,132,199,.25),transparent 45%)}.chip.emph{border-color:var(--primary, #38bdf8);box-shadow:0 10px 24px #38bdf847}.chip-label{appearance:none;background:transparent;border:none;color:var(--text, #e6edf5);font:inherit;font-weight:600;letter-spacing:.1px;cursor:pointer;padding:0 2px;white-space:nowrap}.chip-send{appearance:none;border:1px solid var(--border, #334155);background:#ffffff14;color:var(--text, #e6edf5);width:26px;height:26px;border-radius:9999px;line-height:1;display:inline-grid;place-items:center;cursor:pointer;transition:transform .12s ease,box-shadow .15s ease,background .15s ease,border-color .15s ease}.chip-send:hover{transform:translateY(-1px);background:var(--primary, #38bdf8);color:var(--onPrimary, #0b1220);border-color:var(--primary, #38bdf8);box-shadow:0 6px 16px #38bdf840}.chip-send:disabled{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none}@media (max-width: 480px){.chip-row{gap:8px}.chip{padding:6px 8px}.chip-label{font-size:.92rem}}
