:root{--cds-ui-background:#ffffff;--cds-text-primary:#161616;--cds-text-secondary:#525252;--cds-ui-border:#e0e0e0;--cds-interactive-01:#0f62fe;--club-open-hour-bg:rgba(34,197,94,0.15);--night-hour-bg:#f3f4f6;--skeleton-base:#ececec;--skeleton-highlight:#f8f8f8;--fc-sticky-w:68px;--fc-focus:#0f62fe}html.dark{--cds-ui-background:#161616;--cds-text-primary:#f4f4f4;--cds-text-secondary:#c6c6c6;--cds-ui-border:#393939;--club-open-hour-bg:rgba(34,197,94,0.15);--night-hour-bg:#111827;--skeleton-base:#262626;--skeleton-highlight:#333333;--fc-focus:#78a9ff}.app-card{font-family:'IBM Plex Sans',-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;background:#ffffff;border:none;border-radius:0;box-shadow:none;width:100%;max-width:100%;margin:0;overflow:hidden;color:var(--cds-text-primary);box-sizing:border-box}.app-card *{box-sizing:border-box;-webkit-font-smoothing:antialiased}@keyframes skeleton-shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}.skeleton-shimmer{background:linear-gradient(90deg,var(--skeleton-base) 0%,var(--skeleton-highlight) 50%,var(--skeleton-base) 100%);background-size:200% 100%;animation:skeleton-shimmer 1.5s infinite linear;border-radius:2px}.skeleton-pill{display:inline-block;height:11px;width:18px;margin:0 auto}.skeleton-pill.wide{width:32px}.skeleton-circle{display:inline-block;width:16px;height:16px;border-radius:50%;margin:0 auto}.skeleton-bar-fill{width:80%;margin:0 auto;border-radius:2px 2px 0 0}.view-switcher-container{display:flex;justify-content:space-between;align-items:center;padding:0.6rem 0.85rem;border-bottom:1px solid var(--cds-ui-border);background-color:#ffffff}.carbon-switcher{display:inline-flex;border:1px solid #161616;border-radius:2px;overflow:hidden;background-color:#ffffff}.carbon-switcher-btn{padding:0.35rem 1.1rem;font-size:0.82rem;font-weight:500;cursor:pointer;border:none;background:#ffffff;color:#161616;transition:all 0.15s ease-in-out;outline:none;user-select:none}.carbon-switcher-btn.active{background:#161616;color:#ffffff}.footer-actions{display:inline-flex;align-items:center;gap:0.35rem}.status-badge.micro{font-size:0.62rem;border-radius:9999px;padding:0.18rem 0.5rem;display:inline-flex;align-items:center;gap:0.3rem;font-weight:500;letter-spacing:-0.01em;border:none;line-height:1.1;text-decoration:none;color:inherit;cursor:pointer;transition:background-color 0.2s ease,color 0.2s ease,opacity 0.15s ease}.status-badge.micro:hover{opacity:0.88;text-decoration:none;color:inherit}.status-badge.micro.live{background-color:#defbe6;color:#0e6027}.status-badge.micro.updating{background-color:#fef3c7;color:#92400e}.status-badge.micro.demo{background-color:#edf5ff;color:#0353e9}.status-badge.micro .status-dot{width:5px;height:5px;border-radius:50%;background-color:#24a148;flex-shrink:0}.table-scroll-container{width:100%;overflow-x:auto;overflow-y:hidden;background:#ffffff;position:relative;scrollbar-width:thin;scrollbar-color:#c6c6c6 #f4f4f4;-webkit-overflow-scrolling:touch}.table-scroll-container::-webkit-scrollbar{height:6px}.table-scroll-container::-webkit-scrollbar-track{background:#f4f4f4}.table-scroll-container::-webkit-scrollbar-thumb{background-color:#c6c6c6;border-radius:3px}table.structured-forecast{border-collapse:collapse;width:max-content;min-width:100%;text-align:center;font-size:0.8125rem}table.structured-forecast th,table.structured-forecast td{border-bottom:1px solid #e0e0e0;border-right:1px solid #e0e0e0;vertical-align:middle;padding:0.45rem 0.4rem;white-space:nowrap}table.structured-forecast th:first-child,table.structured-forecast td:first-child{position:sticky;left:0;z-index:25;background-color:#ffffff;text-align:left;font-weight:400;color:var(--cds-text-primary);border-right:1px solid #d4d4d4;box-shadow:4px 0 8px -2px rgba(0,0,0,0.08);min-width:var(--fc-sticky-w);max-width:var(--fc-sticky-w);padding-left:0.4rem;padding-right:0.25rem}table.structured-forecast th:first-child::after,table.structured-forecast td:first-child::after{content:"";position:absolute;top:0;right:-6px;bottom:-1px;width:6px;pointer-events:none;background:linear-gradient(to right,rgba(0,0,0,0.08),rgba(0,0,0,0))}.unit-label{display:block;font-size:0.65rem;color:#6f6f6f;font-weight:normal;margin-top:1px}table.structured-forecast.hourly-view th,table.structured-forecast.hourly-view td{padding:0.25rem 0;min-width:27px;max-width:29px;font-size:0.72rem}table.structured-forecast.hourly-view th:first-child,table.structured-forecast.hourly-view td:first-child{min-width:var(--fc-sticky-w);max-width:var(--fc-sticky-w);padding:0.3rem 0.25rem;font-size:0.7rem}table.structured-forecast.hourly-view .day-group-header{text-align:center;font-size:0.75rem;font-weight:600;color:#161616;background-color:transparent;border-bottom:1px solid #c6c6c6;border-right:1px solid #c6c6c6;padding:0.25rem 0.4rem}table.structured-forecast.hourly-view .hour-time{font-size:0.7rem;font-weight:400;color:#525252;display:block;letter-spacing:-0.02em;position:relative;z-index:12}.row-hour-header th{transition:background-color 0.2s ease;position:relative}table.structured-forecast.hourly-view .row-temp td{padding-top:0!important;padding-bottom:0!important;height:20px}table.structured-forecast.hourly-view .wind-histo-cell{height:139px;vertical-align:bottom!important;padding:0!important;background-color:transparent!important;position:relative;overflow:visible}.wind-sched-fill{position:absolute;top:0;background-color:var(--club-open-hour-bg);z-index:1;pointer-events:none}.wind-night-fill{position:absolute;top:0;background-color:var(--night-hour-bg);z-index:1;pointer-events:none}.wind-sched-line{position:absolute;top:0;width:1px;z-index:11;pointer-events:none}.wind-sched-line.line-open{background-color:#22c55e}.wind-sched-line.line-dock{background-color:#f97316}.wind-sched-marker{position:absolute;top:-3px;z-index:12;pointer-events:none;white-space:nowrap}.wind-sched-marker.marker-open{transform:translateX(-100%);margin-left:4px}.wind-sched-marker.marker-dock{transform:translateX(0);margin-left:-4px}.wind-club-flag{font-size:0.58rem;font-weight:600;line-height:1.15;padding:0.12rem 0.32rem;border-radius:0;box-shadow:none;pointer-events:none;letter-spacing:-0.01em}.wind-club-flag.flag-open{background-color:#22c55e;color:#000000}.wind-club-flag.flag-dock{background-color:#f97316;color:#000000}.wind-histo-container{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:139px;width:100%;position:relative;z-index:2}.wind-histo-val{font-size:0.72rem;font-weight:400;color:#161616;line-height:1.1;margin-bottom:2px}.wind-histo-bar{width:100%;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;border-top:1px solid rgba(0,0,0,0.12);box-sizing:border-box;padding:2px 0 3px 0;transition:height 0.2s ease}table.structured-forecast.hourly-view .weather-icon-cell{height:24px;display:flex;align-items:center;justify-content:center;cursor:help}table.structured-forecast.hourly-view .weather-icon-cell svg{width:20px;height:20px}table.structured-forecast.seven-day-view th,table.structured-forecast.seven-day-view td{min-width:52px;padding:0.35rem 0.2rem;font-size:0.76rem}table.structured-forecast.seven-day-view th:first-child,table.structured-forecast.seven-day-view td:first-child{min-width:var(--fc-sticky-w);max-width:var(--fc-sticky-w);padding:0.35rem 0.25rem;font-size:0.7rem}table.structured-forecast.seven-day-view .day-name{font-size:0.78rem;font-weight:600;color:#161616;display:block}table.structured-forecast.seven-day-view .day-date{font-size:0.68rem;color:#525252;display:block}.wind-calm{background-color:#eef8fc!important;color:#161616!important}.wind-light{background-color:#dcf4fb!important;color:#161616!important}.wind-mod{background-color:#b4e7fa!important;color:#161616!important}.wind-breeze{background-color:#abf0d4!important;color:#161616!important}.wind-green{background-color:#80ff80!important;color:#161616!important}.wind-yellow{background-color:#ffea29!important;color:#161616!important}.wind-lt-orange{background-color:#ffba42!important;color:#161616!important}.wind-dk-orange{background-color:#ff8c1a!important;color:#161616!important}.wind-red{background-color:#e52222!important;color:#ffffff!important}.wind-dk-red{background-color:#b70c18!important;color:#ffffff!important}.wind-purple{background-color:#9f135b!important;color:#ffffff!important}.wind-arrow{display:inline-block;transition:transform 0.2s ease;color:inherit}.wind-deg{font-size:0.62rem;line-height:1;display:block;color:inherit;opacity:0.92;margin-top:1px}.wind-overview-section{background:#ffffff;border-top:1px solid #e0e0e0;padding:0.55rem 0.75rem 0.45rem 0.75rem;user-select:none;-webkit-user-select:none;touch-action:none}.overview-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:0.35rem;flex-wrap:wrap;gap:0.25rem}.overview-title{font-size:0.7rem;font-weight:600;text-transform:uppercase;letter-spacing:0.04em;color:#525252;display:flex;align-items:center;gap:0.4rem}.peak-badge{font-size:9.5px;font-weight:600;background-color:#f3f4f6;color:#374151;padding:0.1rem 0.35rem;border-radius:3px}.overview-hint{font-size:10.5px;color:#9ca3af}.timeline-wrapper{position:relative;background:#f4f4f4;border:1px solid #dcdcdc;border-radius:4px;height:74px;overflow:hidden;cursor:pointer;touch-action:none}.timeline-bars-container{display:flex;height:55px;align-items:flex-end;width:100%}.timeline-bar{flex:1;min-width:1px;transition:height 0.2s ease;position:relative}.timeline-days-labels{display:flex;height:18px;border-top:1px solid #e0e0e0;background:#ffffff;width:100%}.timeline-day-label{text-align:center;font-size:0.63rem;font-weight:600;color:#525252;line-height:18px;border-right:1px solid #f0f0f0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.timeline-day-label:last-child{border-right:none}.timeline-selector{position:absolute;top:0;bottom:0;border:2px solid #0f62fe;background-color:rgba(15,98,254,0.12);border-radius:3px;pointer-events:none;z-index:5;box-sizing:border-box;will-change:left;display:none}.issued-footer{padding:0.45rem 0.8rem;font-size:0.68rem;color:#6f6f6f;border-top:1px solid #f0f0f0;background:#fafafa;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:0.4rem}.footer-meta{display:flex;align-items:center;gap:0.6rem;flex-wrap:wrap}html.dark .app-card{background-color:#161616;color:#f4f4f4}html.dark .view-switcher-container{background-color:#161616;border-bottom-color:#393939}html.dark .carbon-switcher{border-color:#525252;background-color:#262626}html.dark .carbon-switcher-btn{background:#262626;color:#f4f4f4}html.dark .carbon-switcher-btn.active{background:#f4f4f4;color:#161616}html.dark .table-scroll-container{background:#161616;scrollbar-color:#525252 #262626}html.dark .table-scroll-container::-webkit-scrollbar-track{background:#262626}html.dark .table-scroll-container::-webkit-scrollbar-thumb{background-color:#525252}html.dark table.structured-forecast th,html.dark table.structured-forecast td{border-bottom-color:#2e2e2e;border-right-color:#2e2e2e}html.dark table.structured-forecast th:first-child,html.dark table.structured-forecast td:first-child{background-color:#161616;color:#f4f4f4;border-right-color:#333333;box-shadow:4px 0 10px -2px rgba(0,0,0,0.5)}html.dark table.structured-forecast th:first-child::after,html.dark table.structured-forecast td:first-child::after{background:linear-gradient(to right,rgba(0,0,0,0.4),rgba(0,0,0,0))}html.dark .unit-label{color:#a8a8a8}html.dark table.structured-forecast.hourly-view .day-group-header{color:#f4f4f4;border-bottom-color:#393939;border-right-color:#393939}html.dark table.structured-forecast.hourly-view .hour-time{color:#a8a8a8}html.dark table.structured-forecast.hourly-view .wind-histo-val{color:#f4f4f4}html.dark table.structured-forecast.seven-day-view .day-name{color:#f4f4f4}html.dark table.structured-forecast.seven-day-view .day-date{color:#a8a8a8}html.dark .wind-sched-line.line-open{background-color:#4ade80}html.dark .wind-sched-line.line-dock{background-color:#fb923c}html.dark .wind-club-flag.flag-open{background-color:#4ade80;color:#000000}html.dark .wind-club-flag.flag-dock{background-color:#fb923c;color:#000000}html.dark .wind-overview-section{background:#161616;border-top-color:#393939}html.dark .overview-title{color:#c6c6c6}html.dark .peak-badge{background-color:#262626;color:#e0e0e0}html.dark .timeline-wrapper{background:#262626;border-color:#393939}html.dark .timeline-days-labels{background:#161616;border-top-color:#393939}html.dark .timeline-day-label{color:#a8a8a8;border-right-color:#262626}html.dark .issued-footer{background:#1c1c1c;border-top-color:#2e2e2e;color:#a8a8a8}html.dark .status-badge.micro.live{background-color:rgba(36,161,72,0.22);color:#42be65}html.dark .status-badge.micro.updating{background-color:rgba(217,119,6,0.25);color:#fcd34d}html.dark .status-badge.micro.demo{background-color:rgba(15,98,254,0.22);color:#78a9ff}@media (max-width:640px){:root{--fc-sticky-w:52px}.app-card{border:none;border-radius:0;box-shadow:none;width:100%;max-width:100%}.view-switcher-container{padding:0.5rem 0.6rem;justify-content:center}.carbon-switcher{width:100%;max-width:280px}.carbon-switcher-btn{flex:1;text-align:center;padding:0.35rem 0.5rem}table.structured-forecast th:first-child,table.structured-forecast td:first-child{padding:0.25rem 0.2rem;font-size:0.64rem}table.structured-forecast.hourly-view th:first-child,table.structured-forecast.hourly-view td:first-child{padding:0.25rem 0.2rem;font-size:0.64rem}table.structured-forecast.hourly-view th,table.structured-forecast.hourly-view td{min-width:24px;max-width:26px;padding:0.2rem 0;font-size:0.68rem}table.structured-forecast.seven-day-view th,table.structured-forecast.seven-day-view td{min-width:37px;max-width:44px;padding:0.25rem 0.1rem;font-size:0.68rem}table.structured-forecast.seven-day-view th:first-child,table.structured-forecast.seven-day-view td:first-child{padding:0.25rem 0.2rem;font-size:0.64rem}table.structured-forecast.seven-day-view .day-name{font-size:0.72rem;letter-spacing:-0.02em}table.structured-forecast.seven-day-view .day-date{font-size:0.62rem;letter-spacing:-0.03em}table.structured-forecast.seven-day-view .weather-icon-cell{height:22px}table.structured-forecast.seven-day-view .weather-icon-cell svg{width:18px;height:18px}table.structured-forecast.seven-day-view .wind-arrow svg{width:10px;height:10px}table.structured-forecast.seven-day-view .wind-deg{font-size:0.58rem}.overview-hint{display:none}.issued-footer{flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:0.35rem;padding:0.35rem 0.6rem}.footer-meta{font-size:0.64rem;line-height:1.1;flex-direction:row;align-items:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.footer-actions{align-self:center;margin-top:0;flex-shrink:0}}table.structured-forecast th:first-child,table.structured-forecast td:first-child{border-bottom:0;border-right:0;box-shadow:inset -1px 0 0 #d4d4d4,inset 0 -1px 0 #e0e0e0,4px 0 8px -2px rgba(0,0,0,0.08)}html.dark table.structured-forecast th:first-child,html.dark table.structured-forecast td:first-child{box-shadow:inset -1px 0 0 #333333,inset 0 -1px 0 #2e2e2e,4px 0 10px -2px rgba(0,0,0,0.5)}.th-btn{display:block;width:100%;margin:0;padding:0;border:0;background:none;color:inherit;font:inherit;letter-spacing:inherit;text-align:inherit;cursor:pointer}.th-btn:focus-visible,.carbon-switcher-btn:focus-visible,.status-badge.micro:focus-visible,.msg-retry:focus-visible,.table-scroll-container:focus-visible{outline:2px solid var(--fc-focus);outline-offset:-2px}.no-data{color:#6f6f6f}.day-closed-tag{display:inline-block;margin-left:0.35rem;padding:0 0.3rem;font-size:0.62rem;font-weight:600;line-height:1.5;color:#a2191f;background-color:#fff1f1;border-radius:2px}table.structured-forecast.seven-day-view .day-closed-tag{display:block;width:max-content;margin:2px auto 0}html.dark .no-data{color:#a8a8a8}html.dark .day-closed-tag{color:#ff8389;background-color:rgba(250,77,86,0.2)}.forecast-message{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:0.75rem;padding:0.6rem 0.85rem;font-size:0.8125rem;line-height:1.4;border-bottom:1px solid var(--cds-ui-border)}.forecast-message[hidden]{display:none}.forecast-message.error{background-color:#fff1f1;color:#750e13}.forecast-message.warn{background-color:#fcf4d6;color:#684e00}html.dark .forecast-message.error{background-color:rgba(250,77,86,0.16);color:#ffb3b8}html.dark .forecast-message.warn{background-color:rgba(241,194,27,0.14);color:#f1c21b}.msg-retry{font:inherit;font-weight:500;padding:0.3rem 0.8rem;border:1px solid currentColor;border-radius:2px;background:transparent;color:inherit;cursor:pointer}.app-card.is-error .table-scroll-container,.app-card.is-error .wind-overview-section{display:none}.status-badge.micro[hidden]{display:none}.status-badge.micro.stale{background-color:#fef3c7;color:#92400e}.status-badge.micro.error{background-color:#fff1f1;color:#a2191f}html.dark .status-badge.micro.stale{background-color:rgba(217,119,6,0.25);color:#fcd34d}html.dark .status-badge.micro.error{background-color:rgba(250,77,86,0.22);color:#ff8389}@media (prefers-reduced-motion:reduce){.skeleton-shimmer{animation:none}.carbon-switcher-btn,.status-badge.micro,.row-hour-header th,.wind-histo-bar,.wind-arrow,.timeline-bar{transition:none}}#forecastCard .view-switcher-container{display:block;padding:0 0 0.75rem;border-bottom:none}#forecastCard .carbon-switcher{position:relative;display:grid;grid-template-columns:1fr 1fr;width:100%;max-width:none;padding:2px;border:none;border-radius:0;background:rgba(118,118,128,0.12);overflow:visible}#forecastCard .carbon-switcher::before{content:"";position:absolute;top:2px;bottom:2px;left:2px;width:calc(50% - 2px);border-radius:0;background:#ffffff;box-shadow:0 3px 8px rgba(0,0,0,0.12),0 3px 1px rgba(0,0,0,0.04);transition:transform 0.25s cubic-bezier(0.2,0.8,0.2,1)}#forecastCard .carbon-switcher:has(#tab7Day.active)::before{transform:translateX(100%)}#forecastCard .carbon-switcher-btn{position:relative;z-index:1;padding:0.4rem 0.5rem;border:none;border-radius:0;background:transparent;color:#1c1c1e;font-size:0.875rem;font-weight:500;text-align:center}#forecastCard .carbon-switcher-btn.active{background:transparent;color:#000000;font-weight:600}#forecastCard .carbon-switcher-btn:focus-visible{outline:2px solid #0a84ff;outline-offset:0}html.dark #forecastCard .view-switcher-container{background-color:transparent}html.dark #forecastCard .carbon-switcher{background:rgba(118,118,128,0.24)}html.dark #forecastCard .carbon-switcher::before{background:#636366;box-shadow:0 3px 8px rgba(0,0,0,0.3)}html.dark #forecastCard .carbon-switcher-btn,html.dark #forecastCard .carbon-switcher-btn.active{background:transparent;color:#ffffff}@media (prefers-reduced-motion:reduce){#forecastCard .carbon-switcher::before{transition:none}}#forecastCard .table-scroll-container{border-top:1px solid var(--cds-ui-border)}
