@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&display=swap";.install-prompt{position:fixed;bottom:20px;left:20px;background-color:#fff;padding:16px;border-radius:12px;box-shadow:0 4px 12px #00000026;z-index:1000;max-width:90%;width:320px;animation:slideUp .3s ease-out}.install-prompt-content{text-align:center}.install-prompt-content p{margin:0 0 16px;color:#333;font-size:16px}.install-prompt-buttons{display:flex;gap:12px;justify-content:center}.install-button,.dismiss-button{padding:8px 16px;border-radius:6px;border:none;font-size:14px;cursor:pointer;transition:all .2s}.install-button{background-color:var(--lavender);color:#fff;font-weight:500;text-shadow:0 1px 1px rgba(0,0,0,.25),0 1px 3px rgba(0,0,0,.1)}.install-button:hover{background-color:var(--lavender-light);text-shadow:0 1px 2px rgba(0,0,0,.2),0 2px 4px rgba(0,0,0,.1)}.dismiss-button{background-color:#f5f5f5;color:#666}.dismiss-button:hover{background-color:#e5e5e5}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}:root{--terracotta: #E07A5F;--terracotta-light: #F2A696;--lavender: #9381FF;--lavender-light: #B8B8FF;--background: #FDFCFA;--surface: #FFFFFF;--text-primary: #2C3E50;--text-secondary: #6B7280;--border: #E2E8F0;--shadow: rgba(0, 0, 0, .05)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:DM Sans,sans-serif;background-color:var(--background);color:var(--text-primary);line-height:1.5;min-height:100vh;display:flex;justify-content:center}ul,li{list-style:none;margin:0;padding:0}.App{min-height:100vh;width:100%;display:flex;flex-direction:column;align-items:center;padding:40px 20px;max-width:1200px;margin-top:40px}.app-title{font-size:2.5rem;font-weight:600;color:var(--text-primary);margin-bottom:48px;text-align:center;letter-spacing:-.5px}.app-title span{color:var(--lavender)}#city-search{width:100%;max-width:400px;margin:0 auto 40px;display:flex;flex-direction:column;align-items:center;position:relative}input[type=text],input[type=number]{width:100%;min-width:300px;padding:16px 20px;font-size:16px;border:2px solid var(--border);border-radius:12px;background-color:var(--surface);color:var(--text-primary);transition:all .3s ease;text-align:center}input[type=text]:focus,input[type=number]:focus{outline:none;border-color:var(--lavender);box-shadow:0 0 0 3px var(--lavender-light)}.suggestions{width:100%;background-color:var(--surface);border:1px solid var(--border);border-radius:12px;margin-top:8px;box-shadow:0 4px 12px var(--shadow);position:absolute;top:100%;z-index:10;overflow:hidden}.suggestions>li{padding:12px 20px;cursor:pointer;transition:all .2s ease;color:var(--text-primary);text-align:left}.suggestions>li:not(:last-child){border-bottom:1px solid var(--border)}.suggestions>li:hover{background-color:var(--lavender);color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.1)}.number-of-events{width:100%;max-width:400px;margin:0 auto 40px;text-align:center}#event-list{width:100%;display:grid;grid-template-columns:repeat(auto-fill,minmax(450px,1fr));gap:24px;padding:20px;justify-content:center;margin:0 auto}.event{background-color:var(--surface);border-radius:16px;padding:24px;border:1px solid var(--border);box-shadow:0 2px 8px var(--shadow);transition:all .3s ease;display:flex;flex-direction:column;align-items:center;text-align:center;width:450px;margin:0 auto}.event:hover{transform:translateY(-2px);box-shadow:0 4px 12px var(--shadow)}.event h2{width:100%;text-align:center;color:var(--text-primary);margin-bottom:16px;font-size:1.25rem}.event p{width:100%;text-align:center;color:var(--text-secondary);margin-bottom:16px}.details-btn{background-color:var(--terracotta);color:#fff;border:none;padding:12px 24px;border-radius:8px;font-weight:500;cursor:pointer;transition:all .3s ease;align-self:center;margin-top:auto}.details-btn:hover{background-color:var(--terracotta-light)}@media (max-width: 768px){.App{padding:20px 16px}#event-list{grid-template-columns:1fr;padding:10px}input[type=text],input[type=number]{font-size:16px}}@media (prefers-reduced-motion: reduce){*{transition:none!important}}.alerts-container{position:fixed;top:0;left:50%;transform:translate(-50%);z-index:1000;width:100%;max-width:520px;padding:10px}.Alert{position:relative;padding:8px;margin-bottom:10px;border-radius:4px}.Alert p{margin:0;padding:8px;border-radius:4px;font-size:14px;line-height:20px;display:flex;align-items:center;gap:4px}.alert-icon{flex-shrink:0}.alert-text{flex-grow:1}.Alert button{position:absolute;right:12px;top:50%;transform:translateY(-50%);cursor:pointer;background:none;border:none;font-size:18px;opacity:.7;padding:4px 8px}.Alert button:hover{opacity:1}.InfoAlert p{background-color:#e3f2fd;color:#0a4b8f;border:1px solid #90caf9;font-weight:600}.InfoAlert .alert-icon{color:#0a4b8f}.ErrorAlert p{background-color:#ffebee;color:#9b0000;border:1px solid #ef9a9a;font-weight:600}.ErrorAlert .alert-icon{color:#9b0000}.WarningAlert p{background-color:#fff3e0;color:#e85d00;border:1px solid #ffb74d;font-weight:600}.WarningAlert .alert-icon{color:#e85d00}.city-search-input{padding:8px 12px;border:1px solid #ddd;border-radius:4px;font-size:16px;width:200px;margin-bottom:10px}.city-search-input:focus{outline:none;border-color:#2196f3;box-shadow:0 0 0 2px #2196f31a}.details{margin-top:16px;width:100%}.details::-webkit-scrollbar{width:6px}.details::-webkit-scrollbar-track{background:var(--border);border-radius:3px}.details::-webkit-scrollbar-thumb{background:var(--lavender);border-radius:3px}.details .event-description{margin-bottom:12px;line-height:1.6;color:var(--text-secondary)}.details .event-link{display:inline-block;color:var(--lavender);text-decoration:none;margin-top:8px;font-weight:500;transition:color .2s ease}.details .event-link:hover{color:var(--lavender-light)}.charts-container{display:flex;flex-direction:column;align-items:center;width:100%;max-width:1200px;padding:32px;background-color:var(--surface);border-radius:16px;box-shadow:0 2px 8px var(--shadow);margin:40px auto}.charts-title{font-size:2rem;font-weight:600;color:var(--text-primary);margin-bottom:32px;text-align:center;width:100%}.charts-grid{display:grid;grid-template-columns:1fr;gap:32px;width:100%;max-width:800px;margin:0 auto}@media (max-width: 900px){.charts-container{padding:20px;margin:20px auto}.charts-grid{gap:24px}.charts-title{font-size:1.75rem;margin-bottom:24px}}@media (max-width: 480px){.charts-container{padding:16px;margin:16px auto}.charts-grid{gap:20px}.charts-title{font-size:1.5rem;margin-bottom:20px}}.recharts-wrapper{margin:0 auto}.recharts-scatter-dot{fill:var(--lavender);stroke:var(--lavender-light);stroke-width:1;transition:all .3s ease}.recharts-scatter-dot:hover{fill:var(--terracotta);stroke:var(--terracotta-light);stroke-width:2}.recharts-text{fill:var(--text-secondary);font-family:DM Sans,sans-serif;font-size:12px}.recharts-cartesian-axis-line{stroke:var(--border)}.recharts-cartesian-grid-horizontal line,.recharts-cartesian-grid-vertical line{stroke:var(--border);stroke-opacity:.2}.recharts-tooltip-wrapper{background-color:var(--surface)!important;border:1px solid var(--border)!important;border-radius:8px!important;box-shadow:0 2px 8px var(--shadow)!important}.recharts-tooltip-item{color:var(--text-primary)!important;font-family:DM Sans,sans-serif!important}@media (max-width: 768px){.recharts-text{font-size:10px}}:root{font-family:Inter,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}}
