*{margin:0;padding:0;box-sizing:border-box}:root{--primary-color:#a5d8ff;--secondary-color:#2c5d7c;--accent-color:#e8f4ff;--glacier-blue:#183852;--deep-ice:#0d2c40;--ice-glow:rgba(165, 216, 255, 0.5);--text-primary:#f0f8ff;--text-secondary:#c0d6e8;--glass-bg:rgba(26, 63, 92, 0.65);--glass-border:rgba(165, 216, 255, 0.2);--sidebar-bg:#0f2535;--button-text-dark:#183852;--primary-blue:#a5d8ff;--secondary-blue:#2c5d7c;--deep-ice-blue:#0d2c40;--primary-light:#f0f8ff;--text-light:#f0f8ff;--text-muted:#c0d6e8;--accent-teal:#0d9488;--warning-orange:#f59e0b;--error-red:#dc2626;--success-green:#059669;--gray-50:#f9fafb;--gray-100:#f3f4f6;--gray-200:#e5e7eb;--gray-300:#d1d5db;--gray-400:#9ca3af;--gray-500:#6b7280;--gray-600:#4b5563;--gray-700:#374151;--gray-800:#1f2937;--gray-900:#111827;--font-family:'Montserrat',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;--font-family-accent:'Syne',sans-serif;--font-size-xs:0.75rem;--font-size-sm:0.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:1.875rem;--spacing-1:0.25rem;--spacing-2:0.5rem;--spacing-3:0.75rem;--spacing-4:1rem;--spacing-5:1.25rem;--spacing-6:1.5rem;--spacing-8:2rem;--spacing-10:2.5rem;--spacing-12:3rem;--spacing-16:4rem;--border-radius:0.5rem;--border-radius-lg:0.75rem;--border-width:1px;--shadow-sm:0 1px 2px 0 rgba(0, 0, 0, 0.05);--shadow-md:0 4px 6px -1px rgba(0, 0, 0, 0.1),0 2px 4px -1px rgba(0, 0, 0, 0.06);--shadow-lg:0 10px 15px -3px rgba(0, 0, 0, 0.1),0 4px 6px -2px rgba(0, 0, 0, 0.05);--transition-fast:0.15s ease-in-out;--transition-normal:0.3s ease-in-out}body{font-family:var(--font-family);font-size:var(--font-size-base);line-height:1.6;color:var(--text-primary);background:linear-gradient(135deg,var(--glacier-blue),var(--deep-ice));min-height:100vh;margin:0;padding:0;position:relative;display:flex;flex-direction:column}h1,h2,h3,h4,h5,h6{font-family:var(--font-family-accent);font-weight:600;line-height:1.2;margin-bottom:var(--spacing-3);color:var(--primary-blue)}.logo{height:3.375rem;width:auto;margin-right:var(--spacing-2);vertical-align:middle;border-radius:4px}@media (max-width:768px){.logo{height:2.8125rem;margin-right:var(--spacing-2)}.app-title{font-size:var(--font-size-xl)}}@media (max-width:480px){.logo{height:2.25rem;margin-right:var(--spacing-1)}.app-title{font-size:var(--font-size-lg)}}h1{font-size:var(--font-size-3xl)}h2{font-size:var(--font-size-2xl)}h3{font-size:var(--font-size-xl)}h4{font-size:var(--font-size-lg)}p{margin-bottom:var(--spacing-4)}a{color:var(--primary-blue);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--secondary-blue);text-decoration:underline}.app-container{min-height:100vh;display:flex;flex-direction:column}.container{max-width:1200px;margin:0 auto;padding:0 var(--spacing-4)}.app-header{background:linear-gradient(rgba(24,56,82,.85),rgba(13,44,64,.95));color:var(--text-primary);padding:var(--spacing-6) 0;box-shadow:var(--shadow-lg);border-bottom:1px solid var(--glass-border)}.app-title{display:flex;align-items:center;gap:var(--spacing-3);font-size:var(--font-size-3xl);font-weight:700;margin-bottom:var(--spacing-2);color:var(--accent-color);text-shadow:0 0 10px var(--ice-glow);font-family:var(--font-family-accent)}.logo{font-size:2rem}.app-subtitle{font-size:var(--font-size-lg);color:var(--text-secondary);margin-bottom:0}.app-main{flex:1;padding:var(--spacing-8) 0}.widget-container{margin-bottom:var(--spacing-8)}.widget{background:var(--glass-bg);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-md);padding:var(--spacing-6);border:var(--border-width) solid var(--glass-border);backdrop-filter:blur(10px);transition:box-shadow var(--transition-normal)}.widget:hover{box-shadow:var(--shadow-lg)}.widget h2{color:var(--primary-color);margin-bottom:var(--spacing-5);padding-bottom:var(--spacing-3);border-bottom:2px solid var(--glass-border)}@media (max-width:768px){.app-main{padding:var(--spacing-4) 0}.widget-container{margin-bottom:var(--spacing-6)}.widget{padding:var(--spacing-4);border-radius:var(--border-radius)}.widget h2{margin-bottom:var(--spacing-4);padding-bottom:var(--spacing-2)}}@media (max-width:480px){.app-main{padding:var(--spacing-3) 0}.widget-container{margin-bottom:var(--spacing-4)}.widget{padding:var(--spacing-3);margin:0 var(--spacing-2)}.widget h2{margin-bottom:var(--spacing-3);padding-bottom:var(--spacing-2);font-size:var(--font-size-lg)}}input[type=search],input[type=text],select,textarea{width:100%;padding:var(--spacing-3) var(--spacing-4);border:var(--border-width) solid var(--gray-300);border-radius:var(--border-radius);font-size:var(--font-size-base);font-family:var(--font-family);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}input[type=search]:focus,input[type=text]:focus,select:focus,textarea:focus{outline:0;border-color:var(--primary-blue);box-shadow:0 0 0 3px rgba(59,130,246,.1)}.btn{display:inline-flex;align-items:center;gap:var(--spacing-2);padding:var(--spacing-3) var(--spacing-5);border:none;border-radius:var(--border-radius);font-size:var(--font-size-base);font-weight:500;font-family:var(--font-family);cursor:pointer;transition:all var(--transition-fast);text-decoration:none}.btn-primary{background-color:var(--primary-blue);color:#fff}.btn-primary:hover{background-color:var(--dark-blue)}.btn-secondary{background-color:var(--gray-100);color:var(--gray-700);border:var(--border-width) solid var(--gray-300)}.btn-secondary:hover{background-color:var(--gray-200)}.btn-warning{background-color:var(--warning-orange);color:#fff}.btn-error{background-color:var(--error-red);color:#fff}.btn-success{background-color:var(--success-green);color:#fff}.loading{display:flex;align-items:center;justify-content:center;gap:var(--spacing-3);padding:var(--spacing-8);color:var(--gray-500);font-style:italic}.loading::before{content:'';width:1rem;height:1rem;border:2px solid var(--gray-300);border-top:2px solid var(--primary-blue);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.status-message{padding:var(--spacing-4);border-radius:var(--border-radius);margin-bottom:var(--spacing-4);font-weight:500}.status-success{background-color:#d1fae5;color:var(--success-green);border:var(--border-width) solid #a7f3d0}.status-warning{background-color:#fef3c7;color:#92400e;border:var(--border-width) solid #fde68a}.status-error{background-color:#fee2e2;color:var(--error-red);border:var(--border-width) solid #fecaca}.app-footer{background-color:var(--gray-800);color:var(--gray-300);padding:var(--spacing-8) 0;text-align:center}.app-footer a{color:var(--secondary-blue)}.app-footer a:hover{color:#fff}.disclaimer{margin-top:var(--spacing-4);font-size:var(--font-size-sm);opacity:.8}.status-bar{position:fixed;bottom:0;left:0;right:0;background:rgba(0,0,0,.9);backdrop-filter:blur(10px);color:#fff;padding:var(--spacing-2) var(--spacing-4);font-size:var(--font-size-sm);z-index:1000;transition:transform var(--transition-normal)}.status-bar.hidden{transform:translateY(100%)}.status-content{display:flex;align-items:center;justify-content:space-between;max-width:1200px;margin:0 auto}.status-indicator{width:8px;height:8px;border-radius:50%;background-color:var(--success-green);animation:pulse 2s infinite}.status-indicator.warning{background-color:var(--warning-orange)}.status-indicator.error{background-color:var(--error-red)}@keyframes pulse{0%,100%{opacity:1}50%{opacity:.5}}@media (max-width:768px){.container{padding:0 var(--spacing-3)}.app-header{padding:var(--spacing-4) 0}.app-title{font-size:var(--font-size-2xl)}.app-subtitle{font-size:var(--font-size-base)}.widget{padding:var(--spacing-4)}.app-main{padding:var(--spacing-6) 0}.widget-container{margin-bottom:var(--spacing-6)}}@media (max-width:480px){.app-title{font-size:var(--font-size-xl)}.widget h2{font-size:var(--font-size-lg)}}@media (prefers-reduced-motion:reduce){*,::after,::before{animation-duration:0s!important;animation-iteration-count:1!important;transition-duration:0s!important}}@media (prefers-contrast:high){:root{--gray-300:#000000;--gray-400:#000000;--gray-500:#000000;--primary-blue:#0000ff;--secondary-blue:#0000ff}}@media print{.app-footer,.app-header,.status-bar{display:none}.widget{break-inside:avoid;box-shadow:none;border:var(--border-width) solid var(--gray-300)}}.widget-header{display:flex;align-items:center;gap:var(--spacing-3);margin-bottom:var(--spacing-4);font-size:var(--font-size-xl);font-weight:600;color:var(--primary-light);position:relative}.widget-logo{width:32px;height:32px;object-fit:contain;flex-shrink:0}.header-title{flex:1}.toggle-button{background:0 0;border:none;cursor:pointer;padding:var(--spacing-1);border-radius:var(--border-radius-md);color:var(--primary-light);transition:all .2s ease;margin-left:auto}.toggle-button:hover{background-color:var(--background-secondary);color:var(--primary)}.toggle-button:focus{outline:2px solid var(--primary);outline-offset:2px}.chevron-icon{transition:transform .3s ease;display:block}.toggle-button[aria-expanded=true] .chevron-icon{transform:rotate(180deg)}.collapsible-content{transition:all .3s ease;overflow:hidden}.collapsible-content.expanding{display:block!important;animation:expand .3s ease-out}.collapsible-content.collapsing{animation:collapse .3s ease-in}@keyframes expand{0%{max-height:0;opacity:0}100%{max-height:2000px;opacity:1}}@keyframes collapse{0%{max-height:2000px;opacity:1}100%{max-height:0;opacity:0}}.region-selector{margin-bottom:var(--spacing-4);padding:var(--spacing-3);background-color:var(--background-secondary);border-radius:var(--border-radius-md)}.region-selector .dropdown-label{display:block;margin-bottom:var(--spacing-2);font-weight:500;color:var(--text-secondary)}.region-dropdown{width:100%;padding:var(--spacing-3) var(--spacing-4);border:var(--border-width) solid var(--gray-500);border-radius:var(--border-radius);background-color:var(--gray-800);color:var(--primary-light);font-size:var(--font-size-base);font-family:var(--font-family);cursor:pointer;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.region-dropdown:focus{outline:0;border-color:var(--primary-blue);box-shadow:0 0 0 3px rgba(59,130,246,.1)}.region-dropdown:hover{border-color:var(--gray-400)}.observation-data{display:grid;gap:var(--spacing-2)}.observation-line{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-2);background-color:var(--background-secondary);border-radius:var(--border-radius-sm);border-left:3px solid var(--primary-light)}.obs-label{font-weight:500;color:var(--text-secondary);flex:1}.observation-value{font-weight:600;color:var(--text);text-align:right;font-variant-numeric:tabular-nums}@media (max-width:768px){.widget-header{font-size:var(--font-size-lg);gap:var(--spacing-2);margin-bottom:var(--spacing-3)}.widget-logo{width:24px;height:24px}.toggle-button{padding:var(--spacing-2);min-width:44px;min-height:44px}.region-selector{padding:var(--spacing-2)}.observation-line{flex-direction:column;align-items:flex-start;gap:var(--spacing-1)}.obs-label{font-size:var(--font-size-sm)}.observation-value{font-size:var(--font-size-base);text-align:left}.dropdown-container{gap:var(--spacing-2)}.station-dropdown,.tide-station-dropdown,.weather-location-dropdown,.zone-dropdown{padding:var(--spacing-2) var(--spacing-3);font-size:var(--font-size-sm)}}@media (max-width:480px){.widget-header{font-size:var(--font-size-base);gap:var(--spacing-2)}.widget-logo{width:20px;height:20px}.dropdown-container{gap:var(--spacing-1)}.station-dropdown,.tide-station-dropdown,.weather-location-dropdown,.zone-dropdown{padding:var(--spacing-2);font-size:var(--font-size-sm);min-height:44px}.dropdown-label{font-size:var(--font-size-xs);margin-bottom:var(--spacing-1)}.alerts-content,.discussion-content,.forecast-content,.observations-content,.tides-content,.weather-content{padding:var(--spacing-2)}.forecast-period{padding:var(--spacing-2);margin-bottom:var(--spacing-2)}.period-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-1)}.forecast-text,.period-text{font-size:var(--font-size-sm);line-height:1.4;word-wrap:break-word;overflow-wrap:break-word;word-break:break-word;max-width:100%;white-space:pre-wrap;hyphens:auto}}.forecast-display{max-width:100%;overflow:hidden}.forecast-content .forecast-text,.forecast-content .period-text{max-width:100%;overflow-wrap:break-word;word-break:break-word;white-space:pre-wrap}.coastal-forecast-content .forecast-header{display:flex;flex-direction:column;gap:var(--spacing-2);padding-bottom:var(--spacing-3);border-bottom:var(--border-width) solid var(--gray-200);margin-bottom:var(--spacing-4)}.coastal-forecast-content .forecast-meta{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-3)}.coastal-forecast-content .noaa-link{color:var(--primary-color);text-decoration:none;font-size:var(--font-size-sm);transition:all var(--transition-fast);white-space:nowrap}.coastal-forecast-content .noaa-link:hover{color:var(--accent-color);text-shadow:0 0 10px var(--ice-glow)}.zone-forecast{max-width:100%;overflow:hidden}.zone-forecast .forecast-text{font-size:var(--font-size-sm);line-height:1.4;word-wrap:break-word;overflow-wrap:break-word;word-break:break-word;max-width:100%;white-space:pre-wrap;hyphens:auto;background:rgba(255,255,255,.05);padding:var(--spacing-3);border-radius:var(--border-radius);border-left:3px solid var(--accent-teal);margin:0}.location-content{display:flex;flex-direction:column;gap:var(--spacing-4)}.dropdown-container{display:flex;flex-direction:column;gap:var(--spacing-2)}.dropdown-label{font-weight:500;color:var(--primary-light);font-size:var(--font-size-sm)}.zone-dropdown{padding:var(--spacing-3) var(--spacing-4);border:var(--border-width) solid var(--gray-500);border-radius:var(--border-radius);background-color:var(--gray-800);font-size:var(--font-size-base);font-family:var(--font-family);color:var(--primary-light);cursor:pointer;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.zone-dropdown:focus{outline:0;border-color:var(--primary-blue);box-shadow:0 0 0 3px rgba(59,130,246,.1)}.zone-dropdown:hover{border-color:var(--gray-400)}.region-filters{display:flex;gap:var(--spacing-2);flex-wrap:wrap}.region-filter{padding:var(--spacing-2) var(--spacing-4);border:var(--border-width) solid var(--glass-border);background-color:var(--glass-bg);color:var(--text-secondary);border-radius:var(--border-radius);font-size:var(--font-size-sm);cursor:pointer;transition:all var(--transition-fast);backdrop-filter:blur(5px)}.region-filter:hover{background-color:rgba(26,63,92,.8);border-color:var(--ice-glow)}.region-filter.active{background-color:var(--primary-color);color:var(--button-text-dark);border-color:var(--primary-color);box-shadow:0 0 10px var(--ice-glow)}.no-results{text-align:center;padding:var(--spacing-4);color:var(--gray-500);font-style:italic}.forecast-content{display:flex;flex-direction:column;gap:var(--spacing-5)}.forecast-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:var(--spacing-3);border-bottom:var(--border-width) solid var(--gray-200)}.forecast-location{font-weight:600;color:var(--text-primary);font-size:var(--font-size-lg)}.forecast-updated{font-size:var(--font-size-sm);color:var(--text-secondary)}.forecast-link{margin-top:var(--spacing-2)}.forecast-link a{color:var(--primary-color);text-decoration:none;font-size:var(--font-size-sm);transition:all var(--transition-fast);display:inline-flex;align-items:center;gap:var(--spacing-1)}.forecast-link a:hover{color:var(--accent-color);text-shadow:0 0 10px var(--ice-glow)}.forecast-periods{display:flex;flex-direction:column;gap:var(--spacing-4)}.forecast-period{padding:var(--spacing-4);border:var(--border-width) solid var(--glass-border);border-radius:var(--border-radius);background-color:rgba(15,37,53,.4);backdrop-filter:blur(5px)}.period-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-3)}.period-name{font-weight:600;color:var(--text-primary);font-size:var(--font-size-lg);margin-bottom:var(--spacing-2);text-transform:uppercase}.period-text{color:var(--text-secondary);line-height:1.6;font-size:var(--font-size-base)}.period-time{font-size:var(--font-size-sm);color:var(--text-secondary)}.weather-content .forecast-period .period-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-3)}.weather-content .forecast-title{display:flex;flex-direction:column;gap:var(--spacing-1)}.weather-content .zone-id{font-size:var(--font-size-sm);color:var(--text-secondary);font-weight:400}.weather-content .forecast-time{text-align:right;flex-shrink:0}.weather-content .forecast-text{background:rgba(255,255,255,.05);padding:var(--spacing-3);border-radius:var(--border-radius);border-left:3px solid var(--accent-teal);white-space:pre-line;line-height:1.6;margin-bottom:var(--spacing-3)}.weather-content .weather-link{text-align:right}.weather-content .weather-link a{color:var(--accent-teal);text-decoration:none;font-size:var(--font-size-sm);font-weight:500}.weather-content .weather-link a:hover{color:var(--primary-light);text-decoration:underline}@media (max-width:768px){.weather-content .forecast-period .period-header{flex-direction:column;gap:var(--spacing-2)}.weather-content .forecast-time{text-align:left}}@media (max-width:480px){.weather-content .forecast-text{padding:var(--spacing-2);font-size:var(--font-size-sm)}}.alerts-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-4);padding:var(--spacing-3);background:rgba(255,255,255,.05);border-radius:var(--border-radius);border-left:3px solid var(--accent-teal)}.alerts-title{display:flex;flex-direction:column;gap:var(--spacing-1)}.alert-count{font-size:var(--font-size-sm);color:var(--text-secondary);font-weight:400}.alerts-updated{text-align:right;flex-shrink:0}.alert-title-section{display:flex;flex-direction:column;gap:var(--spacing-1)}.alert-source{font-size:var(--font-size-sm);color:var(--text-secondary);font-weight:400}.alert-areas{font-size:var(--font-size-sm);color:var(--primary-light);font-weight:500;font-style:italic}.alert-headline{font-weight:600;color:var(--primary-light);margin-bottom:var(--spacing-2);padding:var(--spacing-2);background:rgba(255,255,255,.08);border-radius:var(--border-radius);border-left:2px solid var(--accent-teal)}.alert-severity-badge{text-align:right}.severity-high{background:var(--error-color,#dc2626);color:#fff;padding:.25rem .5rem;border-radius:var(--border-radius);font-size:var(--font-size-xs);font-weight:600}.severity-medium{background:var(--warning-color,#f59e0b);color:#fff;padding:.25rem .5rem;border-radius:var(--border-radius);font-size:var(--font-size-xs);font-weight:600}.severity-low{background:var(--info-color,#3b82f6);color:#fff;padding:.25rem .5rem;border-radius:var(--border-radius);font-size:var(--font-size-xs);font-weight:600}.alert-text{background:rgba(255,255,255,.05);padding:var(--spacing-3);border-radius:var(--border-radius);white-space:pre-line;line-height:1.6;margin-bottom:var(--spacing-3)}.alert-high{border-left-color:var(--error-color,#dc2626)}.alert-medium{border-left-color:var(--warning-color,#f59e0b)}.alert-low{border-left-color:var(--info-color,#3b82f6)}.alert-time{font-size:var(--font-size-sm);color:var(--text-secondary);text-align:center;margin-top:var(--spacing-2)}@media (max-width:768px){.alerts-header{flex-direction:column;gap:var(--spacing-2)}.alerts-updated{text-align:left}}@media (max-width:480px){.alert-text{padding:var(--spacing-2);font-size:var(--font-size-sm)}}.wind-info{display:flex;align-items:center;gap:var(--spacing-3);margin-bottom:var(--spacing-2)}.wind-direction{font-weight:500;color:var(--primary-blue)}.wind-speed{font-weight:600;color:var(--text-primary)}.wind-description{font-size:var(--font-size-sm);color:var(--gray-600)}.wave-info{display:flex;align-items:center;gap:var(--spacing-3);margin-bottom:var(--spacing-2)}.wave-height{font-weight:600;color:var(--accent-teal)}.wave-period{color:var(--gray-600)}.weather-summary{font-size:var(--font-size-sm);color:var(--gray-700);line-height:1.4}.alerts-content{display:flex;flex-direction:column;gap:var(--spacing-4)}.alert-item{padding:var(--spacing-4);border-radius:var(--border-radius);border-left:4px solid}.alert-item.warning{background-color:#fef3c7;border-left-color:var(--warning-orange)}.alert-item.watch{background-color:#dbeafe;border-left-color:var(--primary-blue)}.alert-item.advisory{background-color:#d1fae5;border-left-color:var(--success-green)}.alert-item.emergency{background-color:#fee2e2;border-left-color:var(--error-red)}.alert-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-3)}.alert-title{font-weight:600;color:var(--gray-900)}.alert-severity{font-size:var(--font-size-xs);padding:var(--spacing-1) var(--spacing-2);border-radius:var(--border-radius);font-weight:500;text-transform:uppercase}.alert-time{font-size:var(--font-size-sm);color:var(--gray-500);margin-bottom:var(--spacing-2)}.alert-description{color:var(--gray-700);line-height:1.4}.alert-source{margin-bottom:var(--spacing-2)}.alert-source small{color:var(--gray-500);font-size:var(--font-size-xs)}.alert-areas{margin-bottom:var(--spacing-2);padding:var(--spacing-2);background-color:rgba(255,255,255,.1);border-radius:var(--border-radius);font-size:var(--font-size-sm);color:var(--gray-600)}.alert-sources{margin-top:var(--spacing-4);padding:var(--spacing-3);background-color:rgba(255,255,255,.05);border-radius:var(--border-radius);border:var(--border-width) solid var(--glass-border)}.source-title{font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-2);font-size:var(--font-size-sm)}.source-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-1) 0;font-size:var(--font-size-xs)}.source-name{color:var(--text-primary);font-weight:500}.source-status{padding:var(--spacing-1) var(--spacing-2);border-radius:var(--border-radius);font-size:var(--font-size-xs);font-weight:500;text-transform:uppercase}.source-item.success .source-status{background-color:var(--success-green);color:#fff}.source-item.error .source-status{background-color:var(--error-red);color:#fff}.source-error{color:var(--error-red);font-size:var(--font-size-xs);margin-left:var(--spacing-2)}.source-updated{margin-top:var(--spacing-2);padding-top:var(--spacing-2);border-top:var(--border-width) solid var(--glass-border);text-align:center}.source-updated small{color:var(--gray-500)}.no-alerts{text-align:center;padding:var(--spacing-8);color:var(--gray-500);font-style:italic}.discussion-content{display:flex;flex-direction:column;gap:var(--spacing-4)}.discussion-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:var(--spacing-3);border-bottom:var(--border-width) solid var(--gray-200)}.discussion-office{font-weight:600;color:var(--primary-blue)}.discussion-issued{font-size:var(--font-size-sm);color:var(--gray-500)}.discussion-text{color:var(--gray-700);line-height:1.6;white-space:pre-wrap}.discussion-text p,.forecast-text p{margin-bottom:var(--spacing-4);line-height:1.7;text-align:left;text-indent:0}.discussion-text p:last-child,.forecast-text p:last-child{margin-bottom:0}.discussion-text p:first-child,.forecast-text p:first-child{margin-top:0}.discussion-text strong{color:var(--primary-blue);font-weight:600}.discussion-text em{color:var(--warning-color);font-style:normal;font-weight:500}.discussion-text .wind-direction,.forecast-text .wind-direction{color:var(--primary-blue);font-weight:500;background-color:rgba(59,130,246,.1);padding:.1em .3em;border-radius:.25em}.discussion-text .weather-measurement,.forecast-text .weather-measurement{color:var(--accent-teal);font-weight:500;background-color:rgba(13,148,136,.1);padding:.1em .3em;border-radius:.25em}.discussion-source{font-size:var(--font-size-xs);color:var(--gray-400);font-style:italic}.discussion-synopsis{background-color:var(--light-blue);padding:var(--spacing-4);border-radius:var(--border-radius);margin-bottom:var(--spacing-4)}.discussion-synopsis h3{color:var(--primary-blue);margin-bottom:var(--spacing-2)}.tides-content{display:flex;flex-direction:column;gap:var(--spacing-4)}.tide-location-selector{display:flex;flex-direction:column;gap:var(--spacing-2)}.tide-station-dropdown{padding:var(--spacing-3) var(--spacing-4);border:var(--border-width) solid var(--glass-border);border-radius:var(--border-radius);background-color:var(--glass-bg);font-size:var(--font-size-base);font-family:var(--font-family);color:var(--text-primary);cursor:pointer;transition:border-color var(--transition-fast),box-shadow var(--transition-fast);backdrop-filter:blur(5px)}.tide-station-dropdown:focus{outline:0;border-color:var(--primary-blue);box-shadow:0 0 0 3px rgba(59,130,246,.1)}.tide-data-container{margin-top:var(--spacing-4)}.tide-station{margin-bottom:var(--spacing-4)}.tide-station-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-4);padding:var(--spacing-3);border:var(--border-width) solid var(--glass-border);border-radius:var(--border-radius);background-color:rgba(15,37,53,.3);backdrop-filter:blur(5px)}.tide-station-name{font-weight:600;color:var(--text-primary);font-size:var(--font-size-lg)}.tide-date{font-weight:500;color:var(--primary-color);font-size:var(--font-size-base)}.tide-events{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--spacing-3)}.tide-event{padding:var(--spacing-3);border:var(--border-width) solid var(--glass-border);border-radius:var(--border-radius);background-color:rgba(15,37,53,.4);backdrop-filter:blur(5px);text-align:center}.tide-event.high{border-color:var(--accent-teal);background-color:rgba(13,148,136,.2)}.tide-event.low{border-color:var(--text-secondary);background-color:rgba(15,37,53,.6)}.tide-type{font-size:var(--font-size-sm);font-weight:500;color:var(--primary-color);text-transform:uppercase;margin-bottom:var(--spacing-1)}.tide-time{font-weight:600;color:var(--text-primary);margin:var(--spacing-1) 0}.tide-height{font-weight:600;color:var(--accent-teal)}.tide-date-navigation{display:flex;justify-content:center;align-items:center;gap:var(--spacing-4);margin-bottom:var(--spacing-4);padding:var(--spacing-3);border:var(--border-width) solid var(--glass-border);border-radius:var(--border-radius);background-color:rgba(15,37,53,.3);backdrop-filter:blur(5px);width:100%}.tide-date-navigation .next-day,.tide-date-navigation .prev-day{background:0 0;border:var(--border-width) solid var(--glass-border);color:var(--text-primary);padding:var(--spacing-2) var(--spacing-3);border-radius:var(--border-radius);cursor:pointer;font-size:var(--font-size-base);transition:all var(--transition-fast);min-width:40px;backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center}.tide-date-navigation .next-day:hover,.tide-date-navigation .prev-day:hover{background-color:var(--primary-color);border-color:var(--primary-color);color:var(--button-text-dark);box-shadow:0 0 10px var(--ice-glow)}.tide-date-navigation .current-date{font-weight:600;color:var(--text-primary);text-align:center;min-width:200px;font-size:var(--font-size-base);flex:1}.observations-content{display:flex;flex-direction:column;gap:var(--spacing-4)}.station-selector{display:flex;flex-direction:column;gap:var(--spacing-2)}.station-dropdown{padding:var(--spacing-3) var(--spacing-4);border:var(--border-width) solid var(--glass-border);border-radius:var(--border-radius);background-color:var(--glass-bg);font-size:var(--font-size-base);font-family:var(--font-family);color:var(--text-primary);cursor:pointer;transition:border-color var(--transition-fast),box-shadow var(--transition-fast);backdrop-filter:blur(5px)}.station-dropdown:focus{outline:0;border-color:var(--primary-blue);box-shadow:0 0 0 3px rgba(59,130,246,.1)}.station-dropdown:hover{border-color:var(--gray-400)}#station-dropdown option[disabled]{font-weight:600;font-style:italic;color:var(--text-secondary)!important;background-color:var(--deep-ice)!important}#station-dropdown option:not([disabled]){color:var(--text-primary)!important;background-color:var(--glass-bg)!important}.observations-display{margin-top:var(--spacing-4)}.station-data{padding:var(--spacing-4);border:var(--border-width) solid var(--glass-border);border-radius:var(--border-radius);background-color:rgba(15,37,53,.4);backdrop-filter:blur(5px)}.station-data .station-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-3);padding-bottom:var(--spacing-2);border-bottom:var(--border-width) solid var(--gray-200)}.station-data .station-time{font-size:var(--font-size-sm);color:var(--gray-500)}.observation-items{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-3)}.observation-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-2);border:var(--border-width) solid var(--glass-border);border-radius:var(--border-radius);background-color:rgba(15,37,53,.2)}.observation-item .label{font-size:var(--font-size-sm);color:var(--gray-500)}.observation-item .value{font-weight:600;color:var(--text-primary)}.station-link{margin-top:var(--spacing-3);text-align:center}.station-link a{color:var(--primary-color);text-decoration:none;font-size:var(--font-size-sm);transition:all var(--transition-fast)}.station-link a:hover{color:var(--accent-color);text-shadow:0 0 10px var(--ice-glow)}.local-dev-note{margin-top:var(--spacing-3);padding:var(--spacing-2);background-color:rgba(255,165,0,.1);border-radius:var(--border-radius);text-align:center;color:var(--warning-orange);font-size:var(--font-size-sm)}.buoy-region-selector{display:flex;flex-direction:column;gap:var(--spacing-2)}.buoy-region-dropdown{padding:var(--spacing-3) var(--spacing-4);border:var(--border-width) solid var(--glass-border);border-radius:var(--border-radius);background-color:var(--glass-bg);font-size:var(--font-size-base);font-family:var(--font-family);color:var(--text-primary);cursor:pointer;transition:border-color var(--transition-fast),box-shadow var(--transition-fast);backdrop-filter:blur(5px)}.buoy-region-dropdown:focus{outline:0;border-color:var(--primary-blue);box-shadow:0 0 0 3px rgba(59,130,246,.1)}.buoy-data-container{margin-top:var(--spacing-4)}.observation-stations{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--spacing-4)}.observation-station{padding:var(--spacing-4);border:var(--border-width) solid var(--glass-border);border-radius:var(--border-radius);background-color:rgba(15,37,53,.4);backdrop-filter:blur(5px)}.station-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-3);padding-bottom:var(--spacing-2);border-bottom:var(--border-width) solid var(--gray-200)}.station-name{font-weight:600;color:var(--text-primary)}.station-time{font-size:var(--font-size-sm);color:var(--gray-500)}.observation-data{display:flex;flex-direction:column;gap:var(--spacing-2)}.observation-line{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-2);background:rgba(255,255,255,.05);border-radius:var(--border-radius);border-left:3px solid var(--accent-teal)}.observation-value{font-weight:600;color:var(--primary-light)}.observation-item{text-align:center}.observation-label{font-size:var(--font-size-xs);color:var(--gray-500);text-transform:uppercase;margin-bottom:var(--spacing-1)}.observation-value{font-weight:600;color:var(--text-primary)}.observation-unit{font-size:var(--font-size-sm);color:var(--gray-600)}.weather-content{display:flex;flex-direction:column;gap:var(--spacing-4)}.weather-location-selector{display:flex;flex-direction:column;gap:var(--spacing-2)}.weather-location-dropdown{padding:var(--spacing-3) var(--spacing-4);border:var(--border-width) solid var(--glass-border);border-radius:var(--border-radius);background-color:var(--glass-bg);font-size:var(--font-size-base);font-family:var(--font-family);color:var(--text-primary);cursor:pointer;transition:border-color var(--transition-fast),box-shadow var(--transition-fast);backdrop-filter:blur(5px)}.weather-location-dropdown:focus{outline:0;border-color:var(--primary-blue);box-shadow:0 0 0 3px rgba(59,130,246,.1)}.weather-data-container{margin-top:var(--spacing-4)}.weather-forecast{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-4)}.weather-period{padding:var(--spacing-4);border:var(--border-width) solid var(--glass-border);border-radius:var(--border-radius);background-color:rgba(15,37,53,.4);backdrop-filter:blur(5px)}.weather-period-name{font-weight:600;color:var(--gray-900);margin-bottom:var(--spacing-2)}.weather-temperature{font-size:var(--font-size-lg);font-weight:600;color:var(--primary-blue);margin-bottom:var(--spacing-2)}.weather-description{font-size:var(--font-size-sm);color:var(--gray-600);line-height:1.4}@media (max-width:768px){.zone-list{grid-template-columns:1fr}.forecast-periods{grid-template-columns:1fr}.tide-events{grid-template-columns:repeat(2,1fr)}.observation-stations{grid-template-columns:1fr}.observation-data{grid-template-columns:repeat(2,1fr)}}@media (max-width:480px){.region-filters{flex-direction:column}.region-filter{text-align:center}.forecast-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-2)}.alert-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-2)}.discussion-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-2)}.tide-events{grid-template-columns:1fr}.tide-date-navigation{gap:var(--spacing-2);padding:var(--spacing-2);width:100%}.tide-date-navigation .current-date{min-width:150px;font-size:var(--font-size-sm);flex:1}.tide-date-navigation .next-day,.tide-date-navigation .prev-day{padding:var(--spacing-1) var(--spacing-2);font-size:var(--font-size-sm);min-width:32px}.tide-station-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-2);text-align:left}.tide-station-name{font-size:var(--font-size-base)}.tide-date{font-size:var(--font-size-sm)}}.tides-currents-content{display:flex;flex-direction:column;gap:var(--spacing-4)}.date-navigation-controls{display:flex;justify-content:center;align-items:center;gap:var(--spacing-4);margin-bottom:var(--spacing-4);padding:var(--spacing-3);border:var(--border-width) solid var(--glass-border);border-radius:var(--border-radius);background-color:rgba(15,37,53,.3);backdrop-filter:blur(5px)}.date-navigation-controls .nav-button{background:0 0;border:var(--border-width) solid var(--glass-border);color:var(--text-primary);padding:var(--spacing-2) var(--spacing-3);border-radius:var(--border-radius);cursor:pointer;font-size:var(--font-size-base);transition:all var(--transition-fast);min-width:40px;backdrop-filter:blur(5px)}.date-navigation-controls .nav-button:hover{background-color:var(--primary-color);border-color:var(--primary-color);color:var(--button-text-dark);box-shadow:0 0 10px var(--ice-glow)}.date-navigation-controls .current-date{font-weight:600;color:var(--text-primary);text-align:center;min-width:200px;font-size:var(--font-size-base);flex:1}.dual-sections{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-4)}.currents-section,.tides-section{display:flex;flex-direction:column;gap:var(--spacing-3);padding:var(--spacing-4);border:var(--border-width) solid var(--glass-border);border-radius:var(--border-radius);background-color:rgba(15,37,53,.2);backdrop-filter:blur(5px)}.section-title{font-size:var(--font-size-lg);font-weight:600;color:var(--primary-light);margin-bottom:var(--spacing-2);text-align:center;border-bottom:1px solid var(--glass-border);padding-bottom:var(--spacing-2)}.current-location-selector,.tide-location-selector{display:flex;flex-direction:column;gap:var(--spacing-2)}.station-dropdown{padding:var(--spacing-3) var(--spacing-4);border:var(--border-width) solid var(--glass-border);border-radius:var(--border-radius);background-color:var(--glass-bg);font-size:var(--font-size-base);font-family:var(--font-family);color:var(--text-primary);cursor:pointer;transition:border-color var(--transition-fast),box-shadow var(--transition-fast);backdrop-filter:blur(5px)}.station-dropdown:focus{outline:0;border-color:var(--primary-blue);box-shadow:0 0 0 3px rgba(59,130,246,.1)}.current-data-container,.tide-data-container{margin-top:var(--spacing-3);min-height:200px}.station-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-3);padding:var(--spacing-2);border:var(--border-width) solid var(--glass-border);border-radius:var(--border-radius);background-color:rgba(15,37,53,.4);backdrop-filter:blur(5px)}.station-name{font-weight:600;color:var(--text-primary);font-size:var(--font-size-base)}.station-date{font-weight:500;color:var(--primary-color);font-size:var(--font-size-sm)}.current-events,.tide-events{display:flex;flex-direction:column;gap:var(--spacing-2)}.current-event,.tide-event{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-2);border:var(--border-width) solid var(--glass-border);border-radius:var(--border-radius);background-color:rgba(15,37,53,.4);backdrop-filter:blur(5px)}.tide-event.high{border-color:var(--accent-teal);background-color:rgba(13,148,136,.2)}.tide-event.low{border-color:var(--text-secondary);background-color:rgba(15,37,53,.6)}.current-event.flood{border-color:var(--primary-blue);background-color:rgba(59,130,246,.2)}.current-event.ebb{border-color:var(--text-secondary);background-color:rgba(15,37,53,.6)}.current-event.slack{border-color:var(--text-muted);background-color:rgba(75,85,99,.2)}.event-type{font-size:var(--font-size-sm);font-weight:500;color:var(--primary-color);text-transform:uppercase;flex:1}.event-time{font-weight:600;color:var(--text-primary);flex:1;text-align:center}.event-value{font-weight:600;color:var(--accent-teal);flex:1;text-align:right}@media (max-width:1024px){.dual-sections{grid-template-columns:1fr;gap:var(--spacing-3)}.date-navigation-controls .current-date{min-width:180px;font-size:var(--font-size-sm)}}@media (max-width:768px){.currents-section,.tides-section{padding:var(--spacing-3)}.date-navigation-controls{gap:var(--spacing-2);padding:var(--spacing-2)}.date-navigation-controls .nav-button{padding:var(--spacing-1) var(--spacing-2);font-size:var(--font-size-sm);min-width:32px}.station-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-1);text-align:left}.event-time,.event-type,.event-value{font-size:var(--font-size-xs)}.current-event,.tide-event{flex-direction:column;text-align:center;gap:var(--spacing-1)}.current-event .event-time,.current-event .event-value,.tide-event .event-time,.tide-event .event-value{text-align:center}}@media (max-width:480px){.date-navigation-controls .current-date{min-width:150px;font-size:var(--font-size-xs)}.section-title{font-size:var(--font-size-base)}.station-dropdown{padding:var(--spacing-2);font-size:var(--font-size-sm);min-height:44px}.dropdown-label{font-size:var(--font-size-xs);margin-bottom:var(--spacing-1)}}.warnings-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-4);padding:var(--spacing-3);background:rgba(255,255,255,.05);border-radius:var(--border-radius);border-left:3px solid var(--warning-orange)}.office-info{display:flex;flex-direction:column;gap:var(--spacing-1)}.last-updated{font-size:var(--font-size-sm);color:var(--text-secondary);font-weight:400}.refresh-info{text-align:right;flex-shrink:0}.warnings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:var(--spacing-4)}.warning-box{border:var(--border-width) solid var(--glass-border);border-radius:var(--border-radius);background-color:rgba(15,37,53,.4);backdrop-filter:blur(5px);overflow:hidden;transition:all var(--transition-fast)}.warning-box.active{border-left:4px solid var(--error-red);background-color:rgba(220,38,38,.1)}.warning-box.inactive{border-left:4px solid var(--gray-500);background-color:rgba(15,37,53,.2)}.warning-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-3);background:rgba(255,255,255,.05);border-bottom:var(--border-width) solid var(--glass-border)}.warning-title{display:flex;flex-direction:column;gap:var(--spacing-1)}.warning-code{font-size:var(--font-size-xs);color:var(--text-secondary);font-weight:400}.warning-status{padding:var(--spacing-1) var(--spacing-2);border-radius:var(--border-radius);font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase}.warning-status.active{background-color:var(--error-red);color:#fff}.warning-status.inactive{background-color:var(--gray-500);color:#fff}.warning-timestamp{padding:var(--spacing-2) var(--spacing-3);background:rgba(255,255,255,.03);font-size:var(--font-size-sm);color:var(--text-secondary)}.warning-summary{padding:var(--spacing-2) var(--spacing-3);background:rgba(255,255,255,.05);font-size:var(--font-size-sm);color:var(--primary-light);font-weight:500;border-left:2px solid var(--accent-teal)}.warning-content{padding:var(--spacing-3)}.warning-content.expandable{position:relative}.content-text{line-height:1.6;color:var(--text-secondary);font-size:var(--font-size-sm);max-height:150px;overflow:hidden;transition:max-height var(--transition-fast)}.warning-content.expanded .content-text{max-height:none;overflow:visible}.expand-btn{background:0 0;border:var(--border-width) solid var(--glass-border);color:var(--primary-light);padding:var(--spacing-2) var(--spacing-3);border-radius:var(--border-radius);cursor:pointer;font-size:var(--font-size-sm);margin-top:var(--spacing-2);width:100%;transition:all var(--transition-fast);backdrop-filter:blur(5px)}.expand-btn:hover{background-color:var(--primary-color);border-color:var(--primary-color);color:var(--button-text-dark)}.expand-btn .collapse-text{display:none}.warning-content.expanded .expand-btn .expand-text{display:none}.warning-content.expanded .expand-btn .collapse-text{display:inline}.warning-link{padding:var(--spacing-2) var(--spacing-3);background:rgba(255,255,255,.03);text-align:center;border-top:var(--border-width) solid var(--glass-border)}.warning-link a{color:var(--accent-teal);text-decoration:none;font-size:var(--font-size-sm);font-weight:500}.warning-link a:hover{color:var(--primary-light);text-decoration:underline}.retry-btn{background:var(--primary-color);border:none;color:var(--button-text-dark);padding:var(--spacing-2) var(--spacing-4);border-radius:var(--border-radius);cursor:pointer;font-size:var(--font-size-sm);font-weight:500;transition:all var(--transition-fast)}.retry-btn:hover{background-color:var(--accent-color);box-shadow:0 0 10px var(--ice-glow)}@media (max-width:768px){.warnings-grid{grid-template-columns:1fr}.warnings-header{flex-direction:column;gap:var(--spacing-2)}.refresh-info{text-align:left}}@media (max-width:480px){.warning-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-2)}.content-text{font-size:var(--font-size-xs);max-height:100px}.expand-btn{padding:var(--spacing-1) var(--spacing-2);font-size:var(--font-size-xs)}}