@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Poppins:wght@400;500;600;700;800&display=swap";.home-container{width:100%;max-width:800px;animation:fadeIn .6s ease-out;margin:0 auto}.home-card{background:transparent;padding:16px;width:100%}.search-form{display:flex;flex-direction:column;gap:24px}.unified-search-container{background:var(--bg-primary);border:1px solid rgba(0,0,0,.08);border-radius:24px;padding:24px 28px;transition:all var(--transition-normal);box-shadow:0 4px 16px #00000014;min-height:100px;width:100%;position:relative}.unified-search-container:hover{border-color:var(--primary-color);background:rgba(255,122,61,.02);box-shadow:0 6px 20px #ff7a3d1f}.search-content{display:flex;flex-direction:column;gap:16px}.restaurant-input-row{display:flex;align-items:center;gap:12px;position:relative;width:100%}.autocomplete-dropdown{border-radius:0 0 20px 20px;border-left:1px solid #ff7a3d;border-right:1px solid #ff7a3d;border-bottom:1px solid #ff7a3d;border-top:none;background:#fff;box-shadow:0 8px 24px #ff7a3d0f,0 1.5px 6px #0000000a;overflow:hidden}.unified-search-container:hover~.autocomplete-dropdown,.unified-search-container:focus-within~.autocomplete-dropdown,.autocomplete-dropdown.active{background:rgba(255,122,61,.02)}.autocomplete-suggestion{padding:14px 24px;cursor:pointer;font-size:1.1rem;color:var(--text-secondary);background:#fff8e7;transition:background .15s,color .15s;border-bottom:1px solid #f8e7d6}.autocomplete-suggestion:last-child{border-bottom:none}.autocomplete-suggestion:hover,.autocomplete-suggestion--active{background:#fff4d6;color:var(--primary-color)}.search-icon{font-size:1.3rem;color:var(--text-light);flex-shrink:0}.restaurant-input{border:none;background:transparent;font-size:1.1rem;color:var(--text-primary);padding:8px 0;outline:none;font-weight:500;width:100%}.restaurant-input::placeholder{color:var(--text-light);font-weight:400}.menu-upload-area{display:flex;align-items:center;gap:8px;padding:8px 12px;cursor:pointer;transition:all var(--transition-fast);border-radius:12px;margin:-8px -12px}.menu-upload-area:hover{background:rgba(163,197,90,.08)}.upload-icon{font-size:1.2rem;color:var(--accent-color)}.upload-text{font-size:1.1rem;color:var(--text-light);font-weight:400}.hidden-file-input{display:none}.uploaded-files{background:rgba(163,197,90,.05);border-radius:15px;padding:16px;border:1px solid rgba(163,197,90,.1)}.files-title{font-size:.9rem;font-weight:600;color:var(--text-primary);margin:0 0 12px;text-align:center}.files-list{display:flex;flex-direction:column;gap:8px}.file-item{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:white;border-radius:10px;border:1px solid rgba(0,0,0,.05)}.file-name{font-size:.9rem;color:var(--text-primary);font-weight:500;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-right:12px}.remove-file-btn{background:none;border:none;color:#ff4757;cursor:pointer;font-size:1rem;padding:4px;border-radius:50%;transition:all var(--transition-fast);width:24px;height:24px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.remove-file-btn:hover{background:rgba(255,71,87,.1);transform:scale(1.1)}.search-btn{width:100%;padding:20px 40px;background:linear-gradient(135deg,var(--primary-color) 0%,#ff6b35 100%);color:#fff;border:none;border-radius:25px;font-size:1.2rem;font-weight:600;cursor:pointer;transition:all var(--transition-normal);display:flex;align-items:center;justify-content:center;gap:12px;box-shadow:0 4px 12px #ff7a3d4d;margin-top:12px}.search-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px #ff7a3d66;background:linear-gradient(135deg,#ff6b35 0%,var(--primary-color) 100%)}.search-btn:active:not(:disabled){transform:translateY(0)}.search-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.search-icon{font-size:1.2rem}.spinner{width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-top:2px solid white;border-radius:50%;animation:spin 1s linear infinite}@media (max-width: 768px){.home-container{max-width:100%;padding:0 20px}.home-card{padding:12px}.search-form{gap:20px}.unified-search-container{padding:16px 20px;min-height:80px}.search-icon{font-size:1.1rem}.restaurant-input{font-size:1rem}.upload-text{font-size:1rem;color:var(--text-primary)}.search-btn{padding:18px 32px;font-size:1.1rem}.autocomplete-suggestion{font-size:1rem}}@media (max-width: 480px){.home-container{padding:0 16px}.home-card{padding:8px}.unified-search-container{padding:14px 16px;min-height:75px}.search-icon{font-size:1rem}.restaurant-input{font-size:.95rem}.upload-text{font-size:.95rem;color:var(--text-light)}.search-btn{padding:16px 28px;font-size:1rem}.file-item{padding:6px 10px}.file-name{font-size:.85rem}.autocomplete-suggestion{font-size:.95rem}}.search-icon,.upload-icon{display:inline-flex;width:2em;justify-content:center;align-items:center}.loading-card{background:var(--bg-primary);border-radius:25px;padding:40px 24px;text-align:center;box-shadow:0 4px 16px #0000001a;margin:0 16px}.loading-spinner{width:50px;height:50px;border:3px solid var(--border-light);border-top:3px solid var(--primary-color);border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 24px}.loading-card h3{font-size:1.3rem;color:var(--text-primary);margin-bottom:12px}.loading-card p{color:var(--text-secondary);font-size:1rem}.recommendation-header{background:var(--bg-primary);border-radius:25px;padding:24px;box-shadow:0 4px 16px #0000001a;margin:0 16px 20px}.restaurant-info{text-align:center}.restaurant-info h2{font-family:Poppins,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:1.5rem;color:var(--text-primary);margin-bottom:12px;font-weight:600}.restaurant-details{margin-bottom:16px}.cuisine-type{margin-bottom:12px;display:flex;justify-content:center;align-items:center;gap:8px;flex-wrap:wrap}.cuisine-badge{background:var(--accent-color);color:#fff;padding:6px 16px;border-radius:20px;font-size:.85rem;font-weight:500;display:inline-block}.data-source-badge{background:var(--secondary-color);color:var(--text-primary);padding:4px 12px;border-radius:15px;font-size:.75rem;font-weight:600;display:inline-block}.data-source-badge.enhanced,.data-source-badge.gpt-only{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff}.data-source-badge.google-only{background:linear-gradient(135deg,#4285f4 0%,#34a853 100%);color:#fff}.data-source-badge.user-input{background:linear-gradient(135deg,#fbbc04 0%,#ea4335 100%);color:#fff}.dish-rating{display:flex;align-items:center;gap:4px}.rating-stars{color:#ffc107;font-size:.9rem}.rating-text{font-size:.8rem;color:#6c757d;font-weight:500}.ratings-row{display:flex;justify-content:center;gap:24px;flex-wrap:wrap;margin-bottom:12px}.rating-item{display:flex;flex-direction:column;align-items:center;gap:4px}.rating-platform{font-size:.8rem;color:#6c757d;font-weight:500}.rating-score{font-size:.9rem;color:#2c3e50;font-weight:600}.review-count{font-size:.75rem;color:#6c757d;font-style:italic}.recommendation-footer{background:white;border-radius:20px;padding:24px;text-align:center;box-shadow:0 4px 12px #0000001a;margin:0 20px 20px}.new-search-btn{background:linear-gradient(135deg,#ff7a3d 0%,#ff6b35 100%);color:#fff;padding:16px 32px;border-radius:25px;font-size:1.1rem;font-weight:600;border:none;cursor:pointer;box-shadow:0 4px 12px #ff7a3d4d;transition:all .3s ease;margin-bottom:16px}.new-search-btn:hover{transform:translateY(-2px);box-shadow:0 6px 16px #ff7a3d66;background:linear-gradient(135deg,#ff6b35 0%,#ff7a3d 100%)}.disclaimer{color:#6c757d;font-size:.85rem;font-style:italic;margin:0}.dish-meta{display:flex;justify-content:space-between;align-items:center;margin:16px 0;padding:12px 0;border-top:1px solid #e9ecef;border-bottom:1px solid #e9ecef}.dish-price{display:flex;justify-content:space-between;align-items:center;width:100%}.price-label{font-size:.8rem;color:#6c757d;text-transform:uppercase;letter-spacing:.5px}.price-value{font-size:1.4rem;font-weight:700;color:#27ae60}.dish-rating{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.rating-stars{font-size:1rem;line-height:1}.rating-text{font-size:.8rem;color:var(--text-secondary);font-weight:500}.recommendation-reason{margin-top:8px;padding:6px 10px;background:#f8f9fa;border-radius:6px;font-size:.8rem;color:#495057;display:flex;align-items:center;gap:4px;line-height:1.3}.reason-icon{font-size:.9rem;flex-shrink:0}.recommendation-reason{margin-top:16px;padding:12px 16px;background:#f8f9fa;border-radius:12px;font-size:.9rem;color:#495057;display:flex;align-items:center;gap:8px;line-height:1.4;border-left:4px solid #ffc107}.reason-icon{font-size:1.1rem;flex-shrink:0}.review-highlight{margin-top:12px;padding:12px 16px;background:linear-gradient(135deg,#e3f2fd 0%,#bbdefb 100%);border-radius:12px;border-left:4px solid #2196f3;display:flex;align-items:center;gap:8px}.highlight-icon{font-size:1rem;flex-shrink:0}.highlight-text{font-size:.9rem;color:#1565c0;font-weight:500;font-style:italic;line-height:1.4}.dish-rank{position:absolute;top:-18px;left:8px;background:linear-gradient(135deg,#ff7a3d 0%,#ff6b35 100%);color:#fff;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.8rem;box-shadow:0 2px 8px #ff7a3d4d;z-index:2}.recommendation-header,.recommendations-grid,.recommendation-footer,.loading-card{max-width:420px;margin-left:auto;margin-right:auto;padding-left:32px;padding-right:32px}.recommendation-header{padding-top:24px;padding-bottom:24px}.recommendations-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:32px;padding-left:0;padding-right:0}.recommendation-footer{padding-top:24px;padding-bottom:24px}.loading-card{padding-top:40px;padding-bottom:40px}.dish-card{background:white;border-radius:20px;padding:38px 24px 24px;box-shadow:0 4px 12px #0000001a;transition:transform .2s ease,box-shadow .2s ease;position:relative;display:flex;flex-direction:column;height:fit-content}.dish-card:hover{transform:translateY(-3px);box-shadow:0 6px 20px #00000026}@media (max-width: 1024px){.recommendations-grid{grid-template-columns:repeat(2,1fr);gap:16px}}@media (max-width: 768px){.recommendations-grid{grid-template-columns:1fr;gap:16px;padding:0 16px}.dish-card{padding:20px}.dish-name,.price-value{font-size:1.2rem}.restaurant-info h2{font-size:1.5rem}.cuisine-badge{font-size:.8rem;padding:6px 12px}}.restaurant-additional-info{display:flex;flex-direction:column;gap:8px;margin-top:12px}.info-item{display:flex;align-items:center;gap:8px;justify-content:center}.info-label{font-size:1rem}.info-value{font-size:.9rem;color:#2c3e50;font-weight:500}.dish-image-placeholder{width:100%;height:120px;background:#f8f9fa;border-radius:12px;margin-bottom:16px;position:relative;overflow:hidden}.restaurant-photo{width:100%;height:100%;object-fit:cover;border-radius:12px}.placeholder-content{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px}.image-icon{font-size:2rem;color:#6c757d}.image-text{font-size:.8rem;color:#6c757d;font-weight:500}.dish-content{flex:1;display:flex;flex-direction:column}.dish-name{font-size:1.8rem;font-weight:600;color:#2c3e50;margin-bottom:0;line-height:1.3}.restaurant-info p{color:#6c757d;font-size:1rem;margin:0}.recommendation-container{width:100%;max-width:420px;animation:fadeIn .8s ease-out;margin:0 auto;padding:20px 0}@media (max-width: 768px){.recommendation-container{max-width:100%;padding:16px}.recommendation-header{margin:0 0 20px}.recommendations-grid{margin-bottom:20px}.recommendation-footer{margin:0 0 20px}.dish-image-placeholder{height:100px}.dish-name{font-size:1.2rem}}@media (max-width: 480px){.recommendation-container{padding:12px}.recommendation-header{margin:0 0 16px}.recommendations-grid{margin-bottom:16px;padding:0}.recommendation-footer{margin:0 0 16px}.dish-image-placeholder{height:80px}.dish-name{font-size:1.1rem}.info-item{font-size:.9rem}.dish-card{padding:16px}.restaurant-info h2{font-size:1.3rem}.cuisine-badge{font-size:.75rem;padding:4px 8px}.ratings-row{gap:16px}.rating-platform{font-size:.7rem}.rating-score{font-size:.8rem}}.App{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--bg-secondary);padding:20px}.app-header{background:transparent;padding:0 0 24px}.app-title{font-family:Poppins,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:2.2rem;font-weight:700;font-style:italic;color:var(--text-primary);text-align:center;margin-bottom:4px;letter-spacing:-.02em}.app-subtitle{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:1rem;color:var(--text-secondary);text-align:center;font-weight:400;margin:0;opacity:.7}.app-main{display:flex;align-items:center;justify-content:center;padding:0}@keyframes badgeFadeIn{0%{opacity:0;transform:translateY(-24px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.user-tokens-badge{position:fixed;top:18px;right:18px;background:#fffbe6;color:#e67e22;border-radius:18px;padding:4px 12px;font-size:.98rem;font-weight:600;box-shadow:0 4px 16px #00000021,0 1.5px 4px #e67e2212;display:flex;align-items:center;gap:6px;z-index:1000;transition:box-shadow .2s,transform .2s;animation:badgeFadeIn .7s cubic-bezier(.23,1,.32,1)}.user-tokens-badge:hover{box-shadow:0 8px 24px #0000002e,0 2px 8px #e67e221a;transform:translateY(-2px) scale(1.04)}.clue-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.18);z-index:2000;display:flex;align-items:center;justify-content:center;animation:fadeIn .2s}.clue-modal{background:#fffbe6;border-radius:18px;box-shadow:0 8px 32px #0000002e;padding:28px 16px 20px;min-width:240px;max-width:340px;margin-left:auto;margin-right:auto;position:relative;display:flex;flex-direction:column;align-items:center;animation:badgeFadeIn .3s}.clue-modal h2{margin:0 0 12px;font-size:1.3rem;color:#e67e22;font-weight:700}.clue-modal p{color:#222;font-size:1.05rem;margin:0 0 8px;text-align:center}.clue-modal-close{position:absolute;top:12px;right:16px;background:none;border:none;font-size:1.6rem;color:#e67e22;cursor:pointer;font-weight:700;transition:color .15s}.clue-modal-close:hover{color:#ff7a3d}.clue-options-list{display:flex;flex-direction:column;gap:18px;margin-top:18px;width:100%}.clue-option-card{display:flex;align-items:center;background:#fff;border-radius:14px;box-shadow:0 2px 10px #e67e2212;padding:18px 20px;gap:18px;transition:box-shadow .18s,transform .18s;cursor:pointer;border:1.5px solid #ffe0a3;position:relative}.clue-option-card:hover{box-shadow:0 6px 20px #e67e2221;transform:translateY(-2px) scale(1.02)}.clue-option-icon{font-size:2rem;margin-right:6px}.clue-option-main{flex:1;display:flex;flex-direction:column;gap:2px}.clue-option-title-row{display:flex;align-items:center;gap:10px;font-weight:600;font-size:1.08rem}.clue-option-name{color:#e67e22}.clue-option-badge{background:#fffbe6;color:#e67e22;border-radius:10px;padding:2px 10px;font-size:.98rem;font-weight:500;margin-left:2px}.clue-option-desc{color:#222;font-size:.98rem;opacity:.85;margin-top:2px}.clue-option-price{font-size:1.08rem;font-weight:700;color:#e67e22;margin-left:12px;white-space:nowrap}.clue-option-sub{position:absolute;right:20px;bottom:8px;font-size:.92rem;color:#888;font-style:italic}@media (max-width: 768px){.App{padding:16px}.app-title{font-size:2rem}.app-subtitle{font-size:1rem}.app-header{padding:0 0 20px}}@media (max-width: 480px){.App{padding:12px}.app-title{font-size:1.8rem}.app-header{padding:0 0 16px}}@media (max-width: 600px){.clue-modal{min-width:0;width:96vw;max-width:96vw;padding:12px 2vw;border-radius:12px;margin-left:18px;margin-right:18px}.clue-options-list{gap:12px;margin-top:10px}.clue-option-card{flex-direction:row;padding:14px 10px;gap:10px;border-radius:10px;font-size:1rem}.clue-option-icon{font-size:1.5rem;margin-right:4px}.clue-option-title-row{font-size:1rem;gap:6px}.clue-option-badge{font-size:.92rem;padding:2px 7px}.clue-option-desc{font-size:.85rem;font-style:italic}.clue-option-price{font-size:1rem;margin-left:6px}.clue-option-sub{right:10px;bottom:4px;font-size:.85rem}.clue-modal-close{top:6px;right:10px;font-size:1.3rem}}:root{--primary-color: #FF7A3D;--primary-light: #FFB347;--primary-dark: #E6632A;--secondary-color: #FFC94A;--accent-color: #A3C55A;--success-color: #A3C55A;--warning-color: #FFB347;--error-color: #e74c3c;--text-primary: #2E2E2E;--text-secondary: #6B6B6B;--text-light: #A8A8A8;--bg-primary: #ffffff;--bg-secondary: #FFF8E7;--bg-accent: #FFF4D6;--border-color: #E8D5B7;--border-light: #F0E4C7;--shadow-sm: 0 2px 4px rgba(0, 0, 0, .1);--shadow-md: 0 4px 6px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px rgba(0, 0, 0, .15);--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--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{min-height:100%;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 0%,#764ba2 100%);color:#333;overflow-x:hidden}#root{min-height:100%;display:flex;flex-direction:column}a{color:inherit;text-decoration:none}button{cursor:pointer;border:none;outline:none;font-family:inherit;transition:all .3s ease}input,textarea{font-family:inherit;border:none;outline:none;background:transparent}.text-center{text-align:center}.flex{display:flex}.flex-center{display:flex;align-items:center;justify-content:center}.flex-column{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.w-full{width:100%}.h-full{height:100%}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.top-0{top:0}.left-0{left:0}.right-0{right:0}.bottom-0{bottom:0}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}@media (max-width: 768px){.hidden-mobile{display:none!important}}@media (min-width: 769px){.hidden-desktop{display:none!important}}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes bounce{0%,20%,53%,80%,to{transform:translateZ(0)}40%,43%{transform:translate3d(0,-30px,0)}70%{transform:translate3d(0,-15px,0)}90%{transform:translate3d(0,-4px,0)}}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-10px)}20%,40%,60%,80%{transform:translate(10px)}}@media (max-width: 480px){html{font-size:14px}}@media (max-width: 768px){html{font-size:15px}}@media (min-width: 1200px){html{font-size:17px}}
