:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease-in}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:#fff;border-radius:16px;width:90%;max-width:600px;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 10px 40px #0000004d;animation:slideUp .3s ease-out}@keyframes slideUp{0%{transform:translateY(50px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid #e0e0e0}.modal-header h2{margin:0;font-size:1.5rem;color:#333}.close-button{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#999;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s}.close-button:hover{background:#f5f5f5;color:#333}.modal-tabs{display:flex;border-bottom:1px solid #e0e0e0;background:#f9f9f9}.modal-tabs button{flex:1;padding:1rem;border:none;background:none;cursor:pointer;font-size:.95rem;color:#666;transition:all .2s;border-bottom:3px solid transparent}.modal-tabs button:hover{background:#f0f0f0}.modal-tabs button.active{color:#1976d2;border-bottom-color:#1976d2;background:#fff;font-weight:600}.modal-body{padding:1.5rem;overflow-y:auto;flex:1}.info-section{display:flex;flex-direction:column;gap:1rem}.info-item{display:grid;grid-template-columns:120px 1fr;gap:1rem;align-items:start}.info-item strong{color:#555;font-weight:600}.info-item span,.info-item pre{color:#333}.info-item pre{margin:0;white-space:pre-wrap;font-family:inherit;line-height:1.6}.review-count{color:#ff9800;font-weight:600}.menu-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.75rem}.menu-item{display:flex;justify-content:space-between;align-items:center;padding:1rem;background:#f9f9f9;border-radius:8px;transition:all .2s}.menu-item:hover{background:#f0f0f0;transform:translate(4px)}.menu-name{font-weight:500;color:#333}.menu-price{color:#1976d2;font-weight:600;font-size:1.05rem}.review-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.75rem}.review-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:#e3f2fd;border-radius:8px;transition:all .2s}.review-item:hover{background:#bbdefb;transform:scale(1.02)}.review-keyword{color:#1565c0;font-weight:500}.review-count{background:#1976d2;color:#fff;padding:.25rem .5rem;border-radius:12px;font-size:.85rem;font-weight:600;min-width:30px;text-align:center}.empty-message{text-align:center;padding:3rem;color:#999;font-size:1rem}@media(max-width:768px){.modal-content{width:95%;max-height:90vh}.modal-tabs button{padding:.75rem .5rem;font-size:.85rem}.info-item{grid-template-columns:1fr;gap:.25rem}.review-list{grid-template-columns:1fr}}.place-list{max-width:1200px;margin:0 auto;padding:2rem}.place-list h1{font-size:2rem;margin-bottom:.5rem;color:#333}.count{font-size:1rem;color:#666;margin-bottom:2rem}.places-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}.place-card{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #0000001a;transition:transform .2s,box-shadow .2s;cursor:pointer}.place-card:hover{transform:translateY(-4px);box-shadow:0 4px 16px #00000026}.click-hint{margin-top:1rem;padding-top:.75rem;border-top:1px solid #eee;font-size:.85rem;color:#1976d2;text-align:right;opacity:0;transition:opacity .2s}.place-card:hover .click-hint{opacity:1}.place-card h3{font-size:1.25rem;margin-bottom:1rem;color:#2c3e50}.place-info p{margin:.5rem 0;font-size:.9rem;color:#666}.category{display:inline-block;background:#e3f2fd;color:#1976d2;padding:.25rem .75rem;border-radius:16px;font-size:.85rem;font-weight:500}.address{color:#555}.phone{color:#888;font-family:monospace}.reviews{color:#ff9800;font-weight:600}.loading,.error{text-align:center;padding:3rem;font-size:1.2rem}.error{color:#f44336}#root{max-width:1280px;margin:0 auto;padding:2rem;text-align:center}.logo{height:6em;padding:1.5em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(prefers-reduced-motion:no-preference){a:nth-of-type(2) .logo{animation:logo-spin infinite 20s linear}}.card{padding:2em}.read-the-docs{color:#888}
