:root{--bg-color: #f8fafc;--text-color: #0f172a;--text-muted: #64748b;--brand-blue: #00a8e1;--brand-blue-accessible: #007098;--primary-color: #0f172a;--accent-color: var(--brand-blue-accessible);--surface-color: #ffffff;--border-color: #e2e8f0;--glass-bg: rgba(255, 255, 255, .95);--glass-border: rgba(226, 232, 240, .8);--glass-shadow: 0 4px 6px -1px rgba(0, 0, 0, .05);--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 2rem;--font-main: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif}*,*:before,*:after{box-sizing:border-box}html{overflow-x:clip}body{background-color:#fff;color:var(--text-color);font-family:var(--font-main);margin:0;padding:0;line-height:1.6;-webkit-font-smoothing:antialiased;min-height:100vh}.container{max-width:1200px;margin:0 auto;padding:0 1.5rem;width:100%}@media(max-width:768px){.container{padding:0 1rem}}.card{background:var(--surface-color);border:1px solid var(--border-color);border-radius:8px;padding:1.5rem;box-shadow:0 1px 2px #0000000d;transition:all .2s ease}.interactive-card:hover{border-color:var(--accent-color)}.static-card{background:var(--surface-color);border:1px solid var(--border-color);border-radius:12px;padding:2rem}@keyframes shell-pulse{0%,to{opacity:1}50%{opacity:.55}}.sk-bar,.sk-box,.sk-search{background:#eef2f7;border-radius:4px;animation:shell-pulse 1.4s ease-in-out infinite}.sk-bar{height:.7rem}.sk-search{height:3.25rem;border-radius:12px;margin-bottom:2rem}.sk-box{border-radius:8px}.header-glass{background:#fff;border-bottom:1px solid var(--border-color);position:sticky;top:0;z-index:1000;padding:.75rem 0}.btn{background:var(--brand-blue-accessible);color:#fff;padding:.625rem 1.25rem;border-radius:6px;border:none;cursor:pointer;font-weight:500;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;transition:all .2s;font-size:.95rem}.btn:hover{background:#1e293b;opacity:.95}.btn:disabled{opacity:.7;cursor:not-allowed}input,textarea,select{width:100%;padding:.75rem;border:1px solid var(--border-color);border-radius:6px;background:#fff;font-family:inherit;font-size:.95rem;color:var(--text-color);transition:border-color .2s}input[type=checkbox],input[type=radio]{width:auto;margin-right:.5rem}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--accent-color);border-width:2px;padding:calc(.75rem - 1px)}.view-switcher{display:inline-flex;background:#e2e8f0;padding:4px;border-radius:8px}.view-btn{padding:.5rem 1rem;border-radius:6px;border:none;background:transparent;color:#475569;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:.5rem}.view-btn.active{background:#fff;color:var(--primary-color);border:1px solid var(--border-color)}.leaflet-container{width:100%;height:500px;border-radius:12px;z-index:1;border:1px solid var(--border-color)}.popup-card{background:#fff;border-radius:8px}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:transparent!important;box-shadow:none!important;padding:0!important;border:none!important}.leaflet-popup-content{margin:0!important}a{color:var(--brand-blue);text-decoration:none}a:hover{text-decoration:underline}.leaflet-popup-content a.btn,.leaflet-popup-content .btn{color:#fff!important;text-decoration:none!important}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;background:var(--border-color);border:1px solid var(--border-color);border-radius:12px;overflow:hidden;min-width:800px}.calendar-wrapper{overflow-x:auto;padding-bottom:1rem}.calendar-day-header{background:#fff;padding:1rem .5rem;text-align:center;font-weight:600;color:var(--text-muted);font-size:.8rem;text-transform:uppercase;border-bottom:1px solid var(--border-color)}.calendar-day{background:#fff;min-height:120px;padding:.5rem;position:relative}.calendar-day:hover{background-color:#f8fafc}.calendar-day.empty{background:#f1f5f9}@media(max-width:768px){.calendar-grid{grid-template-columns:1fr;min-width:100%;border-radius:0;border:none;background:transparent;gap:1rem}.calendar-day-header{display:none}.calendar-day{min-height:auto;border:1px solid var(--border-color);border-radius:8px;padding:1rem}.calendar-day.empty{display:none}.calendar-wrapper{overflow-x:visible}}.nav-link{color:var(--text-muted);text-decoration:none;font-weight:500;padding:.5rem .75rem;border-radius:6px;transition:all .2s}.nav-link:hover{color:var(--primary-color);background:#f1f5f9;text-decoration:none!important}.event-date-group{margin-bottom:2.5rem}.event-date-header{font-size:1.1rem;font-weight:600;color:var(--text-muted);margin-bottom:1rem;border-bottom:1px solid var(--border-color);padding-bottom:.5rem;text-transform:uppercase;letter-spacing:.025em}.nav-desktop{display:flex;gap:1rem;align-items:center}.nav-toggle{display:none;background:none;border:none;cursor:pointer;color:var(--primary-color);padding:.5rem}.mobile-menu{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;border-bottom:1px solid var(--border-color);flex-direction:column;padding:1rem;gap:.5rem;box-shadow:0 4px 6px -1px #0000000d}.mobile-menu.open{display:flex}@media(max-width:768px){.nav-desktop{display:none}.nav-toggle{display:block}}.hero-band{width:100vw;margin-left:calc(50% - 50vw);margin-top:-2rem;background:var(--brand-blue);padding:2.75rem 1.5rem;text-align:center}.hero-band h1{margin:0;line-height:0}.hero-band img{width:min(340px,75vw);height:auto}@media(max-width:768px){.hero-band{padding:0;height:1.25rem}.hero-band img{display:none}}.content-area img,.ql-editor img{max-width:100%;height:auto;display:block}.ql-container img{max-width:100%;height:auto}.ql-editor img,.content-area img,.page-content img{max-width:100%!important;height:auto!important;display:block}.page-editor .ql-editor img{max-width:100%!important;height:auto!important;object-fit:contain!important}.prose img{max-width:100%!important;height:auto!important;display:block;margin:1rem 0}.sponsor-content{overflow-wrap:break-word;word-break:normal;-webkit-hyphens:none;hyphens:none;line-height:1.5;white-space:normal!important;max-width:100%}.sponsor-content img{max-width:100%;height:auto}.prose,.sponsor-content{width:100%;max-width:100%;box-sizing:border-box}.prose *,.sponsor-content *{max-width:100%!important;width:auto!important;box-sizing:border-box!important;white-space:normal!important}.page-content-wrapper{max-width:100%;width:100%;overflow-x:auto;box-sizing:border-box}.prose [style],.sponsor-content [style]{width:auto!important;max-width:100%!important;height:auto!important}.prose iframe,.prose video,.prose embed,.prose img{max-width:100%!important;height:auto!important;width:100%!important;display:block!important;object-fit:contain}.prose table{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%;border-collapse:collapse}.sponsor-wrapper{background:#f0f9ff;border-bottom:1px solid #bae6fd;padding:.75rem;text-align:center}.sponsor-wrapper.secondary{background:#f8fafc;border-top:1px solid #e2e8f0;border-bottom:none;padding:1.5rem 0}@media(max-width:768px){.sponsor-wrapper,.sponsor-wrapper.secondary{padding:.5rem}}.admin-tabs-container{overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch;margin-bottom:2rem;padding-bottom:.5rem}.admin-table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch;margin-bottom:1rem}.tab-btn{flex-shrink:0}.ql-editor{overflow-wrap:break-word}.submit-btn-custom{background:var(--brand-blue);color:#fff;padding:.75rem 2rem;border-radius:8px;border:none;font-size:1rem;font-weight:600;cursor:pointer;box-shadow:none;transition:all .2s ease;width:auto;min-width:200px;text-align:center;display:inline-flex;justify-content:center;align-items:center}.submit-btn-custom:hover:not(:disabled){background:#1e293b;transform:none;box-shadow:none}.submit-btn-custom:active:not(:disabled){transform:none}.submit-btn-custom:disabled{opacity:.6;cursor:not-allowed}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin-bottom:.5rem}.mobile-full-width{grid-column:1 / -1}@media(min-width:768px){.form-grid{grid-template-columns:repeat(3,1fr);gap:2rem}.mobile-full-width{grid-column:auto}}.input-group{margin-bottom:2rem}.input-label{display:block;font-size:.875rem;font-weight:500;margin-bottom:.75rem;color:var(--text-color);width:100%}
