.psfo-public { max-width: 1180px; margin: 0 auto; }
.psfo-public__header h2 { margin: 0 0 6px; }
.psfo-public__header p { margin: 0 0 20px; }
.psfo-public__filters { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 12px; }
.psfo-public__filters button { padding: 8px 14px; border: 1px solid #c7c7c7; border-radius: 999px; background: #fff; color: inherit; cursor: pointer; font: inherit; }
.psfo-public__filters button.is-active, .psfo-public__filters button:hover { background: #1e3b2f; border-color: #1e3b2f; color: #fff; }
.psfo-public__legend { display: flex; flex-wrap: wrap; gap: 16px; margin: 0 0 24px; font-size: .9em; }
.psfo-public__legend span { display: inline-flex; align-items: center; gap: 7px; }
.psfo-status { display: inline-block; flex: 0 0 auto; width: 11px; height: 11px; border-radius: 50%; }
.psfo-status--green { background: #398746; }.psfo-status--amber { background: #d38a17; }.psfo-status--red { background: #bf3b34; }
.psfo-public__rivers { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.psfo-public__river { border: 1px solid #d6d6d0; border-radius: 4px; overflow: hidden; }
.psfo-public__river h3 { margin: 0; padding: 13px 16px; background: #f4f3ef; font-size: 1.1em; }
.psfo-public__fishery { border-top: 1px solid #e5e4e0; }
.psfo-public__fishery summary { display: flex; align-items: center; gap: 10px; padding: 13px 16px; cursor: pointer; list-style: none; }
.psfo-public__fishery summary::-webkit-details-marker { display: none; }
.psfo-public__fishery summary::after { content: '+'; margin-left: auto; color: #59635d; font-size: 1.3em; }
.psfo-public__fishery[open] summary::after { content: '−'; }
.psfo-public__fishery summary:hover { background: #fafaf8; }
.psfo-public__name { font-weight: 600; }.psfo-public__status-label { margin-left: auto; color: #59635d; font-size: .85em; }
.psfo-public__detail { display: grid; grid-template-columns: 130px 1fr; gap: 16px; padding: 0 16px 16px 37px; }
.psfo-public__image img { display: block; width: 130px; height: 92px; object-fit: cover; }.psfo-public__copy p { margin: 0 0 10px; }.psfo-public__copy p:last-child { margin-bottom: 0; }.psfo-public__actions { padding-top: 10px; border-top: 1px solid #e5e4e0; }
.psfo-public__empty { margin: 20px 0 0; }
.psfo-public__river.is-hidden, .psfo-public__fishery.is-hidden { display: none; }
@media (max-width: 700px) { .psfo-public__rivers { grid-template-columns: 1fr; }.psfo-public__detail { grid-template-columns: 1fr; padding-left: 16px; }.psfo-public__image img { width: 100%; height: auto; max-height: 220px; }.psfo-public__status-label { display: none; } }

.psfo-dashboard { padding: 20px; border: 1px solid #d6d6d0; background: #fff; }
.psfo-dashboard h3 { margin: 0 0 14px; font-size: 1.1em; }
.psfo-dashboard__counts { display: flex; flex-wrap: wrap; gap: 12px 18px; margin-bottom: 16px; }
.psfo-dashboard__counts span { display: inline-flex; align-items: center; gap: 7px; }
.psfo-dashboard__alerts { margin: 0; padding: 12px 0 0; border-top: 1px solid #e5e4e0; list-style: none; }
.psfo-dashboard__alerts li { display: flex; align-items: center; gap: 8px; margin: 7px 0; }
.psfo-dashboard__clear { margin: 0; padding-top: 12px; border-top: 1px solid #e5e4e0; }
.psfo-dashboard__link { margin: 16px 0 0; }
@media (min-width: 701px) {
  .psfo-public__river:has(.psfo-public__fishery[open]) {
    grid-column: 1 / -1;
  }
}
.psfo-public__detail:not(:has(.psfo-public__image)) {
  grid-template-columns: 1fr;
}
