:root{--primary: #ff6b6b;--primary-dark: #ee5a5a;--secondary: #4ecdc4;--secondary-dark: #3dbdb5;--bg: #f8f9fa;--card-bg: #ffffff;--text: #2d3436;--text-light: #636e72;--text-muted: #b2bec3;--success: #00b894;--danger: #ff7675;--warning: #fdcb6e;--shadow: 0 4px 20px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 40px rgba(0, 0, 0, .12);--radius: 16px;--radius-sm: 10px}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{height:100%;overflow:hidden}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{height:100%;overflow:hidden}[data-amplify-authenticator]{--amplify-colors-brand-primary-10: #fff0f0;--amplify-colors-brand-primary-20: #ffd6d6;--amplify-colors-brand-primary-40: #ff9e9e;--amplify-colors-brand-primary-60: #ff6b6b;--amplify-colors-brand-primary-80: #ee5a5a;--amplify-colors-brand-primary-90: #dd4a4a;--amplify-colors-brand-primary-100: #cc3a3a}button{cursor:pointer;border:none;outline:none;font-family:inherit}input{font-family:inherit;outline:none}.app-container{height:100%;display:flex;flex-direction:column;max-width:430px;margin:0 auto;position:relative;overflow:hidden;background:var(--bg)}.header{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;background:var(--card-bg);border-bottom:1px solid rgba(0,0,0,.06);z-index:10;flex-shrink:0}.header h1{font-size:20px;font-weight:700;background:linear-gradient(135deg,var(--primary),var(--secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.header-actions{display:flex;gap:8px;align-items:center}.icon-btn{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--bg);color:var(--text-light);font-size:18px;transition:all .2s}.icon-btn:hover{background:#eee}.home-screen{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 24px;gap:24px;overflow-y:auto}.home-logo{font-size:64px;margin-bottom:8px}.home-title{font-size:28px;font-weight:800;text-align:center;line-height:1.2}.home-subtitle{font-size:15px;color:var(--text-light);text-align:center;max-width:280px;line-height:1.5}.btn{padding:14px 32px;border-radius:50px;font-size:16px;font-weight:600;transition:all .2s;width:100%;max-width:300px;text-align:center}.btn-primary{background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;box-shadow:0 4px 15px #ff6b6b4d}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 20px #ff6b6b66}.btn-secondary{background:var(--card-bg);color:var(--text);border:2px solid #eee}.btn-secondary:hover{border-color:var(--primary);color:var(--primary)}.btn-success{background:linear-gradient(135deg,var(--secondary),var(--secondary-dark));color:#fff;box-shadow:0 4px 15px #4ecdc44d}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.input-group{width:100%;max-width:300px}.input-group label{display:block;font-size:13px;font-weight:600;color:var(--text-light);margin-bottom:6px;text-transform:uppercase;letter-spacing:.5px}.input-group input{width:100%;padding:14px 18px;border:2px solid #eee;border-radius:var(--radius-sm);font-size:16px;transition:border-color .2s;background:var(--card-bg)}.input-group input:focus{border-color:var(--primary)}.divider{display:flex;align-items:center;gap:12px;width:100%;max-width:300px;color:var(--text-muted);font-size:13px}.divider:before,.divider:after{content:"";flex:1;height:1px;background:#eee}.lobby-screen{flex:1;display:flex;flex-direction:column;padding:24px;overflow-y:auto}.session-code{text-align:center;margin-bottom:24px}.session-code label{font-size:13px;color:var(--text-light);text-transform:uppercase;letter-spacing:1px;font-weight:600}.session-code .code{font-size:40px;font-weight:800;letter-spacing:8px;color:var(--primary);margin-top:4px}.participants-list{background:var(--card-bg);border-radius:var(--radius);padding:16px;margin-bottom:24px;box-shadow:var(--shadow)}.participants-list h3{font-size:14px;color:var(--text-light);text-transform:uppercase;letter-spacing:.5px;margin-bottom:12px}.participant-item{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid #f0f0f0}.participant-item:last-child{border-bottom:none}.participant-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--secondary));display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:14px}.participant-name{flex:1;font-weight:500}.participant-badge{font-size:11px;padding:3px 8px;border-radius:20px;background:#f0f0f0;color:var(--text-light);font-weight:600}.participant-badge.host{background:#ff6b6b1a;color:var(--primary)}.lobby-actions{margin-top:auto;display:flex;flex-direction:column;align-items:center;gap:12px}.swipe-screen{flex:1;display:flex;flex-direction:column;position:relative;overflow:hidden}.cards-container{flex:1;position:relative;display:flex;align-items:center;justify-content:center;padding:16px}.card-wrapper{position:absolute;width:calc(100% - 32px);max-width:380px;touch-action:none;will-change:transform}.restaurant-card{width:100%;background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow-lg);overflow:hidden;-webkit-user-select:none;user-select:none}.card-image{width:100%;height:280px;background:linear-gradient(135deg,#667eea,#764ba2);position:relative;overflow:hidden}.card-image img{width:100%;height:100%;object-fit:cover}.card-image-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:72px;background:linear-gradient(135deg,#ff6b6b22,#4ecdc422)}.card-distance{position:absolute;top:12px;right:12px;background:#0009;color:#fff;padding:4px 10px;border-radius:20px;font-size:12px;font-weight:600;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.card-overlay{position:absolute;top:20px;padding:8px 20px;border-radius:8px;font-size:24px;font-weight:800;border:4px solid;transform:rotate(-20deg);opacity:0;transition:opacity .1s;pointer-events:none}.card-overlay.like{right:20px;color:var(--success);border-color:var(--success);transform:rotate(20deg)}.card-overlay.nope{left:20px;color:var(--danger);border-color:var(--danger);transform:rotate(-20deg)}.card-info{padding:20px}.card-name{font-size:22px;font-weight:700;margin-bottom:6px;line-height:1.2}.card-cuisine{font-size:14px;color:var(--text-light);margin-bottom:12px}.card-meta{display:flex;gap:16px;flex-wrap:wrap}.card-meta-item{display:flex;align-items:center;gap:4px;font-size:14px;color:var(--text-light)}.card-meta-item .star{color:#f9ca24}.card-meta-item .price{color:var(--success);font-weight:600}.card-address{font-size:13px;color:var(--text-muted);margin-top:10px;line-height:1.4}.swipe-actions{display:flex;justify-content:center;gap:24px;padding:16px 24px 24px;flex-shrink:0}.swipe-btn{width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:28px;box-shadow:var(--shadow);transition:all .2s;background:var(--card-bg)}.swipe-btn:active{transform:scale(.9)}.swipe-btn.nope{color:var(--danger);border:2px solid var(--danger)}.swipe-btn.like{color:var(--success);border:2px solid var(--success)}.progress-bar{height:3px;background:#eee;flex-shrink:0}.progress-bar-fill{height:100%;background:linear-gradient(90deg,var(--primary),var(--secondary));transition:width .3s ease}.winner-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:100;padding:24px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.winner-card{background:var(--card-bg);border-radius:var(--radius);padding:32px 24px;text-align:center;max-width:340px;width:100%;animation:scaleIn .4s cubic-bezier(.175,.885,.32,1.275);box-shadow:var(--shadow-lg)}@keyframes scaleIn{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}.winner-emoji{font-size:64px;margin-bottom:16px}.winner-card h2{font-size:24px;font-weight:800;margin-bottom:4px}.winner-card h3{font-size:20px;color:var(--primary);margin-bottom:8px}.winner-card p{color:var(--text-light);font-size:14px;margin-bottom:24px}.winner-actions{display:flex;flex-direction:column;gap:10px}.winners-screen{flex:1;overflow-y:auto;padding:20px}.winners-screen h2{font-size:22px;font-weight:700;margin-bottom:16px}.winner-list-item{display:flex;align-items:center;gap:14px;background:var(--card-bg);border-radius:var(--radius-sm);padding:14px;margin-bottom:10px;box-shadow:var(--shadow)}.winner-list-thumb{width:56px;height:56px;border-radius:var(--radius-sm);background:linear-gradient(135deg,#ff6b6b22,#4ecdc422);display:flex;align-items:center;justify-content:center;font-size:28px;flex-shrink:0;overflow:hidden}.winner-list-thumb img{width:100%;height:100%;object-fit:cover}.winner-list-info{flex:1;min-width:0}.winner-list-info h4{font-size:16px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.winner-list-info p{font-size:13px;color:var(--text-light);margin-top:2px}.winner-rank{font-size:20px;font-weight:800;color:var(--primary)}.empty-state{text-align:center;padding:48px 24px;color:var(--text-light)}.empty-state .emoji{font-size:48px;margin-bottom:12px}.empty-state p{font-size:15px;line-height:1.5}.loading-screen{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px}.spinner{width:40px;height:40px;border:3px solid #eee;border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{font-size:15px;color:var(--text-light)}.status-bar{display:flex;align-items:center;justify-content:space-between;padding:8px 20px;background:var(--card-bg);border-bottom:1px solid rgba(0,0,0,.04);font-size:12px;color:var(--text-light);flex-shrink:0}.status-participants{display:flex;align-items:center;gap:4px}.status-dot{width:6px;height:6px;border-radius:50%;background:var(--success)}.done-screen{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 24px;gap:16px;text-align:center}.done-screen .emoji{font-size:64px}.done-screen h2{font-size:24px;font-weight:700}.done-screen p{color:var(--text-light);font-size:15px;max-width:260px}.back-btn{display:flex;align-items:center;gap:4px;background:none;color:var(--text-light);font-size:14px;font-weight:500;padding:4px 0}.confetti-container{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:101;overflow:hidden}.confetti-piece{position:absolute;width:10px;height:10px;top:-10px;animation:confettiFall 3s ease-in forwards}@keyframes confettiFall{0%{transform:translateY(0) rotate(0);opacity:1}to{transform:translateY(100vh) rotate(720deg);opacity:0}}.waiting-indicator{text-align:center;padding:20px;color:var(--text-light);font-size:14px}.waiting-indicator .dots{display:inline-flex;gap:4px;margin-left:4px}.waiting-indicator .dot{width:6px;height:6px;border-radius:50%;background:var(--text-muted);animation:dotPulse 1.4s infinite ease-in-out}.waiting-indicator .dot:nth-child(2){animation-delay:.2s}.waiting-indicator .dot:nth-child(3){animation-delay:.4s}@keyframes dotPulse{0%,80%,to{transform:scale(.6);opacity:.4}40%{transform:scale(1);opacity:1}}
