.report-masthead{border-bottom:1px solid var(--line-strong);background:var(--paper-strong)}.masthead-inner{justify-content:space-between;align-items:flex-end;gap:1rem;min-height:auto;padding-block:1rem;display:flex}.report-title-block h1{letter-spacing:0;margin-bottom:.45rem;font-size:2rem}.report-status{color:var(--ink-soft);font-family:var(--data);flex-wrap:wrap;gap:.3rem .55rem;margin-bottom:0;font-size:.72rem;display:flex}.hazard-strip{border-bottom:2px solid var(--on-warm);color:var(--on-warm);background:var(--coral);text-decoration:none;display:block}.hazard-strip .shell{grid-template-columns:auto 1fr auto;align-items:center;gap:.8rem 1.5rem;min-height:3.45rem;padding-block:.55rem;font-size:.76rem;display:grid}.hazard-strip strong{letter-spacing:.1em;text-transform:uppercase;font-size:.65rem}.hazard-strip:hover{background:var(--yellow)}.answer-section{border-bottom:2px solid var(--line-strong);background:var(--blue);padding-block:clamp(1.5rem,3.5vw,3rem)}.answer-grid{grid-template-columns:minmax(0,1.35fr) minmax(22rem,.65fr);align-items:stretch;gap:clamp(1.4rem,4vw,4rem);display:grid}.best-window-card,.source-pulse{overflow-wrap:anywhere;min-width:0}.best-window-card{border:2px solid var(--ink);background:var(--aqua);box-shadow:var(--shadow);grid-template-columns:1fr;align-items:center;gap:0 2.2rem;padding:clamp(1.4rem,3vw,2.3rem);display:grid}.best-window-card .eyebrow{color:var(--ink);margin-bottom:.45rem}.best-window-card h2{margin-bottom:0;font-size:clamp(2.2rem,4vw,4.4rem)}.best-window-card>p:last-child{max-width:39rem;margin:1rem 0 0;font-size:clamp(.98rem,1.7vw,1.18rem);font-weight:650;line-height:1.55}.forecast-line{flex-wrap:wrap;gap:.25rem .55rem;display:flex}.source-pulse{border:2px solid var(--ink);background:var(--paper-strong);display:grid}.source-pulse>div{align-content:center;gap:.25rem;padding:1.2rem 1.35rem;display:grid}.source-pulse>div+div{border-top:1px solid var(--line-strong)}.source-pulse span{color:var(--ink-soft);letter-spacing:.08em;text-transform:uppercase;font-size:.63rem;font-weight:850}.source-pulse strong{font-family:var(--data);font-variant-numeric:tabular-nums;font-size:1.15rem}.source-pulse small{color:var(--ink-soft);font-size:.7rem}.spot-timeline{border:1px solid var(--line-strong);background:var(--paper-strong);grid-template-columns:5.4rem minmax(0,1fr);display:grid}.timeline-key{border-right:1px solid var(--line-strong);color:var(--ink-soft);letter-spacing:.07em;text-transform:uppercase;grid-template-rows:1.7rem repeat(4,minmax(1.65rem,auto));padding:.45rem .65rem;font-size:.55rem;font-weight:850;display:grid}.timeline-key:before{content:"Time"}.timeline-key span{align-items:center;display:flex}.timeline-scroll{overscroll-behavior-inline:contain;scrollbar-width:thin;min-width:0;overflow-x:auto}.timeline-scroll:focus-visible{outline-offset:-3px}.timeline-hours{min-width:max(100%, calc(var(--timeline-columns) * 4.35rem));grid-template-columns:repeat(var(--timeline-columns), minmax(4.35rem, 1fr));display:grid}.timeline-hour{text-align:center;grid-template-rows:1.7rem repeat(4,minmax(1.65rem,auto));min-width:0;padding:.45rem .35rem;display:grid;position:relative}.timeline-hour+.timeline-hour{border-left:1px solid var(--line)}.timeline-hour--recommended{background:color-mix(in srgb, var(--aqua) 60%, transparent)}.timeline-hour--recommended:before{background:var(--blue-bright);content:"";height:.22rem;position:absolute;top:0;left:0;right:0}.timeline-hour--top{box-shadow:inset 0 0 0 2px var(--line-strong)}.timeline-hour time{color:var(--ink-soft);font-size:.57rem;font-weight:800}.timeline-condition,.timeline-surf,.timeline-wind,.timeline-tide{border-top:1px solid color-mix(in srgb, var(--line) 55%, transparent);min-width:0;font-family:var(--data);font-variant-numeric:tabular-nums;justify-content:center;align-items:center;font-size:.58rem;display:flex}.timeline-condition{width:1.35rem;min-height:1.35rem;font-family:var(--body);border:1px solid;border-radius:50%;place-self:center;font-weight:900}.timeline-hour--good .timeline-condition{color:var(--good);background:var(--good-wash)}.timeline-hour--fair .timeline-condition{color:var(--fair);background:var(--fair-wash)}.timeline-hour--poor .timeline-condition{color:var(--poor);background:var(--poor-wash)}.timeline-hour--unknown .timeline-condition{color:var(--unknown);background:var(--unknown-wash)}.timeline-wind,.timeline-tide{gap:.22rem}.timeline-wind b{color:var(--blue-bright);transform:rotate(var(--wind-rotation,0deg));transform-origin:50%;display:inline-block}.timeline-tide b{color:var(--blue-bright)}.timeline-wind small,.timeline-tide small{color:var(--ink-soft);font-family:var(--data);font-size:.54rem;font-style:normal}.timeline-tide [data-measure-ft]{white-space:nowrap}.spot-timeline--compact{margin-block:.75rem}@media (width<=46rem){.spot-timeline{grid-template-columns:4.7rem minmax(0,1fr)}.timeline-key{padding-inline:.5rem}}@media print{.timeline-scroll{overflow:visible}.timeline-hours{min-width:0}}.report-section{background:var(--paper-strong);padding-block:1rem 2rem}.report-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.25rem 1.05rem;font-size:.76rem;font-weight:800;display:flex}.section-heading.report-section-heading{flex-direction:row;align-items:center;gap:.75rem;margin-bottom:.75rem}.report-section-heading h2{letter-spacing:0;font-size:1.5rem;line-height:1.15}.report-actions a{align-items:center;min-height:2.25rem;display:inline-flex}.report-controls{border:2px solid var(--ink);background:var(--wash);box-shadow:4px 4px 0 var(--ink);grid-template-columns:repeat(3,minmax(9rem,.85fr)) minmax(10rem,1fr) auto;align-items:end;gap:.75rem;padding:.8rem;display:grid}.report-controls label:not(.checkbox-control),.mobile-filter-form label:not(.checkbox-control){gap:.35rem;display:grid}.report-controls label>span,.mobile-filter-form label>span{color:var(--ink-soft);letter-spacing:.09em;text-transform:uppercase;font-size:.62rem;font-weight:850}.report-controls select,.mobile-filter-form select{border:1px solid var(--line-strong);border-radius:var(--radius);width:100%;min-height:2.9rem;color:var(--ink);background:var(--paper-strong);padding:.6rem 2.3rem .6rem .72rem;font-size:.82rem;font-weight:720}.checkbox-control{border:1px solid var(--line-strong);background:var(--paper-strong);cursor:pointer;align-items:center;gap:.6rem;min-height:2.9rem;padding:.6rem .75rem;display:flex}.checkbox-control input{width:1.2rem;height:1.2rem;accent-color:var(--blue)}.mobile-filter-bar{display:none}.mobile-filter-bar [data-filter-count]{min-width:1.25rem;min-height:1.25rem;color:var(--solid-ink);background:var(--solid);border-radius:999px;place-items:center;margin-left:.4rem;font-size:.62rem;display:inline-grid}.active-filters{flex-wrap:wrap;gap:.5rem;margin-top:1rem;display:flex}.filter-chip{border:1px solid var(--line-strong);min-height:2rem;color:var(--ink);background:var(--paper-strong);cursor:pointer;border-radius:999px;padding:.35rem .65rem;font-size:.68rem;font-weight:800}.report-count-line{color:var(--ink);letter-spacing:.09em;text-transform:uppercase;margin-top:1.25rem;font-size:.68rem;font-weight:850}.desktop-report{display:block}.mobile-report{display:none}.desktop-coast-group+.desktop-coast-group{margin-top:1.6rem}.coast-heading{border-bottom:2px solid var(--line-strong);justify-content:space-between;align-items:center;padding:1rem .8rem .55rem;display:flex}.coast-heading h3{color:var(--blue-bright);font-family:var(--body);letter-spacing:.11em;text-transform:uppercase;margin:0;font-size:.7rem;font-weight:900}.coast-heading span{color:var(--ink-soft);font-size:.63rem}.spot-table{border-collapse:collapse;table-layout:fixed;width:100%}.spot-table thead{z-index:5;color:var(--ink-soft);background:var(--paper-strong);position:sticky;top:0}.spot-table th,.spot-table td{border-bottom:1px solid var(--line);text-align:left;vertical-align:middle;padding:.9rem .75rem}.spot-table thead th{letter-spacing:.08em;text-transform:uppercase;padding-block:.65rem;font-size:.59rem;font-weight:850}.spot-table thead th:first-child{width:23%}.spot-table thead th:nth-child(2){width:12%}.spot-table thead th:nth-child(3){width:11%}.spot-table thead th:nth-child(4){width:13%}.spot-table thead th:nth-child(5){width:15%}.spot-table thead th:nth-child(6){width:12%}.spot-table thead th:nth-child(7){width:3.5rem}.spot-table thead small{font-size:inherit;font-weight:inherit;text-transform:lowercase;display:block}.spot-table tbody:not([hidden])>tr:first-child:hover{background:var(--paper)}.spot-table td>strong,.desktop-spot-content>span>a{font-size:.78rem;font-weight:800}.spot-table td>small,.desktop-spot-cell small{color:var(--ink-soft);margin-top:.18rem;font-size:.61rem;font-weight:600;display:block}.desktop-spot-content{grid-template-columns:2.75rem minmax(0,1fr);align-items:center;gap:.5rem;display:grid}.desktop-spot-content>span{min-width:0}.desktop-spot-content>span>a{font-family:var(--display);letter-spacing:-.025em;text-overflow:ellipsis;white-space:nowrap;font-size:1.05rem;text-decoration:none;display:block;overflow:hidden}.desktop-spot-content>span>a:hover{text-decoration:underline}.favorite-button{width:2.75rem;height:2.75rem;color:var(--ink-soft);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;padding:0;font-size:1.15rem;display:grid}.favorite-button:hover,.favorite-button[aria-pressed=true]{color:var(--fair);background:var(--fair-wash)}.condition-text{align-items:center;gap:.4rem;font-size:.76rem;display:inline-flex}.condition-text:before{content:"";background:currentColor;border:1px solid;border-radius:50%;flex-shrink:0;width:.62rem;height:.62rem}.timeline-toggle{width:2.75rem;height:2.75rem;color:var(--blue-bright);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:50%;place-items:center;padding:0;font-size:1.2rem;font-weight:900;display:grid}.timeline-toggle:hover,.timeline-toggle[aria-expanded=true]{border-color:var(--line-strong);background:var(--wash)}.desktop-timeline-row>td{background:var(--paper);padding:.25rem .75rem 1.4rem}.desktop-timeline-row .detail-actions{justify-content:flex-end;margin-top:.65rem}.filter-dialog{border:2px solid var(--line-strong);width:min(31rem,100% - 1.3rem);max-height:calc(100dvh - 2rem);color:var(--ink);background:var(--paper-strong);box-shadow:var(--shadow);padding:0}.filter-dialog::backdrop{background:#0717139e}.mobile-filter-form{gap:1rem;padding:1rem;display:grid}.filter-dialog-heading,.filter-dialog-actions{justify-content:space-between;align-items:center;gap:1rem;display:flex}.filter-dialog-heading h3{margin:0;font-size:1.8rem}.filter-close{border:1px solid var(--line-strong);width:2.75rem;height:2.75rem;color:var(--ink);cursor:pointer;background:0 0;border-radius:50%;padding:0;font-size:1.5rem}.mobile-spot-card{border-bottom:1px solid var(--line);background:var(--paper-strong);padding:1rem .7rem 1rem 3.5rem;position:relative}.mobile-spot-card:nth-child(odd){background:color-mix(in srgb, var(--paper) 55%, var(--paper-strong))}.favorite-button--card{position:absolute;top:.78rem;left:.35rem}.mobile-card-primary,.mobile-card-secondary,.mobile-card-tertiary{grid-template-columns:minmax(0,1.4fr) minmax(6.2rem,.8fr);gap:.8rem;display:grid}.mobile-card-primary{align-items:baseline}.mobile-card-primary h4{font-family:var(--display);letter-spacing:-.03em;margin:0;font-size:1.28rem;line-height:1.1}.mobile-card-primary a{text-decoration:none}.mobile-card-primary>strong,.mobile-card-secondary strong,.mobile-card-tertiary strong{font-family:var(--data);font-size:.72rem}.mobile-card-secondary,.mobile-card-tertiary{margin-top:.7rem}.mobile-card-secondary>span,.mobile-card-tertiary>span{align-content:start;gap:.12rem;display:grid}.mobile-card-secondary small,.mobile-card-tertiary small{color:var(--ink-soft);letter-spacing:.08em;text-transform:uppercase;font-size:.54rem;font-weight:850}.mobile-card-tertiary em{color:var(--ink-soft);font-size:.62rem;font-style:normal}.mobile-card-timeline{margin-top:.75rem;font-size:.7rem}.mobile-card-timeline>summary{width:fit-content;min-height:2rem;color:var(--blue-bright);cursor:pointer;padding-block:.35rem;font-weight:800}.mobile-card-timeline>a{align-items:center;min-height:2.75rem;font-weight:800;display:inline-flex}@media (width<=60rem){.report-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.spot-table th,.spot-table td{padding-inline:.5rem}}@media (width<=46rem){.report-section-heading{gap:.8rem}.report-actions{justify-content:flex-start}.report-controls--desktop{display:none}.mobile-filter-bar{display:flex}.desktop-report{display:none}.mobile-report{border-top:2px solid var(--line-strong);display:block}.mobile-coast-group{border-bottom:2px solid var(--line-strong)}.report-count-line{margin-top:1rem}.filter-dialog{width:calc(100% - 1.3rem);margin-block:auto .65rem}}@media print{.report-controls,.mobile-filter-bar,.active-filters,.filter-dialog,.mobile-report,.favorite-button,.timeline-toggle,.desktop-timeline-row{display:none!important}.desktop-report{display:block!important}}.sources-section{background:var(--wash);padding-block:1rem}.sources-layout{grid-template-columns:minmax(18rem,.7fr) minmax(0,1.3fr);align-items:start;gap:clamp(2rem,7vw,7rem);display:grid}.sources-intro{position:sticky;top:2rem}.sources-intro p:not(.eyebrow){max-width:35rem;color:var(--ink-soft)}.sources-intro a{font-size:.78rem;font-weight:800}.sources-panel>summary{border-block:2px solid var(--line-strong);cursor:pointer;justify-content:space-between;align-items:center;gap:1rem;min-height:3.2rem;padding:.75rem 0;font-weight:800;display:flex}.sources-panel>summary span{color:var(--ink-soft);font-family:var(--data);font-size:.66rem}.source-list{border-top:0}.source-list article{border-bottom:1px solid var(--line);grid-template-columns:1fr auto;gap:2rem;padding-block:1.25rem;display:grid}.source-list p{color:var(--blue-bright);letter-spacing:.08em;text-transform:uppercase;margin-bottom:.3rem;font-size:.62rem;font-weight:850}.source-list h3{font-family:var(--body);letter-spacing:-.02em;margin-bottom:.3rem;font-size:1rem;line-height:1.3}.source-list small{color:var(--ink-soft);font-size:.7rem}.source-state{align-content:start;justify-items:end;gap:.35rem;min-width:8rem;display:grid}.source-state strong{letter-spacing:.07em;text-transform:uppercase;border:1px solid;border-radius:999px;padding:.22rem .42rem;font-size:.57rem}.source-state--current{color:var(--good);background:var(--good-wash)}.source-state--stale,.source-state--delayed{color:var(--fair);background:var(--fair-wash)}.source-state--unavailable,.source-state--not-applicable{color:var(--poor);background:var(--poor-wash)}.source-state time{color:var(--ink-soft);font-family:var(--data);font-size:.6rem}
