.languageSelector{position:fixed;top:20px;right:20px;z-index:10001}.languageSelectorButton{display:flex;align-items:center;gap:6px;padding:6px 12px;background:#fff;border:2px solid #e5e7eb;border-radius:10px;box-shadow:0 2px 8px #0000001a;font-size:13px;font-weight:600;color:#1f2937;cursor:pointer;transition:all .2s ease;min-width:100px}.languageSelectorButton:hover{background:#f9fafb;border-color:#d1d5db;box-shadow:0 4px 12px #0000001f;transform:translateY(-1px)}.languageSelectorButton:active{transform:translateY(0)}.languageFlag{font-size:16px;line-height:1}.languageLabel{flex:1;text-align:left;font-size:12px;font-weight:700;letter-spacing:.3px}.languageArrow{font-size:8px;color:#6b7280;transition:transform .2s ease}.languageArrow.open{transform:rotate(180deg)}.languageDropdown{position:absolute;top:calc(100% + 6px);right:0;min-width:140px;background:#fff;border:2px solid #e5e7eb;border-radius:10px;box-shadow:0 6px 20px #0000001f;overflow:hidden;animation:slideDown .2s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.languageOption{display:flex;align-items:center;gap:8px;width:100%;padding:10px 12px;background:#fff;border:none;border-bottom:1px solid #f3f4f6;font-size:13px;color:#1f2937;text-align:left;cursor:pointer;transition:background .15s ease}.languageOption:last-child{border-bottom:none}.languageOption:hover{background:#f9fafb}.languageOption.active{background:#eff6ff;color:#2563eb;font-weight:600}.languageOption .languageFlag{font-size:16px}.languageOption .languageLabel{flex:1;font-size:13px}.languageCheck{font-size:14px;color:#2563eb;font-weight:700}@media (max-width: 768px){.languageSelector{top:12px;right:12px}.languageSelectorButton{padding:5px 10px;min-width:85px;border-radius:8px}.languageFlag{font-size:14px}.languageLabel{font-size:11px}.languageArrow{font-size:7px}.languageDropdown{min-width:120px;border-radius:8px}.languageOption{padding:8px 10px;font-size:12px}.languageOption .languageFlag{font-size:14px}.languageOption .languageLabel,.languageCheck{font-size:12px}}@media (prefers-color-scheme: dark){.languageSelectorButton{background:#1f2937;border-color:#374151;color:#f9fafb}.languageSelectorButton:hover{background:#374151;border-color:#4b5563}.languageDropdown{background:#1f2937;border-color:#374151}.languageOption{background:#1f2937;color:#f9fafb;border-bottom-color:#374151}.languageOption:hover{background:#374151}.languageOption.active{background:#1e3a8a;color:#93c5fd}}html,body,#root{height:100%;margin:0;padding:0}*{box-sizing:border-box}.app{position:relative;width:100%;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}.page{flex:1;position:relative;display:flex;flex-direction:column}.map{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0}.header{position:relative;z-index:50;background:linear-gradient(90deg,#7c3aed,#6d28d9);color:#fff;padding:16px 24px;box-shadow:0 4px 12px #00000026}.header .headerContent{display:flex;align-items:center;gap:16px}.header h1{margin:0;font-size:22px;font-weight:700;display:flex;align-items:center;gap:8px}.header p{margin:0;font-size:13px;opacity:.9}@media (max-width: 768px){.header{padding:12px 16px}.header .headerContent{flex-direction:column;align-items:flex-start;gap:4px}.header h1{font-size:18px}.header p{font-size:12px}}.searchBar{position:absolute;top:70px;left:20px;z-index:40;width:380px;max-width:calc(100vw - 40px)}.searchBar form{display:flex;gap:8px;background:#fff;padding:8px;border-radius:12px;box-shadow:0 4px 16px #00000026}.searchBar input{flex:1;padding:12px 16px;border:1px solid #e5e7eb;border-radius:8px;font-size:15px;outline:none;transition:border-color .2s ease}.searchBar input:focus{border-color:#7c3aed}.searchBar button{display:flex;align-items:center;gap:6px;padding:12px 20px;background:#7c3aed;color:#fff;border:none;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .2s ease}.searchBar button:hover{background:#6d28d9;transform:translateY(-1px)}.searchBar button:active{transform:translateY(0)}.searchCount{display:block;margin-top:4px;padding:0 2px;font-size:13px;color:#6b7280;font-weight:500}.resultListOverlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:60;display:flex;align-items:center;justify-content:center;padding:10px}.resultList{background:#fff;border-radius:16px;max-width:600px;width:100%;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 20px 40px #0000004d}.resultHeader{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid #e5e7eb;flex-shrink:0}.resultHeaderTitle{display:flex;align-items:center;gap:12px}.resultHeader strong{font-size:16px;font-weight:700;color:#1f2937}.resultCount{font-size:14px;font-weight:400;color:#1f2937}.countNumber{color:#9ca3af}.resultHeader button{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;font-size:28px;color:#6b7280;cursor:pointer;border-radius:6px;transition:background .2s}.resultHeader button:hover{background:#f3f4f6}.resultItems{overflow-y:auto;padding:8px;flex:1}.resultItem{padding:12px;border-radius:12px;margin-bottom:6px;cursor:pointer;background:#fff;border:1px solid #e5e7eb;transition:all .2s ease}.resultItem:last-child{margin-bottom:0}.resultItem:hover{border-color:#7c3aed;box-shadow:0 4px 8px #7c3aed1a;transform:translateY(-2px)}.resultTitle{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;gap:8px}.titleLeft{display:flex;align-items:center;gap:10px;flex-wrap:wrap;flex:1}.restaurantName{font-size:15px;font-weight:500;color:#1f2937}.chefInfo{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.chefName{font-size:13px;font-weight:300;color:#9ca3af}.nicknameBox{display:inline-block;padding:3px 8px;background:#f3f4f6;color:#6b7280;border-radius:10px;font-size:11px;font-weight:500}.stoneIcon{font-size:15px;line-height:1;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;margin-left:4px}.stoneIcon.black{filter:drop-shadow(0 1px 2px rgba(0,0,0,.3))}.stoneIcon.white{filter:drop-shadow(0 1px 2px rgba(0,0,0,.2))}.resultMeta{display:flex;gap:4px;flex-wrap:wrap;margin-top:6px;margin-bottom:6px}.badge{display:inline-block;padding:3px 8px;border-radius:10px;font-size:11px;font-weight:500;background:#f3f4f6;color:#6b7280}.badge.blue{background:#dbeafe;color:#1e40af}.badge.michelin{background:linear-gradient(135deg,#d4af37,#f4e5a1);color:#2c1810;font-weight:600;border:1px solid #c9a82e}.resultAddress{display:flex;align-items:center;gap:4px;font-size:12px;color:#6b7280;margin-top:6px}.resultAddress svg{flex-shrink:0;color:#9ca3af}.resultItems::-webkit-scrollbar{width:6px}.resultItems::-webkit-scrollbar-track{background:#f3f4f6;border-radius:3px}.resultItems::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px}.resultItems::-webkit-scrollbar-thumb:hover{background:#9ca3af}.filterPanel{position:absolute!important;top:170px!important;left:20px!important;width:380px!important;max-width:calc(100vw - 40px)!important;background:#fff;border-radius:12px;box-shadow:0 4px 16px #00000026;z-index:30;transition:all .3s cubic-bezier(.4,0,.2,1);padding:14px!important}.filterPanel.expanded{max-height:none!important;overflow:visible!important}.filterPanel.collapsed{max-height:50px!important;overflow:hidden!important}.filterHeader{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px!important}.filterPanel h3{margin:0;font-size:14px!important;font-weight:700;color:#1f2937}.toggleButton{display:flex;align-items:center;gap:3px;padding:4px 8px!important;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:6px;cursor:pointer;font-size:11px!important;font-weight:500;color:#6b7280;transition:all .2s ease;white-space:nowrap}.toggleButton svg{width:12px!important;height:12px!important;flex-shrink:0}.filterGrid{display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px 12px!important}.filterSection h4{margin:0 0 6px!important;font-size:12px!important;font-weight:600;color:#1f2937;padding-bottom:4px;border-bottom:2px solid #7c3aed;display:flex;align-items:center;gap:3px}.filterOptions{display:flex;flex-direction:column;gap:3px!important}.filterOption{display:flex;align-items:center;gap:5px!important;padding:3px 4px!important;border-radius:4px;transition:background .2s ease}.filterOption:hover{background:#f3f4f6}.filterOption input[type=checkbox]{width:14px!important;height:14px!important;accent-color:#7c3aed;cursor:pointer;flex-shrink:0}.filterOption label{font-size:11px!important;color:#374151;cursor:pointer;-webkit-user-select:none;user-select:none;flex:1;line-height:1.2}.filterOption input:checked+label{color:#1f2937;font-weight:500}.filterCount{color:#9ca3af;font-size:.85em;margin-left:2px;font-weight:400}.filterOption input:checked+label .filterCount{color:#7c3aed;font-weight:600}.legend{position:absolute;bottom:20px;right:20px;z-index:30;background:#fff;border-radius:12px;padding:16px;box-shadow:0 4px 16px #00000026}.legend h4{margin:0 0 12px;font-size:14px;font-weight:600;color:#1f2937}.legendItem{display:flex;align-items:center;gap:8px;margin:8px 0;font-size:13px;color:#374151}.legendIcon{width:20px;height:20px;border-radius:50%;border:2px solid #374151;flex-shrink:0}@media (max-width: 768px){.header{padding:12px 16px}.header h1{font-size:18px}.header p{font-size:12px}.searchBar{top:80px;left:10px;width:calc(100% - 20px);max-width:calc(100vw - 20px)}.searchBar form{display:flex;flex-direction:row;gap:8px}.searchBar input{font-size:14px;padding:10px 14px}.searchBar button{padding:10px 16px;font-size:14px}.searchCount{font-size:12px}.resultListOverlay{padding:5px}.resultList{width:100%;max-height:95vh;border-radius:12px}.resultHeader{padding:10px 12px}.resultHeaderTitle{gap:10px}.resultHeader strong{font-size:15px}.resultCount{font-size:13px}.resultItems{padding:6px}.resultItem{padding:10px;margin-bottom:4px}.titleLeft{gap:8px}.restaurantName{font-size:14px}.chefName{font-size:12px}.nicknameBox{font-size:10px;padding:2px 6px}.stoneIcon{font-size:14px;margin-left:3px}.badge{font-size:10px;padding:2px 6px}.resultAddress{font-size:11px}.filterPanel{top:auto!important;bottom:0!important;left:0!important;right:0!important;width:100%!important;border-radius:20px 20px 0 0;max-width:none!important}.filterPanel.expanded{max-height:60vh!important;overflow-y:auto!important;padding:16px!important}.filterPanel.collapsed{max-height:70px!important;padding:16px!important}.filterGrid{grid-template-columns:1fr!important;gap:16px!important}.filterPanel.expanded::-webkit-scrollbar{width:6px}.filterPanel.expanded::-webkit-scrollbar-track{background:#f3f4f6;border-radius:3px}.filterPanel.expanded::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px}.filterPanel.expanded::-webkit-scrollbar-thumb:hover{background:#9ca3af}.legend{bottom:10px;right:10px;padding:12px}}@media (max-width: 480px){.searchBar{top:70px}.searchBar input{padding:10px 12px;font-size:13px}.searchBar button{padding:10px 14px;font-size:13px;gap:4px}.searchBar button svg{width:16px;height:16px}.resultList{max-height:97vh}.filterPanel.expanded{max-height:65vh!important}}.toggleButton:focus-visible,.searchBar button:focus-visible{outline:2px solid #7c3aed;outline-offset:2px}.filterOption input:focus-visible,.searchBar input:focus-visible{outline:2px solid #7c3aed;outline-offset:2px}.filterSection h4{display:flex;align-items:center;gap:8px}.selectAll{cursor:pointer}.filterHeader{position:relative;z-index:5}html,body,#root{height:100%;margin:0}.app{min-height:100svh;display:flex;flex-direction:column}.footer{font-size:10px;text-align:center;color:#9ca3af;padding:16px 0}.footer a{color:inherit;opacity:.7;text-decoration:none}.footer a:hover{opacity:1}@media (max-width: 768px){.footer--mobile-float{position:fixed;left:50%;transform:translate(-50%);bottom:72px;z-index:10;padding:4px 8px;border-radius:10px;font-size:8px;box-shadow:0 6px 18px #0000001f}}.card{background:#fff;border-radius:14px;box-shadow:0 12px 30px #0000002e;padding:16px}.searchBarWrapper{position:absolute;top:110px;left:24px;z-index:40;width:440px;max-width:calc(100vw - 48px)}.searchBarCard{display:flex;align-items:center;gap:12px;background:#fff;padding:18px 20px;border-radius:18px;box-shadow:0 20px 40px #00000026}.searchBarCard input{flex:1;border:none;outline:none;font-size:16px}.searchBarCard input::placeholder{color:#9ca3af}.searchBarCard input:focus{outline:none}.searchBarCard button{display:flex;align-items:center;gap:6px;background:#7c3aed;color:#fff;border:none;padding:10px 18px;border-radius:14px;font-size:15px;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .2s ease}.searchBarCard button:hover{background:#6d28d9;transform:translateY(-1px)}.searchBarCard button:active{transform:translateY(0)}.searchCount{margin-top:10px;padding:0 20px;font-size:14px;color:#4b5563;font-weight:500}.filterPanel{position:absolute;top:230px;left:24px;z-index:30;width:440px;max-width:calc(100vw - 48px);transition:all .3s cubic-bezier(.4,0,.2,1)}.filterPanel.expanded{max-height:calc(100vh - 250px);overflow-y:auto}.filterPanel.collapsed{max-height:70px;overflow:hidden}.filterHeader{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.filterPanel.collapsed .filterHeader{margin-bottom:0}.filterPanel h3{margin:0;font-size:16px;font-weight:700;color:#1f2937}.toggleButton{display:flex;align-items:center;gap:4px;padding:6px 12px;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:8px;cursor:pointer;font-size:13px;font-weight:500;color:#6b7280;transition:all .2s ease;white-space:nowrap}.toggleButton:hover{background:#e5e7eb;border-color:#d1d5db;transform:translateY(-1px)}.toggleButton:active{transform:translateY(0)}.toggleButton svg{width:16px;height:16px;flex-shrink:0}.filterGrid{display:grid;grid-template-columns:1fr 1fr;gap:28px}.filterSection{display:flex;flex-direction:column}.filterTitle{font-size:15px;font-weight:700;margin-bottom:14px;padding-bottom:6px;border-bottom:3px solid #7c3aed}.filterList{display:flex;flex-direction:column;gap:10px}.filterItem{display:flex;align-items:center;gap:10px;font-size:14px;padding:6px 8px;border-radius:6px;transition:background .2s ease}.filterItem:hover{background:#f3f4f6}.filterItem input{width:18px;height:18px;accent-color:#7c3aed;cursor:pointer}.filterItem label{cursor:pointer;-webkit-user-select:none;user-select:none;flex:1}.filterCount{color:#9ca3af;font-size:.85em;margin-left:4px;font-weight:400}.filterItem input:checked+label{color:#1f2937;font-weight:500}.filterItem input:checked+label .filterCount{color:#7c3aed;font-weight:600}.filterPanel.expanded::-webkit-scrollbar{width:6px}.filterPanel.expanded::-webkit-scrollbar-track{background:#f3f4f6;border-radius:3px}.filterPanel.expanded::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px}.filterPanel.expanded::-webkit-scrollbar-thumb:hover{background:#9ca3af}.resultList{position:absolute;top:90px;right:20px;z-index:40;width:360px;max-height:70vh;overflow-y:auto}.resultHeader{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.resultHeader button{background:none;border:none;font-size:18px;cursor:pointer}.resultItem{padding:12px 10px;cursor:pointer;border-bottom:1px solid #eee;transition:all .2s ease}.resultItem:hover{background:#f5f3ff;transform:translate(-4px)}.resultTitle{display:flex;justify-content:space-between;font-weight:600}.resultMeta{display:flex;gap:6px;margin:6px 0}.resultAddress{display:flex;gap:6px;font-size:12px;color:#555}.detailCard{position:absolute;bottom:20px;left:50%;transform:translate(-50%);z-index:50;width:90%;max-width:420px}.detailHeader{display:flex;justify-content:space-between;font-size:16px;font-weight:600}.detailMeta{display:flex;gap:6px;margin:8px 0}.detailAddress{display:flex;gap:6px;font-size:13px;color:#444}.detailClose{margin-top:12px;width:100%;padding:10px;background:#7c3aed;color:#fff;border:none;border-radius:10px;cursor:pointer;font-weight:600;transition:all .2s ease}.detailClose:hover{background:#6d28d9;transform:translateY(-2px)}.detailClose:active{transform:translateY(0)}.legend{position:absolute;bottom:20px;right:20px;z-index:30;font-size:13px}.legend h4{margin:0 0 10px;font-size:14px;font-weight:600;color:#1f2937}.legend ul{list-style:none;padding:0;margin:10px 0 0}.legend li{display:flex;align-items:center;gap:8px;font-size:13px;margin-bottom:6px}.dot{width:14px;height:14px;border-radius:50%;display:inline-block;flex-shrink:0}.dot.gold{background:#d4af37}.dot.orange{background:#f59e0b}.dot.red{background:#ef4444}.dot.pink{background:#ec4899}.dot.blue{background:#6366f1}.dot.gray{background:#9ca3af}.badge{font-size:11px;padding:2px 6px;background:#eee;border-radius:6px}.badge.blue{background:#e0e7ff;color:#3730a3}.classBadge{font-size:12px;font-weight:700;padding:4px 10px;border-radius:999px;margin-left:8px}.classBadge.black{background:#000;color:#fff}.classBadge.white{background:#fff;color:#000;border:2px solid #000}@keyframes slideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.filterPanel.expanded .filterGrid{animation:slideIn .3s ease-out}@media (max-width: 768px){.searchBarWrapper{top:80px;left:12px;width:calc(100% - 24px)}.searchBarCard{flex-direction:column;padding:14px 16px}.searchBarCard button{width:100%;justify-content:center}.searchCount{font-size:13px}.filterPanel{top:auto;bottom:0;left:0;right:0;width:100%;max-width:none;border-radius:20px 20px 0 0}.filterPanel.expanded{max-height:60vh}.filterPanel.collapsed{max-height:70px}.filterGrid{grid-template-columns:1fr;gap:20px}.resultList{top:70px;right:10px;width:calc(100% - 20px);max-width:360px}.detailCard{bottom:10px;width:calc(100% - 20px)}.legend{bottom:10px;right:10px;font-size:12px}}@media (max-width: 480px){.searchBarWrapper{top:70px}.searchBarCard{padding:12px 14px}.searchBarCard input{font-size:14px}.searchBarCard button{padding:8px 14px;font-size:14px}.filterPanel.expanded{max-height:65vh}}.toggleButton:focus-visible,.searchBarCard button:focus-visible,.detailClose:focus-visible{outline:2px solid #7c3aed;outline-offset:2px}.filterItem input:focus-visible{outline:2px solid #7c3aed;outline-offset:2px}
