*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}body{margin:0;font-family:'Roboto', sans-serif;background-color:#f5f5f5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;padding-bottom:70px;position:relative}.container{width:100%;margin:0 auto;background-color:#fff;box-shadow:0 0 10px rgba(0,0,0,0.1);overflow:hidden;padding:16px;max-width:800px}.container[data-controller="restaurants"]{padding:0}.container[data-controller="restaurants"] h1,.container[data-controller="restaurants"] .filter-nav,.container[data-controller="restaurants"] .results-container{padding-left:16px;padding-right:16px}.container[data-controller="restaurants"] h1{padding-top:16px}.container[data-controller="restaurants"] .results-container{padding-bottom:16px}.container[data-controller="dishes"]{padding:0}.container[data-controller="dishes"] .content{padding:16px}@media (min-width: 768px){.container{margin-bottom:24px;border-radius:8px}}h1,h2,h3,h4,h5,h6{margin:0;font-weight:500;line-height:1.2}.turbo-progress-bar{background-color:#29d;height:2px}#map{width:100%;height:400px;margin-bottom:24px;border-radius:8px;overflow:hidden}.restaurant-pin{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background-color:#2196f3;color:white;border-radius:50%;font-size:14px;font-weight:500;box-shadow:0 2px 4px rgba(0,0,0,0.2);cursor:pointer;transition:transform 0.2s ease, background-color 0.2s ease}.restaurant-pin:hover{transform:scale(1.1);background-color:#1976d2}.restaurant-pin.active{background-color:#f44336;transform:scale(1.1)}.restaurant-list{list-style:none;padding:0;margin:0}.restaurant-list li{padding:12px 16px;border-bottom:1px solid #eee;transition:background-color 0.2s ease}.restaurant-list li:hover{background-color:#f5f5f5}.restaurant-list li a{color:#333;text-decoration:none;display:block}.restaurant-list li a:hover{color:#2196f3}.filter-nav{margin:16px 0;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none}.filter-nav::-webkit-scrollbar{display:none}.filter-nav ul{display:flex;gap:8px;padding:10px;margin:0;list-style:none}.filter-nav li{flex-shrink:0}.filter-nav a{display:inline-block;padding:8px 16px;border-radius:20px;background-color:#f5f5f5;color:#333;text-decoration:none;transition:all 0.2s ease}.filter-nav a:hover{background-color:#e0e0e0}.filter-nav a.selected{background-color:#2196f3;color:white}.map-container{margin-bottom:16px}@media (min-width: 768px){.map-container{margin:0;margin-bottom:24px}}.site-header{padding:16px}.site-header .container{max-width:300px;margin:0 auto;background:white;padding:16px;border-radius:8px;box-shadow:0 2px 4px rgba(0,0,0,0.1)}.site-header h1{font-size:28px;font-weight:700;color:#333;margin:0 auto;text-align:left;max-width:800px}.site-header h1 a{color:inherit;text-decoration:none}.site-header h1 a:hover{color:#2196f3}.disclaimer-footer{position:fixed;bottom:0;left:0;right:0;background:rgba(255,255,255,0.9);backdrop-filter:blur(5px);text-align:center;padding:8px 16px;color:#666;font-size:12px;box-shadow:0 -2px 10px rgba(0,0,0,0.05);z-index:100}.disclaimer-footer .container{max-width:800px;margin:0 auto}.disclaimer-footer p{margin:0}.disclaimer-footer p:not(:last-child){margin-bottom:4px}.disclaimer-footer a{color:inherit;text-decoration:underline}.disclaimer-footer a:hover{color:#2196f3}.header-image{width:100%;height:250px;overflow:hidden}.header-image img{width:100%;height:100%;object-fit:cover;display:block}.content{padding:16px}.restaurant-name{font-size:28px;font-weight:700;margin-bottom:8px}.restaurant-meta{display:flex;align-items:center;font-size:16px;color:#555;margin-bottom:16px}.restaurant-meta .rating{display:flex;align-items:center;margin-right:16px}.restaurant-meta .rating .icon{margin-right:4px;color:#ffc107}.restaurant-meta .address{display:flex;align-items:center}.restaurant-meta .address .icon{margin-right:4px;color:#555}.restaurant-meta .address .address-link{color:inherit;text-decoration:none;transition:color 0.2s ease}.restaurant-meta .address .address-link:hover{color:#2196f3}.main-tags{display:flex;gap:8px;margin-bottom:24px;flex-wrap:wrap}.main-tags .tag{display:flex;align-items:center;padding:8px 12px;background-color:#e0f2f7;border-radius:20px;font-size:14px;color:#333}.main-tags .tag .icon{margin-right:4px;color:#2e7d32}.section-title{font-size:20px;font-weight:500;margin-bottom:16px;padding-bottom:8px;display:flex;justify-content:space-between;align-items:center}.section-title .menu-link{font-size:14px;color:#2196f3;text-decoration:none}.section-title .menu-link:hover{text-decoration:underline}@media (min-width: 768px){.container{margin-bottom:24px;border-radius:8px}.header-image{height:300px}}@media (min-width: 1024px){.header-image{height:350px}}.dish-list{display:flex;flex-direction:column;gap:16px}.dish-item{display:flex;border:1px solid #eee;border-radius:8px;padding:12px;background-color:#fff;transition:box-shadow 0.2s ease-in-out}.dish-item:hover{box-shadow:0 2px 8px rgba(0,0,0,0.1)}.dish-image{width:90px;height:90px;margin-right:12px;flex-shrink:0}.dish-image img{width:100%;height:100%;object-fit:cover;border-radius:6px}.dish-details{flex-grow:1;display:flex;flex-direction:column;min-width:0}.dish-title{font-size:18px;font-weight:500;margin-bottom:4px;color:#333}.dish-description{font-size:14px;color:#666;margin-bottom:8px;line-height:1.4}.dish-tags{display:flex;flex-wrap:wrap;gap:6px;margin-right:24px;position:relative}.dish-tag{display:inline-flex;align-items:center;padding:4px 8px;border-radius:12px;font-size:12px;white-space:nowrap}.dish-tag.dietary{background-color:#e8f5e9;color:#2e7d32}.dish-tag.meal-type{background-color:#fff3e0;color:#e65100}.dish-tag.category{background-color:#f3e5f5;color:#6a1b9a}.dish-tag.allergen{background-color:#ffebee;color:#c62828}.dish-tag.ingredient{background-color:#e3f2fd;color:#1565c0}.dietary-label-flag{position:absolute;right:-24px;top:0;cursor:pointer;opacity:0.6;transition:opacity 0.2s ease}.dietary-label-flag:hover{opacity:1}.dietary-label-flag .flag-i{font-size:16px}.dietary-label-flag .flag-ty{display:none;position:absolute;right:24px;top:0;white-space:nowrap;background:#333;color:white;padding:4px 8px;border-radius:4px;font-size:12px}.dietary-label-flag.thanked .flag-i{display:none}.dietary-label-flag.thanked .flag-ty{display:block}@media (min-width: 768px){.dish-item{padding:16px}.dish-image{width:120px;height:120px;margin-right:16px}.dish-title{font-size:20px}.dish-description{font-size:15px}}
