#root{width:100%;height:100%;margin:0;padding:0}.app-container{display:flex;flex-direction:column;height:100vh;width:100%}.app-header{flex-shrink:0}.app-main{flex:1;width:100%;overflow:hidden}.map-wrapper{width:100%;height:100%;overflow:hidden;position:relative}.app-footer{flex-shrink:0}.weather-marker-container{background:transparent;border:none;display:flex;align-items:center;justify-content:center}.weather-marker-icon{background-color:#ffffffe6;border-radius:8px;padding:.5rem;display:flex;flex-direction:column;align-items:center;gap:.25rem;box-shadow:0 2px 6px #0003;border:1px solid rgba(0,0,0,.1);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);min-width:55px}.weather-marker-emoji{font-size:1.5rem;line-height:1}.weather-marker-temp{font-size:.75rem;font-weight:600;color:#333}.course-marker-container{background:transparent;border:none;display:flex;align-items:center;justify-content:center}.course-marker-icon{background-color:orange;border:2px solid white;border-radius:50%;width:40px;height:40px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.125rem;box-shadow:0 2px 8px #0000004d;padding-left:.1rem}.course-marker-emoji{font-size:1.25rem;line-height:1;color:#fff;display:flex;flex-direction:row}.course-rain-emoji{position:absolute;top:1.15rem;font-size:.3rem}.course-marker-temp{font-size:.6rem;font-weight:700;color:#fff;line-height:1}@media (prefers-color-scheme: dark){.weather-marker-icon{background-color:#323232e6}.weather-marker-temp{color:#fff}}.loading-spinner-overlay{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;background-color:#ffffff80;z-index:1000;border-radius:8px}.loading-spinner{display:flex;flex-direction:column;align-items:center;gap:1rem}.spinner{width:60px;height:60px;border:4px solid #e0e0e0;border-top:4px solid #4caf50;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-spinner p{margin:0;color:#333;font-weight:500;font-size:14px}.map-container{width:100%;height:100%;border-radius:0;overflow:hidden;box-shadow:none;position:relative}.map{width:100%;height:100%}.leaflet-control-attribution{background-color:#fffc!important;font-size:.75rem}.leaflet-popup-content-wrapper{border-radius:6px;box-shadow:0 2px 6px #0000004d}.leaflet-popup-tip{background-color:#fff}.location-search{display:flex;flex-direction:column;gap:.5rem;margin-top:1rem;width:100%;max-width:500px;margin-left:auto;margin-right:auto}.search-row{display:flex;gap:1rem;width:100%}.search-input{flex:1;padding:.75rem 1rem;border:2px solid rgba(255,255,255,.3);border-radius:4px;background-color:#ffffff1a;color:#fff;font-size:1rem;transition:border-color .3s ease}.search-input::placeholder{color:#fff9}.search-input:focus{outline:none;border-color:#fff;background-color:#ffffff26}.forecast-time{flex-direction:column}.forecast-date,.forecast-time{display:flex;gap:.5rem;flex:1;min-width:150px}.date-input{padding:.5rem .75rem;border:1px solid rgba(255,255,255,.3);border-radius:4px;background-color:#ffffff0d;color:#fff;font-size:.9rem}.date-input:focus{outline:none;border-color:#fff;background-color:#ffffff1a}.time-slider{width:100%;height:6px;border-radius:3px;background:linear-gradient(to right,rgba(255,255,255,.2) 0%,rgba(76,175,80,.5) 100%);outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.time-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background-color:#fff;cursor:pointer;box-shadow:0 2px 4px #0000004d}.time-slider::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background-color:#fff;cursor:pointer;border:none;box-shadow:0 2px 4px #0000004d}@media (max-width: 640px){.location-search{max-width:90%}.search-row{flex-wrap:wrap}.search-input{flex:1 1 100%;min-width:200px}.search-button,.weather-button{flex:1;padding:.75rem .5rem;font-size:.9rem}.forecast-controls{flex-direction:column}.forecast-date,.forecast-time{min-width:auto}}*{margin:0;padding:0;box-sizing:border-box}:root{color-scheme:light dark;color:#ffffffde;background-color:#242424;--color-primary: #4CAF50;--color-primary-hover: #45a049;--color-secondary: #2196F3;--color-text: rgba(255, 255, 255, .87);--color-text-dark: #1a1a1a;--color-bg-card: #313131;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff;--color-text: #213547;--color-text-dark: #1a1a1a;--color-bg-card: #f0f0f0}}html,body,#root{width:100%;height:100%;margin:0;padding:0;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;line-height:1.5}.app-header{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-secondary) 100%);color:#fff;padding:var(--spacing-lg) var(--spacing-md);text-align:center;box-shadow:0 2px 4px #0000001a}.app-header h1{font-size:1.75rem;margin-bottom:var(--spacing-sm)}.app-header p{font-size:.95rem;opacity:.9}.card{background-color:var(--color-bg-card);border-radius:8px;padding:var(--spacing-lg);margin-bottom:var(--spacing-lg);box-shadow:0 2px 8px #0000001a}.card h2{color:var(--color-primary);margin-bottom:var(--spacing-md);font-size:1.5rem}.card p{margin-bottom:var(--spacing-md);line-height:1.6}.card ul{list-style-position:inside;margin-left:var(--spacing-md)}.card li{margin-bottom:var(--spacing-sm)}button{background-color:var(--color-primary);color:#fff;border:none;padding:var(--spacing-sm) var(--spacing-lg);margin:var(--spacing-sm) var(--spacing-sm) 0 0;border-radius:4px;cursor:pointer;font-size:1rem;font-weight:500;transition:background-color .3s ease}button:hover{background-color:var(--color-primary-hover)}button:active{transform:scale(.98)}.app-footer{background-color:var(--color-bg-card);text-align:center;padding:var(--spacing-lg);border-top:1px solid rgba(0,0,0,.1);font-size:.85rem;margin-top:var(--spacing-xl)}@media (min-width: 640px){.app-header h1{font-size:2rem}.app-main,.card{padding:var(--spacing-xl)}}@media (min-width: 1024px){.app-main{max-width:800px}.card{display:flex;flex-direction:column}}@media (hover: none) and (pointer: coarse){button{padding:var(--spacing-md) var(--spacing-lg);font-size:1.1rem;min-height:44px}}@media print{.app-header,.app-footer{display:none}}
