@charset "UTF-8";
:root {
  --app-font-family: 'Source Sans 3', 'Segoe UI', Arial, sans-serif;
  --widget-padding: 20px;
  --widget-gap: clamp(16px, 2vw, 30px);
  --widget-shadow: 0 2px 8px rgba(15, 23, 42, 0.06);
  --widget-shadow-hover: 0 3px 10px rgba(15, 23, 42, 0.09);
  --link-color: #0b63ce;
  --link-hover-color: #084a9d;
  --link-visited-color: #6f42c1;
  --link-focus-outline: rgba(11, 99, 206, 0.45);
  --link-decoration-color: currentColor;
}

.app-content a[href]:not(.p-button):not(.ui-button):not(.ui-linkbutton):not(.ui-menuitem-link),
.ui-panel-content a[href]:not(.p-button):not(.ui-button):not(.ui-linkbutton):not(.ui-menuitem-link),
.ui-dialog-content a[href]:not(.p-button):not(.ui-button):not(.ui-linkbutton):not(.ui-menuitem-link),
.ui-datatable a[href]:not(.p-button):not(.ui-button):not(.ui-linkbutton):not(.ui-menuitem-link) {
  color: var(--link-color);
  text-decoration-line: underline;
  text-decoration-thickness: 0.12em;
  text-underline-offset: 0.16em;
  text-decoration-color: var(--link-decoration-color);
  font-weight: 500;
  transition: color 0.18s ease, text-decoration-color 0.18s ease, text-shadow 0.18s ease;
}

.app-content a[href]:not(.p-button):not(.ui-button):not(.ui-linkbutton):not(.ui-menuitem-link):hover,
.ui-panel-content a[href]:not(.p-button):not(.ui-button):not(.ui-linkbutton):not(.ui-menuitem-link):hover,
.ui-dialog-content a[href]:not(.p-button):not(.ui-button):not(.ui-linkbutton):not(.ui-menuitem-link):hover,
.ui-datatable a[href]:not(.p-button):not(.ui-button):not(.ui-linkbutton):not(.ui-menuitem-link):hover {
  color: var(--link-hover-color);
  text-decoration-thickness: 0.15em;
}

.app-content a[href]:not(.p-button):not(.ui-button):not(.ui-linkbutton):not(.ui-menuitem-link):visited,
.ui-panel-content a[href]:not(.p-button):not(.ui-button):not(.ui-linkbutton):not(.ui-menuitem-link):visited,
.ui-dialog-content a[href]:not(.p-button):not(.ui-button):not(.ui-linkbutton):not(.ui-menuitem-link):visited,
.ui-datatable a[href]:not(.p-button):not(.ui-button):not(.ui-linkbutton):not(.ui-menuitem-link):visited {
  color: var(--link-visited-color);
}

.app-content a[href]:not(.p-button):not(.ui-button):not(.ui-linkbutton):not(.ui-menuitem-link):focus-visible,
.ui-panel-content a[href]:not(.p-button):not(.ui-button):not(.ui-linkbutton):not(.ui-menuitem-link):focus-visible,
.ui-dialog-content a[href]:not(.p-button):not(.ui-button):not(.ui-linkbutton):not(.ui-menuitem-link):focus-visible,
.ui-datatable a[href]:not(.p-button):not(.ui-button):not(.ui-linkbutton):not(.ui-menuitem-link):focus-visible {
  outline: 2px solid var(--link-focus-outline);
  outline-offset: 2px;
  border-radius: 0.2rem;
  text-decoration-thickness: 0.16em;
}

body {
  font-family: var(--app-font-family);
  color: #2c3e50;
  line-height: 1.6;
  margin: 0;
  min-height: 100vh;
  background: linear-gradient(135deg, rgba(0, 38, 84, 0.9), rgba(0, 140, 186, 0.7)) fixed, url("/static/img/pixabay/water-3664318.jpg") no-repeat center center/cover;
  background-blend-mode: overlay;
}

.app-body {
  min-height: 100vh;
}

.glass {
  background: var(--app-surface, #fff);
  backdrop-filter: none;
}

.glass-panel {
  background: var(--app-surface, #fff);
  backdrop-filter: none;
  border-radius: 1.25rem;
  border: 1px solid rgba(255, 255, 255, 0.2);
  box-shadow: 0 25px 45px rgba(0, 0, 0, 0.15);
  width: 100%;
}

.glassDialog {
  background: var(--app-surface, #fff);
  backdrop-filter: none;
}

.glassBackground {
  background: var(--app-surface, #fff);
  backdrop-filter: none;
}

.glassBackground:hover {
  background: var(--app-surface, #fff);
  backdrop-filter: none;
}

.no-wrap {
  /* Force items in a single row, no wrapping */
  flex-wrap: nowrap !important;
}

.debug-border {
  outline: 1px dashed red;
  background-color: #fafafa;
}

.ui-inputgroup {
  margin-bottom: 1rem;
}

.cookie-dialog .ui-dialog-content {
  padding: 1.5rem 2rem;
  background: transparent;
}

.cookie-text {
  color: #2c3e50;
  font-size: 0.95rem;
  line-height: 1.5;
}

.modern-action {
  border-radius: 999px;
  padding: 0.75rem 1.75rem;
}

.app-shell {
  position: relative;
  z-index: 1;
  /*width: min(1400px, 98%);*/
  margin: 0 auto;
  padding: clamp(1.5rem, 3vw, 3rem) clamp(1rem, 2vw, 2.5rem);
  display: flex;
  flex-direction: column;
  gap: 2rem;
}

.app-hero {
  gap: 1.5rem;
  padding: clamp(1.25rem, 2vw, 2rem);
  align-items: stretch;
}

.app-hero .app-header {
  flex: 2 1 360px;
}

.app-hero .hero-weather {
  flex: 1 1 280px;
}

.app-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1.5rem;
}

.header-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.75rem;
  margin-left: auto;
}

.theme-toggle {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.65rem 1rem;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.25);
  background: rgba(255, 255, 255, 0.18);
  color: #0c436d;
  font-weight: 700;
  letter-spacing: 0.02em;
  cursor: pointer;
  transition: all 0.2s ease;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);
}
.theme-toggle:hover, .theme-toggle:focus {
  outline: none;
  border-color: rgba(255, 255, 255, 0.45);
  background: rgba(255, 255, 255, 0.28);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.15);
}
.theme-toggle--active {
  color: #fefefe;
  background: linear-gradient(135deg, #0f172a, #1e3a8a);
  border-color: rgba(255, 255, 255, 0.35);
}
.theme-toggle__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  height: 1.5rem;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.35);
  color: #0c436d;
}
.theme-toggle__icon i {
  font-size: 0.9rem;
}
.theme-toggle__icon--moon {
  background: rgba(12, 67, 109, 0.2);
  color: #0c436d;
}

.brand {
  display: flex;
  align-items: center;
  gap: 1.25rem;
}

.brand-logo {
  width: 4rem;
  height: 4rem;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.2);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.2);
}

.brand-logo__image {
  max-width: 80%;
  max-height: 80%;
  object-fit: contain;
  display: block;
}

.brand-text {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.brand-title {
  font-size: clamp(1.5rem, 2.4vw, 2.8rem);
  font-weight: 600;
  color: #fff;
  text-shadow: 0 8px 20px rgba(0, 0, 0, 0.35);
}

.brand-subtitle {
  margin: 0;
  font-size: 1rem;
  color: rgba(255, 255, 255, 0.85);
  letter-spacing: 0.05em;
}

.header-highlight {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.3rem;
  text-transform: uppercase;
  font-size: 0.9rem;
  color: rgba(255, 255, 255, 0.95);
  letter-spacing: 0.25em;
}

.live-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.35rem 0.9rem;
  border-radius: 999px;
  background: linear-gradient(120deg, #ff5f6d, #ffc371);
  color: #fff;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.hero-weather {
  padding: clamp(1rem, 2vw, 1.5rem);
  border-radius: 1.25rem;
  border: 1px solid rgba(255, 255, 255, 0.2);
  background: rgba(10, 32, 51, 0.25);
  box-shadow: inset 0 0 30px rgba(0, 0, 0, 0.1);
  display: flex;
  align-items: center;
}

.weather-data {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 1rem;
  width: 100%;
}

.weather-metric {
  padding: 0.5rem;
  border-radius: 1rem;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.15);
  color: #fff;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2);
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
}

.weather-overview {
  width: 100%;
}

.weather-location {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  margin: 0 0 0.65rem 0.25rem;
  color: rgba(255, 255, 255, 0.85);
  font-size: 0.85rem;
}

.weather-metric--interactive {
  background: rgba(255, 255, 255, 0.12);
}

.metric-label {
  font-size: 0.85rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.7);
}

.metric-value {
  font-weight: 600;
  color: #fff;
}

.app-nav {
  padding: 0;
  overflow: visible;
  border-color: rgba(148, 163, 184, 0.18);
  background: linear-gradient(135deg, rgba(15, 23, 42, 0.94), rgba(30, 41, 59, 0.9));
  box-shadow: 0 18px 38px rgba(15, 23, 42, 0.22);
}

.menu-wrapper {
  padding: .45rem;
}

.menu-wrapper form,
.main-menu-form {
  width: 100%;
  margin: 0;
}

body .main-menu.ui-megamenu {
  border: none;
  background: transparent;
  width: 100%;
  box-shadow: none;
  padding: 0;
}

body .main-menu.ui-megamenu .ui-menu-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(10.5rem, 1fr));
  gap: .3rem;
  width: 100%;
  padding: 0;
}

body .main-menu.ui-megamenu .ui-menuitem {
  min-width: 0;
}

body .main-menu.ui-megamenu .ui-menuitem-link {
  position: relative;
  display: flex;
  min-height: 2.85rem;
  width: 100%;
  align-items: center;
  justify-content: flex-start;
  gap: .65rem;
  font-weight: 600;
  letter-spacing: .045em;
  text-transform: uppercase;
  border-radius: .75rem;
  padding: .4rem .65rem;
  border: 1px solid transparent;
  background: transparent;
  color: #dbeafe;
  box-shadow: none;
  transition: background-color .18s ease, border-color .18s ease, color .18s ease, transform .18s ease;
}

body .main-menu.ui-megamenu .ui-menuitem-link .ui-menuitem-text {
  min-width: 0;
  overflow: hidden;
  color: inherit;
  font-size: .78rem;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body .main-menu.ui-megamenu .ui-menuitem-link .ui-menuitem-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 2rem;
  width: 2rem;
  height: 2rem;
  margin: 0;
  border-radius: .6rem;
  background: rgba(56, 189, 248, 0.1);
  color: #7dd3fc;
  font-size: .9rem;
  transition: background-color .18s ease, color .18s ease;
}

body .main-menu.ui-megamenu .ui-menuitem-link:hover,
body .main-menu.ui-megamenu .ui-menuitem-link.ui-state-hover {
  border-color: rgba(125, 211, 252, 0.2);
  background: rgba(56, 189, 248, 0.08);
  color: #f8fafc;
  transform: translateY(-1px);
}

body .main-menu.ui-megamenu .ui-menuitem-link:hover .ui-menuitem-icon,
body .main-menu.ui-megamenu .ui-menuitem-link.ui-state-hover .ui-menuitem-icon {
  background: rgba(56, 189, 248, 0.18);
  color: #bae6fd;
}

body .main-menu.ui-megamenu .ui-menuitem-link:focus-visible {
  outline: 2px solid #38bdf8;
  outline-offset: 2px;
}

body .main-menu.ui-megamenu .main-menu__item--active > .ui-menuitem-link,
body .main-menu.ui-megamenu .ui-menuitem-link.main-menu__item--active {
  border-color: rgba(94, 234, 212, 0.28);
  background: linear-gradient(135deg, rgba(13, 148, 136, 0.2), rgba(14, 165, 233, 0.14));
  color: #f8fafc;
  box-shadow: inset 3px 0 0 #2dd4bf;
}

body .main-menu.ui-megamenu .main-menu__item--active > .ui-menuitem-link .ui-menuitem-icon,
body .main-menu.ui-megamenu .ui-menuitem-link.main-menu__item--active .ui-menuitem-icon {
  background: rgba(45, 212, 191, 0.2);
  color: #99f6e4;
}

.app-toolbar,
.app-content,
.app-footer {
  padding: clamp(1rem, 2vw, 2rem);
}

.app-toolbar:empty {
  display: none;
}

.app-toolbar:not(:has(*)) {
  display: none;
}

.app-content {
  min-height: 45vh;
  min-width: 80vh;
}

.app-footer {
  text-align: center;
  font-size: 0.9rem;
  color: rgba(255, 255, 255, 0.9);
}

.pulse {
  animation: pulse 2.5s infinite;
}

@keyframes pulse {
  0% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.05);
  }
  100% {
    transform: scale(1);
  }
}
@media (max-width: 992px) {
  .app-hero {
    flex-direction: column;
  }

  .hero-weather {
    order: 2;
  }

  .app-header {
    flex-direction: column;
    align-items: flex-start;
  }

  .header-highlight {
    align-items: flex-start;
    text-align: left;
  }

  body .main-menu.ui-megamenu .ui-menu-list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (max-width: 768px) {
  .app-shell {
    width: 100%;
    padding: 1.5rem;
  }

  .app-nav,
  .app-toolbar,
  .app-content,
  .app-footer {
    padding: 1.25rem;
  }

  .menu-wrapper {
    padding: .4rem;
  }

  body .main-menu.ui-megamenu .ui-menu-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 576px) {
  .brand {
    flex-direction: column;
    align-items: flex-start;
  }

  .brand-logo {
    width: 3.5rem;
    height: 3.5rem;
  }

  body .main-menu.ui-megamenu .ui-menu-list {
    grid-template-columns: 1fr;
  }
}
body .ui-dataview .ui-dataview-header {
  background: none;
}

body .ui-dataview .ui-dataview-content {
  background: none;
}

body .ui-panelgrid .ui-panelgrid-cell {
  background: none;
}

.labelColumn {
  text-align: right;
  vertical-align: top;
  padding-right: 10px;
  font-weight: bold;
  white-space: nowrap;
  width: 8% !important;
}

.valueColumn {
  text-align: left;
  vertical-align: top;
  padding-left: 5px;
  /* width: 92% !important;*/
}

@media (max-width: 768px) {
  .labelColumn,
  .valueColumn {
    display: block;
    width: 100%;
    text-align: left;
    padding: 5px 0;
  }
}
.editFishPanel {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  width: 100%;
}

.form-row {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 0.5rem;
}

@media (max-width: 768px) {
  .form-row {
    flex-direction: column;
  }

  .labelColumn {
    text-align: left;
    flex: 1 1 auto;
  }

  .valueColumn {
    flex: 1 1 auto;
  }
}
html, body, .editFishPanel {
  height: 100%;
  margin: 0;
  padding: 0;
}

.editFishPanel {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  height: 100%;
}

.form-row-horizontal {
  display: flex;
  flex-direction: row;
  gap: 2rem;
}

.form-group {
  flex: 1;
  display: flex;
  flex-direction: column;
}

.form-row-vertical {
  flex: 1;
  display: flex;
  flex-direction: column;
}

.labelColumn {
  font-weight: bold;
  margin-bottom: 4px;
}

.valueColumn {
  flex: 1;
}

@media (max-width: 768px) {
  .form-row-horizontal {
    flex-direction: column;
  }
}
.content {
  background: var(--app-surface, #fff);
  backdrop-filter: none;
  display: flex;
  flex-direction: column;
  align-items: baseline;
  justify-content: flex-start;
  min-height: 100vh;
  max-width: 95%;
  margin: 0 auto;
  padding: 2rem;
}

@media screen and (min-width: 768px) {
  .content {
    width: min(1100px, 96vw);
    padding-right: clamp(1rem, 3vw, 2rem);
    padding-left: clamp(1rem, 3vw, 2rem);
  }
}
@media screen and (min-width: 1280px) {
  .content {
    width: min(1400px, 94vw);
    padding-right: clamp(1.5rem, 3vw, 3rem);
    padding-left: clamp(1.5rem, 3vw, 3rem);
    margin: 0 auto;
  }
}
@media screen and (min-width: 1920px) {
  .content {
    width: min(1800px, 92vw);
  }
}
@media screen and (min-width: 2560px) {
  .content {
    width: min(2200px, 90vw);
  }
}
@media screen and (min-width: 3200px) {
  .xl\:col-3 {
    flex: 0 0 auto;
    padding: .5rem;
    width: 12.5%;
  }
}
.content {
  margin-right: auto;
  margin-left: auto;
  width: min(960px, 94vw);
  padding-right: clamp(0.75rem, 2vw, 1.5rem);
  padding-left: clamp(0.75rem, 2vw, 1.5rem);
}

.fullWidth {
  width: 100%;
  max-width: 100%;
}

.alignTopLeft {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: flex-start;
}

.align-top-left .ui-dataview-content {
  display: flex;
  flex-wrap: wrap;
  /* Zeilenumbruch für wenige Elemente erlauben */
  align-content: flex-start;
  /* gesamte Grid-Inhalte oben ausrichten */
  justify-content: flex-start;
  /* Elemente in jeder Zeile links beginnen */
}

.fishPreView {
  background: var(--app-surface, #fff);
  backdrop-filter: none;
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: clamp(0.75rem, 0.6vw, 1.15rem);
  padding: clamp(1rem, calc(0.8vw + 0.5rem), 1.65rem);
  max-width: none;
  width: 100%;
  min-height: clamp(22rem, 26vw, 30rem);
  height: 100%;
  border-radius: 8px;
  border: 1px solid rgba(12, 85, 130, 0.15);
  box-shadow: 0 15px 35px rgba(12, 85, 130, 0.2);
  color: #2c3e50;
  overflow: visible;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.fishPreView:hover {
  transform: translateY(-4px);
  box-shadow: 0 20px 40px rgba(12, 85, 130, 0.25);
}

.fish-preview-header {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  text-align: left;
}

.fish-pretitle {
  font-size: 1.35rem;
  font-weight: 600;
  color: #0c5582;
}

.fish-preview-subtitle {
  font-size: 0.95rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgba(12, 85, 130, 0.85);
}

.fish-preview-image {
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.12);
  display: block;
  width: 100%;
  flex: 0 0 auto;
  overflow: visible;
}
.fish-preview-image .monckImageWrapper,
.fish-preview-image .monck-image,
.fish-preview-image .ui-galleria {
  width: 100%;
}

.fish-preview-image-link {
  display: block;
  border-radius: 8px;
  overflow: hidden;
  transition: transform 0.2s ease, box-shadow 0.2s ease, filter 0.2s ease;
}
.fish-preview-image-link:hover, .fish-preview-image-link:focus {
  transform: scale(1.01);
  box-shadow: 0 12px 26px rgba(12, 85, 130, 0.28);
  filter: brightness(1.04);
}

.fish-preview-desc {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  background: rgba(255, 255, 255, 0.9);
  border-radius: 8px;
  padding: 0.9rem 1rem;
  line-height: 1.5;
  color: #2c3e50;
  box-shadow: inset 0 0 0 1px rgba(12, 85, 130, 0.08);
}

.fish-preview-desc .fishDescriptionText {
  color: inherit;
  display: block;
  text-align: left;
  margin: 0;
}

@media (min-width: 1600px) {
  .fishPreView {
    border-radius: 1rem;
    gap: 1.25rem;
  }

  .fish-pretitle {
    font-size: 1.5rem;
  }

  .fish-preview-subtitle {
    font-size: 1.05rem;
  }
}
@media (max-width: 600px) {
  .fishPreView {
    max-width: 100%;
    padding: 0.9rem;
    gap: 0.65rem;
  }

  .fish-preview-image {
    min-height: auto;
  }

  .fish-pretitle {
    font-size: 1.15rem;
  }

  .fish-preview-subtitle {
    font-size: 0.85rem;
  }
}
.ui-galleria-item-container {
  position: relative;
}

.custom-thumbnail-galleria {
  background: #fff;
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.06);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.custom-thumbnail-galleria .ui-galleria-content {
  display: flex;
  flex-direction: column;
}
.custom-thumbnail-galleria .ui-galleria-item-wrapper {
  order: 1;
}
.custom-thumbnail-galleria .ui-galleria-thumbnail-wrapper {
  order: 2;
}
.custom-thumbnail-galleria .ui-galleria-caption {
  position: static;
  text-align: center;
  padding: 0.5rem 0 0 0;
  min-height: 3rem;
}
.custom-thumbnail-galleria .ui-galleria-thumbnail-item {
  margin-right: 0.25rem;
  border-radius: 4px;
  overflow: hidden;
  transition: transform 0.2s;
}
.custom-thumbnail-galleria .ui-galleria-thumbnail-item img {
  width: 100%;
  display: block;
}
.custom-thumbnail-galleria .ui-galleria-thumbnail-item:hover {
  transform: scale(1.05);
}

.picture-info {
  font-size: 0.8rem;
  color: #555;
  line-height: 1.2;
}

.pictureLicenceText,
.pictureReferenceText,
.licenceText {
  font-size: 0.8rem;
  color: #555;
}

.picture-info span {
  display: block;
}

.ui-galleria-caption-item {
  padding: 0rem !important;
}

.ui-galleria-caption-items {
  width: 60% !important;
}

body .custom-indicator-galleria .ui-galleria-indicators {
  padding: 1rem .25rem 1rem 0;
}

body .custom-indicator-galleria .ui-galleria-indicator {
  width: 100%;
  text-align: right;
  font-weight: bold;
  padding: .357rem .75rem .357rem .75rem;
  margin-bottom: 0 !important;
}

body .custom-indicator-galleria .ui-galleria-indicator {
  color: #8a5d5d;
  background-color: transparent;
  cursor: pointer;
  transition: background-color 0.2s, color 0.2s;
  border-top-right-radius: 4px;
  border-bottom-right-radius: 4px;
}

body .custom-indicator-galleria .ui-galleria-indicator.ui-state-highlight {
  background-color: var(#3498db);
  color: var(#555);
}

.monckImageWrapper {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  width: 100%;
}

.monck-image {
  color: #555;
  font-family: inherit;
  letter-spacing: 0.01em;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
.monck-image__heading {
  font-size: 1.15rem;
  font-weight: 600;
  color: #2c3e50;
  text-align: center;
  text-transform: none;
  letter-spacing: 0.08em;
  margin-bottom: 0.25rem;
}
.monck-image__galleria {
  width: 100%;
  background: #fff;
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.06);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.monck-image__galleria .ui-galleria-content {
  display: flex;
  flex-direction: column;
  /* gap: $galleria-gap;*/
  background: #fff;
  padding: 1.25rem 1.25rem 0.75rem;
  order: 1;
}
.monck-image__galleria .ui-galleria-item-wrapper {
  order: 1;
  border-radius: 8px;
  overflow: hidden;
  background: #f4f4f4;
  min-height: 0;
}
.monck-image__galleria .ui-galleria-caption {
  order: 2;
  background: rgba(244, 244, 244, 0.95);
  color: #2c3e50;
  border-radius: 8px;
  padding: 1rem;
  margin: 0;
  position: static;
  box-shadow: inset 0 0 0 1px rgba(44, 62, 80, 0.08);
}
.monck-image__galleria .ui-galleria-indicators {
  order: 2;
  display: flex;
  justify-content: center;
  gap: 0.25rem;
  padding: 0.5rem 1.25rem 0.35rem;
  background: transparent;
  border-bottom: 1px solid rgba(44, 62, 80, 0.08);
}
.monck-image__galleria .ui-galleria-indicators .ui-galleria-indicator {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: rgba(44, 62, 80, 0.25);
  transition: background 0.2s ease;
}
.monck-image__galleria .ui-galleria-indicators .ui-galleria-indicator.ui-galleria-indicator-active {
  background: #3498db;
}
.monck-image__galleria .ui-galleria-thumbnail-wrapper {
  order: 3;
  /*padding: 0.75rem 1.25rem 1.5rem;*/
  background: transparent;
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}
.monck-image__galleria .ui-galleria-thumbnail-container,
.monck-image__galleria .ui-galleria-thumbnail-items-container {
  order: 2;
}
.monck-image__galleria .ui-galleria-thumbnail-prev,
.monck-image__galleria .ui-galleria-thumbnail-next {
  order: 1;
  align-self: center;
}
.monck-image__galleria .ui-galleria-thumbnail-items {
  gap: 0.5rem;
}
.monck-image__galleria .ui-galleria-thumbnail-item-content {
  border-radius: 6px;
  overflow: hidden;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.monck-image__galleria .ui-galleria-thumbnail-item-content:hover, .monck-image__galleria .ui-galleria-thumbnail-item-content:focus-within {
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.15);
}
.monck-image__slide-meta {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  text-align: center;
  font-size: 0.8rem;
  color: inherit;
}
.monck-image__slide-licence, .monck-image__slide-author {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.35rem;
  line-height: 1.35;
}
.monck-image__slide-licence {
  text-transform: uppercase;
  font-size: 0.75rem;
  letter-spacing: 0.12em;
  color: rgba(255, 255, 255, 0.85);
}
.monck-image__slide-author {
  font-size: 0.85rem;
  font-weight: 500;
  color: #fff;
}
.monck-image__slide-meta .licence-tooltip__trigger {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin: 0 auto;
  padding: 0.35rem 0.75rem;
  border-radius: 999px;
  color: #2c3e50;
  text-decoration: none;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.12);
  transition: transform 0.2s ease, box-shadow 0.2s ease, color 0.2s ease;
}
.monck-image__slide-meta .licence-tooltip__trigger:hover, .monck-image__slide-meta .licence-tooltip__trigger:focus-visible {
  transform: translateY(-1px);
  color: #60baf1;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.16);
}
.monck-image__slide-meta .licence-tooltip__trigger .pi {
  color: #3498db;
  font-size: 1rem;
}
.monck-image__slide-meta .licence-tooltip__label {
  font-weight: 600;
  font-size: 0.95rem;
  letter-spacing: 0.08em;
  color: whitesmoke;
}
.monck-image__meta-block {
  /*background: $galleria-background-color;*/
  border-radius: 8px;
  padding: 1.5rem 1.25rem;
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.06);
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}
.monck-image__component-licence, .monck-image__caption-text {
  font-size: 0.85rem;
  color: #555;
  line-height: 1.5;
}
.monck-image__component-licence {
  text-transform: uppercase;
  letter-spacing: 0.18em;
  font-weight: 600;
  color: #2c3e50;
}
.monck-image__caption-text {
  font-size: 0.95rem;
  font-weight: 400;
  color: #777;
}
.monck-image__link {
  color: inherit;
  text-decoration: none;
  position: relative;
  transition: color 0.25s ease;
}
.monck-image__link:hover, .monck-image__link:focus {
  color: #3498db;
}
.monck-image__link:after {
  content: '';
  position: absolute;
  left: 0;
  bottom: -2px;
  width: 100%;
  height: 1px;
  background: currentColor;
  opacity: 0.35;
  transition: opacity 0.25s ease, transform 0.25s ease;
  transform: scaleX(0.5);
  transform-origin: center;
}
.monck-image__link:hover:after, .monck-image__link:focus:after {
  opacity: 0.65;
  transform: scaleX(1);
}

.licence-tooltip.ui-tooltip,
.licence-tooltip .ui-tooltip-text {
  background: rgba(44, 62, 80, 0.95) !important;
  color: #f8fafc !important;
  border: 1px solid rgba(255, 255, 255, 0.12) !important;
  border-radius: 12px !important;
  box-shadow: 0 16px 38px rgba(0, 0, 0, 0.25), 0 2px 10px rgba(0, 0, 0, 0.18) !important;
  padding: 0 !important;
  max-width: 32rem;
}

.licence-tooltip .ui-tooltip-text {
  padding: 1rem 1.25rem !important;
  line-height: 1.5;
}

.licence-tooltip-content {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  min-width: 16rem;
  max-width: 100%;
  color: inherit;
  word-break: break-word;
  hyphens: auto;
}

#editFishDialog {
  border-radius: 10px;
  height: 100% !important;
}

.fishEditDialog {
  width: 66vw !important;
  height: 85vh !important;
}

body .ui-dialog {
  padding: 0;
  border: 0 none;
  border-radius: 4px;
  background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
}

body .ui-dialog .ui-dialog-content {
  position: relative;
  border: 0;
  padding: .5em 1em;
  background: 0;
  min-width: 80vw;
  height: 100% !important;
  overflow: auto;
}

body.theme-dark .ui-dialog {
  background: linear-gradient(160deg, rgba(15, 23, 42, 0.96), rgba(15, 23, 42, 0.9));
}

.fishEditTabs {
  height: 80vh;
}

.fish-edit-section-dialog .ui-dialog-content {
  min-width: 0;
  padding: 0;
}

.fish-edit-section-form {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  max-height: calc(92vh - 3.5rem);
}

.fish-edit-dialog__intro {
  display: flex;
  gap: 1rem;
  align-items: flex-start;
  padding: 1.25rem 1.5rem 0;
}
.fish-edit-dialog__intro i {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 999px;
  color: #0f766e;
  background: rgba(20, 184, 166, 0.14);
  font-size: 1.25rem;
  flex: 0 0 auto;
}
.fish-edit-dialog__intro h2 {
  margin: 0 0 .35rem;
  font-size: 1.35rem;
}
.fish-edit-dialog__intro p {
  margin: 0;
  color: #64748b;
  line-height: 1.45;
}

.fish-edit-dialog__content {
  padding: 0 1.5rem;
  overflow: auto;
}

.fish-edit-dialog__footer {
  position: sticky;
  bottom: 0;
  z-index: 2;
  margin-top: auto;
  border-top: 1px solid rgba(148, 163, 184, 0.25);
  background: rgba(248, 250, 252, 0.96);
  backdrop-filter: blur(8px);
}

body .ui-dialog.fish-edit-section-dialog .ui-dialog-content {
  min-width: 0;
}

body .ui-dialog.general-info-section-dialog .ui-dialog-content,
.general-info-section-dialog .fish-edit-dialog__content {
  overflow: hidden;
}

.general-info-section-dialog .fish-edit-section-form {
  height: calc(92vh - 3.5rem);
}

.general-info-section-dialog .fish-edit-dialog__content {
  display: flex;
  flex: 1 1 auto;
  min-height: 0;
}

.general-info-card {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-height: 0;
}

.general-info-dialog-main-row {
  display: grid;
  grid-template-columns: minmax(12rem, 1fr) minmax(12rem, 1fr) minmax(14rem, 0.8fr);
  gap: 1rem;
  align-items: end;
  margin-bottom: .85rem;
}

.general-info-dialog-prompt,
.image-dialog-prompt {
  justify-content: flex-start;
  width: 100%;
  margin-bottom: .85rem;
}

.prompt-text--wide {
  flex: 1 1 auto;
  min-width: 16rem;
  max-width: none;
}

.general-info-dialog-description {
  flex: 1 1 auto;
  min-height: 18rem;
}

.general-info-dialog-description .ui-texteditor,
.general-info-dialog-description .ql-container {
  height: 100% !important;
}

.image-dialog-prompt {
  margin-bottom: 1rem;
}

.fish-image-dialog-table .ui-datatable-data > tr,
.fish-image-dialog-table .ui-datatable-data > tr > td {
  height: 7.5rem;
}

.fish-image-dialog-table .ui-datatable-data > tr > td {
  vertical-align: middle;
}

.fish-image-preview-overlay {
  max-width: 80vw;
}

.fish-image-preview-overlay__image {
  display: block;
  max-width: 80vw;
  max-height: 60vh;
  width: auto;
  height: auto;
}

@media (max-width: 900px) {
  .general-info-dialog-main-row {
    grid-template-columns: 1fr;
  }

  .general-info-dialog-description {
    min-height: 24rem;
  }
}
.ui-button {
  border-radius: 5px;
  font-size: 1.1em;
}

.ui-button-primary {
  /* background-color: $primary-color;*/
  /* border-color: darken($primary-color, 10%);*/
}

.ui-button-secondary {
  /* background-color: #ccc;*/
  /* border-color: #aaa;*/
}

.ui-inputtext,
.ui-textarea,
.ui-calendar {
  width: 100%;
  padding: 8px;
  border-radius: 5px;
  border: 1px solid #aaa;
}

.ui-growl {
  width: 38.2vw !important;
}

.ui-growl-message {
  width: 90% !important;
}

.ui-growl-message {
  padding: 0px 0px 0px 5px !important;
  width: 95% !important;
  float: left !important;
}

.fishPreViewContainer {
  /*width: min(2200px, 100%);*/
  margin-inline: auto;
  padding-inline: clamp(0.5rem, 2vw, 2.5rem);
}
.fishPreViewContainer .ui-dataview-content {
  display: grid;
  gap: clamp(1rem, 1.6vw, 2.25rem);
  grid-template-columns: repeat(auto-fit, minmax(clamp(260px, 18vw, 360px), 1fr));
  justify-content: center;
  padding: 0;
}
.fishPreViewContainer .ui-dataview-row {
  width: 100%;
  height: 100%;
  padding: 0 !important;
}

@media (min-width: 1600px) {
  .fishPreViewContainer .ui-dataview-content {
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  }
}
@media (max-width: 600px) {
  .fishPreViewContainer {
    padding-inline: 0.25rem;
  }

  .fishPreViewContainer .ui-dataview-content {
    gap: 0.85rem;
  }
}
.ui-chips {
  width: 100%;
}

.ui-chips-container {
  /* @extend .flexAlignRightContainer;*/
  width: 100%;
}

.page-hero {
  width: 100%;
  background: linear-gradient(135deg, #0f8db3, #0c436d);
  color: #fff;
  border-radius: 18px;
  padding: 2rem 2.5rem;
  box-shadow: 0 15px 40px rgba(5, 49, 84, 0.25);
  margin-bottom: 2rem;
}
.page-hero h2 {
  font-size: 2rem;
  margin: 0 0 .5rem;
  font-weight: 600;
}
.page-hero p {
  margin: 0;
  font-size: 1rem;
  opacity: .85;
}

.search-panel {
  background: #ffffff;
  border-radius: 20px;
  padding: 1.5rem;
  box-shadow: 0 20px 45px rgba(15, 141, 179, 0.15);
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-bottom: 2.5rem;
}

.search-panel__label {
  font-size: 1.15rem;
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: .75rem;
  color: #0c436d;
}
.search-panel__label i {
  font-size: 1.3rem;
  color: #0f8db3;
}

.smart-chips .ui-chips-container {
  border: 2px solid transparent;
  background: #f5fbff;
  border-radius: 14px;
  padding: .35rem;
  transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
.smart-chips .ui-chips-input-token input {
  font-size: 1rem;
  color: #0c436d;
}
.smart-chips .ui-chips-token {
  background: #0f8db3;
  color: #fff;
  border-radius: 999px;
  padding: .35rem .75rem;
  font-weight: 600;
  box-shadow: 0 8px 20px rgba(15, 141, 179, 0.25);
}
.smart-chips .ui-chips-token .ui-chips-token-icon {
  margin-left: .5rem;
}
.smart-chips .ui-state-focus .ui-chips-container,
.smart-chips .ui-state-hover .ui-chips-container,
.smart-chips .ui-chips-container:focus-within {
  border-color: #0f8db3;
  background: #fff;
  box-shadow: 0 12px 35px rgba(15, 141, 179, 0.25);
}

.search-panel__helper {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: .5rem;
  color: #5a6b7a;
  font-size: .95rem;
}

.suggestion-pills {
  display: flex;
  gap: .5rem;
  flex-wrap: wrap;
}
.suggestion-pills span {
  background: rgba(15, 141, 179, 0.15);
  color: #0c436d;
  padding: .25rem .75rem;
  border-radius: 999px;
  font-size: .85rem;
  font-weight: 600;
}

@media (max-width: 768px) {
  .page-hero {
    padding: 1.5rem;
  }

  .search-panel {
    padding: 1.25rem;
  }
}
body .ui-tagcloud {
  width: 100% !important;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  padding: 1rem 1.25rem;
  border-radius: 1rem;
  border: 1px solid rgba(12, 85, 130, 0.2);
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.96), rgba(236, 245, 255, 0.85));
  box-shadow: 0 10px 28px rgba(12, 85, 130, 0.08);
  color: #555;
}
body .ui-tagcloud li {
  list-style: none;
}

body .ui-tagcloud a {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.4rem 0.95rem;
  color: #555;
  font-weight: 600;
  letter-spacing: 0.01em;
  border-radius: 999px;
  background: rgba(12, 85, 130, 0.06);
  border: 1px solid rgba(12, 85, 130, 0.2);
  text-decoration: none;
  box-shadow: 0 6px 18px rgba(12, 85, 130, 0.08);
  transition: transform 0.2s ease, box-shadow 0.2s ease, color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease;
}

body .ui-tagcloud a:hover,
body .ui-tagcloud a:focus {
  background: rgba(12, 85, 130, 0.14);
  color: #0c5582;
  border-color: rgba(12, 85, 130, 0.45);
  transform: translateY(-1px);
  box-shadow: 0 12px 26px rgba(12, 85, 130, 0.16);
}

body .ui-tagcloud a:focus-visible {
  outline: 2px solid rgba(12, 85, 130, 0.45);
  outline-offset: 2px;
}

body .ui-tagcloud .ui-tagcloud-strength-1 a {
  font-size: 0.9rem;
}

body .ui-tagcloud .ui-tagcloud-strength-2 a {
  font-size: 1rem;
}

body .ui-tagcloud .ui-tagcloud-strength-3 a {
  font-size: 1.1rem;
}

body .ui-tagcloud .ui-tagcloud-strength-4 a {
  font-size: 1.2rem;
}

body .ui-tagcloud .ui-tagcloud-strength-5 a {
  font-size: 1.3rem;
}

body.theme-dark .ui-tagcloud {
  background: radial-gradient(circle at 20% 20%, rgba(59, 130, 246, 0.08), rgba(15, 23, 42, 0.92));
  border-color: rgba(59, 130, 246, 0.35);
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.35);
  color: #e2e8f0;
}

body.theme-dark .ui-tagcloud a {
  color: #e2e8f0;
  background: rgba(59, 130, 246, 0.16);
  border-color: rgba(59, 130, 246, 0.4);
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.35);
}

body.theme-dark .ui-tagcloud a:hover,
body.theme-dark .ui-tagcloud a:focus {
  background: rgba(59, 130, 246, 0.28);
  color: #e0f2fe;
  border-color: rgba(94, 234, 212, 0.65);
  box-shadow: 0 14px 32px rgba(59, 130, 246, 0.32);
}

body.theme-dark .ui-tagcloud a:focus-visible {
  outline: 2px solid rgba(94, 234, 212, 0.65);
  outline-offset: 2px;
}

.product-search-page {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  width: 100%;
  padding-bottom: 1rem;
}

.search-hero {
  position: relative;
  padding: 1.25rem 1.5rem;
  background: linear-gradient(135deg, rgba(12, 85, 130, 0.9), rgba(52, 152, 219, 0.9));
  color: #fff;
  overflow: hidden;
}

.hero-eyebrow {
  text-transform: uppercase;
  letter-spacing: 0.15rem;
  font-size: 0.85rem;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.85);
}

.search-hero h1 {
  font-size: clamp(1.65rem, 3vw, 2.25rem);
  margin: 0.2rem 0 0.25rem;
}

.hero-subline {
  font-size: 1rem;
  margin: 0 0 0.5rem;
  color: rgba(255, 255, 255, 0.85);
}

.search-hero .footer__affiliate-disclosure {
  margin: 0;
  font-size: 0.9rem;
  line-height: 1.35;
}

.hero-highlights {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 1rem;
}

.highlight-card {
  padding: 1.25rem;
  border-radius: 1.25rem;
  background: rgba(255, 255, 255, 0.12);
  border: 1px solid rgba(255, 255, 255, 0.18);
  backdrop-filter: blur(10px);
  text-align: center;
}

.highlight-value {
  display: block;
  font-size: 1.75rem;
  font-weight: 700;
}

.highlight-label {
  font-size: 0.9rem;
  opacity: 0.85;
}

.search-panel,
.results-panel {
  padding: 1rem 1.25rem;
}

.panel-header {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: 0.65rem;
}
.panel-header h2 {
  margin: 0;
  font-size: 1.25rem;
}

.panel-eyebrow {
  text-transform: uppercase;
  letter-spacing: 0.12rem;
  font-size: 0.75rem;
  font-weight: 600;
  color: #60baf1;
  margin: 0;
}

.panel-hint {
  max-width: 360px;
  color: #777;
  margin: 0;
}

.panel-body {
  display: grid;
  grid-template-columns: minmax(18rem, 1.15fr) minmax(18rem, 0.85fr);
  gap: 1.25rem;
  align-items: start;
}

.chips-field {
  padding: 0;
}

.chips-label {
  display: block;
  font-weight: 600;
  margin-bottom: 0.35rem;
  color: #2c3e50;
}

.chips-input .ui-chips-input-token input {
  font-size: 1.05rem;
  padding: 0.5rem 0.75rem;
}

.chips-helper {
  display: block;
  margin-top: 0.35rem;
  color: #777;
}

.tag-panel {
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.tag-panel__header h3 {
  margin: 0;
}

.tag-panel__hint {
  color: #777;
  margin: 0.1rem 0 0;
  font-size: 0.85rem;
}

.tag-panel__cloud .ui-tagcloud {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 0.3rem;
  padding: 0;
  margin: 0;
}

.tag-panel__cloud .ui-tagcloud li a {
  border-radius: 999px;
  display: block;
  padding: 0.25rem 0.7rem;
  border: 1px solid rgba(12, 85, 130, 0.2);
  color: #555;
  transition: all 0.2s ease;
}

.tag-panel__cloud .ui-tagcloud li a:hover,
.tag-panel__cloud .ui-tagcloud li a:focus {
  background: rgba(12, 85, 130, 0.08);
  color: #0c5582;
  border-color: rgba(12, 85, 130, 0.35);
}

.results-header {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
}

.result-meta {
  text-align: right;
}

.result-count {
  font-size: 1.35rem;
  font-weight: 700;
  color: #0c5582;
  line-height: 1;
  display: block;
}

.result-label {
  font-size: 0.9rem;
  color: #777;
}

.searchResultsGrid .ui-datagrid-content {
  /*display: grid;*/
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 1.5rem;
  background: none;
  padding: 0.5rem 0 0;
}

.searchResultsGrid > .ui-dataview-header {
  padding: 0 0 0.35rem;
  background: transparent;
  border: 0;
}

.searchResultItem,
.searchResultItem .itemWrapper {
  width: 100%;
}

.searchResultItem .itemWrapper {
  height: 100%;
  border-radius: 1.25rem;
  background: rgba(255, 255, 255, 0.8);
  border: 1px solid rgba(12, 85, 130, 0.12);
  padding: 1rem;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
  display: flex;
  flex-direction: column;
}

.searchResultItem .itemWrapper:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 35px rgba(12, 85, 130, 0.2);
}

@media (max-width: 768px) {
  .panel-body {
    grid-template-columns: 1fr;
  }

  .search-panel,
  .results-panel,
  .search-hero {
    padding: 1rem;
  }

  .result-meta {
    text-align: left;
  }
}
@media (max-width: 576px) {
  .product-search-page {
    gap: 0.6rem;
  }

  .search-hero h1 {
    font-size: 1.5rem;
  }

  .panel-body {
    gap: 0.85rem;
  }

  .tag-panel__cloud .ui-tagcloud li a {
    padding: 0.3rem 0.65rem;
  }

  .hero-highlights {
    grid-template-columns: 1fr;
  }
}
.searchResultsGrid .ui-datagrid-content {
  gap: 1rem;
}

.itemWrapper {
  background: var(--app-surface, #fff);
  backdrop-filter: none;
  width: 100%;
  display: grid;
  grid-template-columns: 1fr;
  grid-auto-rows: auto;
  gap: 1rem;
  padding: 1rem;
  box-sizing: border-box;
  border-radius: 1.25rem;
  overflow: hidden;
  border: 1px solid rgba(12, 85, 130, 0.12);
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.92), rgba(240, 247, 252, 0.92));
  box-shadow: 0 12px 28px rgba(12, 85, 130, 0.08);
  transition: transform .18s ease, box-shadow .18s ease;
  align-items: stretch;
}
.itemWrapper:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 40px rgba(12, 85, 130, 0.18);
}
@media (max-width: 768px) {
  .itemWrapper {
    grid-template-columns: 1fr;
  }
}

.artikel-card__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.75rem;
}

.artikel-card__icon {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  display: grid;
  place-items: center;
  background: linear-gradient(135deg, rgba(12, 85, 130, 0.12), rgba(12, 85, 130, 0.22));
  color: #0c5582;
  font-size: 1.2rem;
}

.artikel-card__tags {
  display: flex;
  gap: 0.4rem;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.artikel-card__tag {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.35rem 0.65rem;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  border: 1px solid rgba(12, 85, 130, 0.12);
  background: rgba(12, 85, 130, 0.08);
  color: #0c5582;
}
.artikel-card__tag--status {
  background: rgba(14, 165, 233, 0.08);
  color: #0ea5e9;
  border-color: rgba(14, 165, 233, 0.22);
}

.artikel-card__media {
  position: relative;
  width: 100%;
  border-radius: 1rem;
  overflow: hidden;
  background: #f2f6fb;
  min-height: 180px;
  max-height: 220px;
  display: grid;
  place-items: center;
}
.artikel-card__media .artikel-card__media-link {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  text-decoration: none;
}
.artikel-card__media .ArtikelBild {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
  padding: 0.4rem;
  background: linear-gradient(180deg, rgba(12, 85, 130, 0.04), rgba(12, 85, 130, 0.08));
}

.artikel-card__main {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  min-width: 0;
  width: 100%;
}

.artikel-card__content {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  flex: 1;
  overflow: hidden;
}
.artikel-card__content .articleTitle {
  font-size: 1.05rem;
  font-weight: 700;
  color: #0f172a;
  line-height: 1.3;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
}
.artikel-card__content .articleText {
  font-size: 0.95rem;
  color: #334155;
  line-height: 1.5;
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
}

.artikel-card__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-top: auto;
  padding-top: 0.5rem;
  border-top: 1px solid rgba(12, 85, 130, 0.08);
  flex-wrap: wrap;
}

.articlePrice {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  color: #0f172a;
}
.articlePrice__label {
  font-size: 0.8rem;
  color: #475569;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.articlePrice .priceValue {
  font-size: 1.15rem;
  font-weight: 800;
  color: #0c5582;
}

.artikel-card__cta {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.6rem 0.85rem;
  border-radius: 10px;
  background: linear-gradient(135deg, #0c5582, #0a7bb8);
  color: #f8fafc;
  font-weight: 700;
  text-decoration: none;
  border: 1px solid rgba(12, 85, 130, 0.35);
  box-shadow: 0 12px 22px rgba(12, 85, 130, 0.3);
  transition: transform .16s ease, box-shadow .16s ease, background .16s ease, color .16s ease;
}
.artikel-card__cta:hover, .artikel-card__cta:focus {
  transform: translateY(-1px);
  box-shadow: 0 16px 30px rgba(12, 85, 130, 0.35);
  background: linear-gradient(135deg, #0d6b9f, #0b8ace);
}

body.theme-dark .itemWrapper {
  background: linear-gradient(140deg, rgba(15, 23, 42, 0.92), rgba(15, 23, 42, 0.85));
  border-color: rgba(148, 163, 184, 0.22);
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.45);
}
body.theme-dark .artikel-card__icon {
  background: linear-gradient(135deg, rgba(59, 130, 246, 0.15), rgba(14, 165, 233, 0.15));
  color: #e0f2fe;
}
body.theme-dark .artikel-card__tag {
  border-color: rgba(148, 163, 184, 0.25);
  background: rgba(59, 130, 246, 0.12);
  color: #e2e8f0;
}
body.theme-dark .artikel-card__tag--status {
  background: rgba(52, 211, 153, 0.15);
  border-color: rgba(52, 211, 153, 0.35);
  color: #bbf7d0;
}
body.theme-dark .artikel-card__media {
  background: rgba(30, 41, 59, 0.8);
}
body.theme-dark .artikel-card__content .articleTitle {
  color: #e2e8f0;
}
body.theme-dark .artikel-card__content .articleText {
  color: #cbd5e1;
}
body.theme-dark .artikel-card__footer {
  border-top-color: rgba(148, 163, 184, 0.18);
}
body.theme-dark .articlePrice {
  color: #e2e8f0;
}
body.theme-dark .articlePrice__label {
  color: #cbd5e1;
}
body.theme-dark .articlePrice .priceValue {
  color: #38bdf8;
}
body.theme-dark .artikel-card__cta {
  background: linear-gradient(135deg, #38bdf8, #0ea5e9);
  color: #0b1727;
  border-color: rgba(14, 165, 233, 0.6);
  box-shadow: 0 16px 30px rgba(14, 165, 233, 0.42);
}
body.theme-dark .artikel-card__cta:hover, body.theme-dark .artikel-card__cta:focus {
  background: linear-gradient(135deg, #5fd4ff, #22d3ee);
  color: #07121f;
  box-shadow: 0 18px 32px rgba(34, 211, 238, 0.48);
}

.login-wrapper {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  min-height: calc(100vh - var(--header-height, 0px));
  padding: clamp(1.5rem, 2vw, 2.5rem);
  background: linear-gradient(135deg, rgba(52, 152, 219, 0.08) 0%, rgba(12, 85, 130, 0.05) 40%, rgba(46, 204, 113, 0.08) 100%);
}
@media (min-width: 992px) {
  .login-wrapper {
    flex-direction: row;
    align-items: stretch;
  }
}

.login-hero {
  flex: 1 1 40%;
  position: relative;
  min-height: 260px;
  background: url("/static/img/pixabay/fishing-3867853.jpg") center/cover no-repeat;
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 20px 60px rgba(18, 38, 63, 0.18);
}

.login-hero__overlay {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  gap: 0.6rem;
  padding: 2rem;
  background: linear-gradient(180deg, rgba(11, 43, 63, 0.15) 0%, rgba(11, 43, 63, 0.7) 70%);
  color: #ffffff;
}

.login-hero__badge {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.4rem 0.9rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.14);
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  font-size: 0.8rem;
}

.login-hero__title {
  font-size: clamp(1.4rem, 3vw, 2.2rem);
  margin: 0;
}

.login-hero__copy {
  margin: 0;
  color: rgba(255, 255, 255, 0.9);
}

.login-content {
  flex: 1 1 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1rem;
}

.login-header {
  width: min(540px, 100%);
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  text-align: left;
}

.login-eyebrow {
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #60baf1;
  font-weight: 700;
  font-size: 0.85rem;
}

.login-title {
  font-size: clamp(1.6rem, 2.8vw, 2.1rem);
  margin: 0;
  color: #2c3e50;
}

.info-text {
  font-size: 0.98rem;
  color: #777;
  margin: 0;
  max-width: 520px;
  line-height: 1.6;
}

.error-message {
  width: min(540px, 100%);
  color: #e74c3c;
  background: rgba(231, 76, 60, 0.1);
  border: 1px solid rgba(231, 76, 60, 0.25);
  padding: 0.75rem 1rem;
  border-radius: 10px;
  text-align: left;
  box-shadow: 0 6px 16px rgba(231, 76, 60, 0.12);
}

.login-form {
  width: min(540px, 100%);
  display: flex;
  justify-content: center;
}

.login-card {
  width: 100%;
  padding: clamp(1.5rem, 2vw, 2rem);
  border-radius: 16px;
  border: 1px solid rgba(12, 85, 130, 0.12);
  background: #ffffff;
  box-shadow: 0 16px 40px rgba(18, 38, 63, 0.12);
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.login-input-group {
  width: 100%;
}
.login-input-group .p-inputgroup-addon {
  background: #f4f7fb;
  border: 1px solid rgba(12, 85, 130, 0.12);
  color: #60baf1;
  border-right: none;
}
.login-input-group input {
  width: 100%;
  border: 1px solid rgba(12, 85, 130, 0.12);
  border-radius: 0 10px 10px 0;
  padding: 0.85rem 0.9rem;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.login-input-group input:focus {
  border-color: #3498db;
  box-shadow: 0 0 0 3px rgba(52, 152, 219, 0.15);
  outline: none;
}

.remember-me-box {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.95rem;
  color: #777;
}

.login-button {
  width: 100%;
  padding: 0.95rem;
  border-radius: 12px;
  background: linear-gradient(120deg, #0c5582, #41b883);
  color: #fff;
  font-weight: 700;
  letter-spacing: 0.01em;
  border: none;
  cursor: pointer;
  transition: transform 0.15s ease, box-shadow 0.2s ease;
}
.login-button:hover {
  transform: translateY(-1px);
  box-shadow: 0 12px 24px rgba(12, 85, 130, 0.22);
}
.login-button:active {
  transform: translateY(0);
}

.login-footer-hint {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
  width: min(540px, 100%);
}

.login-footer-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.45rem 0.9rem;
  background: rgba(12, 85, 130, 0.08);
  color: #2c3e50;
  border-radius: 999px;
  font-weight: 600;
  font-size: 0.9rem;
}

.fishEditDialog .ui-dialog-content {
  height: 80vh !important;
  max-height: 80vh !important;
  overflow-y: auto;
}

.ui-confirm-dialog {
  z-index: 1005 !important;
}

.fish-edit-dialog.ui-dialog {
  display: flex;
  flex-direction: column;
}
.fish-edit-dialog .ui-dialog-titlebar {
  background: linear-gradient(135deg, rgba(52, 152, 219, 0.12), rgba(52, 152, 219, 0.06));
  border-bottom: 2px solid rgba(52, 152, 219, 0.2);
  padding: 1.25rem 1.5rem;
  border-radius: 1.2rem 1.2rem 0 0;
}
.fish-edit-dialog .ui-dialog-titlebar .ui-dialog-title {
  font-size: 1.4rem;
  font-weight: 700;
  color: #1f2937;
  letter-spacing: -0.3px;
}
.fish-edit-dialog .ui-dialog-content {
  padding: 1.75rem;
  flex: 1 1 auto;
  min-height: 0;
  height: auto !important;
  overflow: hidden;
}

.fish-dialog-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  border: 1px solid rgba(52, 152, 219, 0.2);
  background: linear-gradient(135deg, rgba(52, 152, 219, 0.05), rgba(46, 204, 113, 0.03));
  padding: 1rem 1.25rem;
  border-radius: 1rem;
  box-shadow: 0 10px 32px rgba(52, 152, 219, 0.12);
  position: relative;
  bottom: auto;
  z-index: 5;
  margin-top: 1.25rem;
  flex: 0 0 auto;
}
.fish-dialog-toolbar.is-stacked {
  flex-direction: column;
  align-items: flex-start;
}
.fish-dialog-toolbar .toolbar-title {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  min-width: 0;
}
.fish-dialog-toolbar .toolbar-title .toolbar-heading {
  font-weight: 700;
  font-size: 1.1rem;
  color: #1f2937;
  letter-spacing: -0.3px;
}
.fish-dialog-toolbar .toolbar-title .toolbar-sub {
  color: #6b7280;
  font-size: 0.9rem;
  line-height: 1.2;
}
.fish-dialog-toolbar .toolbar-actions {
  display: flex;
  align-items: center;
  gap: 0.65rem;
}
.fish-dialog-toolbar .toolbar-actions .ui-button {
  border-radius: 0.65rem;
  font-weight: 600;
  padding: 0.7rem 1.2rem;
  transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  border: none;
}
.fish-dialog-toolbar .toolbar-actions .ui-button.ui-button-primary {
  background: linear-gradient(135deg, #3498db, #2c90d6);
  color: #ffffff;
  box-shadow: 0 8px 20px rgba(52, 152, 219, 0.3);
}
.fish-dialog-toolbar .toolbar-actions .ui-button.ui-button-primary:hover, .fish-dialog-toolbar .toolbar-actions .ui-button.ui-button-primary:focus {
  background: linear-gradient(135deg, #2c90d6, #1c7fbe);
  box-shadow: 0 12px 28px rgba(52, 152, 219, 0.4);
  transform: translateY(-2px);
}
.fish-dialog-toolbar .toolbar-actions .ui-button.ui-button-primary:active {
  transform: translateY(0);
}
.fish-dialog-toolbar .toolbar-actions .ui-button.ui-button-secondary {
  background: linear-gradient(135deg, #f3f4f6, #eff2f5);
  color: #1f2937;
  border: 1px solid #e5e7eb;
}
.fish-dialog-toolbar .toolbar-actions .ui-button.ui-button-secondary:hover, .fish-dialog-toolbar .toolbar-actions .ui-button.ui-button-secondary:focus {
  background: linear-gradient(135deg, #eff2f5, #e5e7eb);
  border-color: #d1d5db;
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.08);
  transform: translateY(-2px);
}
.fish-dialog-toolbar .toolbar-actions .ui-button.ui-button-secondary:active {
  transform: translateY(0);
}
.fish-dialog-toolbar .toolbar-actions .ui-button.ui-button-flat {
  background: transparent;
  color: #6b7280;
  border: 1px solid transparent;
}
.fish-dialog-toolbar .toolbar-actions .ui-button.ui-button-flat:hover, .fish-dialog-toolbar .toolbar-actions .ui-button.ui-button-flat:focus {
  color: #1f2937;
  background: rgba(0, 0, 0, 0.05);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}
.fish-dialog-toolbar .toolbar-actions .ui-button.ui-button-flat:active {
  background: rgba(0, 0, 0, 0.08);
}

.fish-edit-dialog .ui-dialog-content {
  display: flex;
  flex-direction: column;
}
.fish-edit-dialog .ui-dialog-content > form {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
}
.fish-edit-dialog .fishEditTabs {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
}
.fish-edit-dialog .fishEditTabs .ui-tabs-panels,
.fish-edit-dialog .fishEditTabs .p-tabview-panels {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
}
.fish-edit-dialog .fishEditTabs .ui-tabs-panel,
.fish-edit-dialog .fishEditTabs .p-tabview-panel {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  height: 100%;
}
.fish-edit-dialog .fishEditTabs .ui-tabs-panel > .edit-section-card,
.fish-edit-dialog .fishEditTabs .ui-tabs-panel > .editFishPanel,
.fish-edit-dialog .fishEditTabs .p-tabview-panel > .edit-section-card,
.fish-edit-dialog .fishEditTabs .p-tabview-panel > .editFishPanel {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
}

.fishEditTabs .ui-tabs-nav,
.fishEditTabs .p-tabview-nav {
  display: flex !important;
  flex-wrap: wrap;
  gap: 0.65rem;
  margin-bottom: 1.5rem;
  padding: 0.85rem;
  background: linear-gradient(135deg, #f0f4f9 0%, #f8fbff 100%);
  border-radius: 1rem;
  border: 1px solid rgba(52, 152, 219, 0.15);
  box-shadow: 0 8px 24px rgba(52, 152, 219, 0.08);
  list-style: none;
}
.fishEditTabs .ui-tabs-nav li,
.fishEditTabs .p-tabview-nav li {
  margin: 0;
  padding: 0;
  position: relative;
  border: none;
  background: transparent;
  transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.fishEditTabs .ui-tabs-nav li::before,
.fishEditTabs .p-tabview-nav li::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 0.65rem;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.8), rgba(52, 152, 219, 0.05));
  opacity: 0;
  transition: opacity 0.3s ease;
  z-index: -1;
}
.fishEditTabs .ui-tabs-nav li a,
.fishEditTabs .ui-tabs-nav li .p-tabview-nav-link,
.fishEditTabs .p-tabview-nav li a,
.fishEditTabs .p-tabview-nav li .p-tabview-nav-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.7rem 1.2rem;
  color: #4b5563;
  font-weight: 600;
  font-size: 0.95rem;
  text-decoration: none;
  border-radius: 0.65rem;
  border: 1px solid transparent;
  background: rgba(255, 255, 255, 0.6);
  transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  position: relative;
  white-space: nowrap;
}
.fishEditTabs .ui-tabs-nav li a .pi,
.fishEditTabs .ui-tabs-nav li .p-tabview-nav-link .pi,
.fishEditTabs .p-tabview-nav li a .pi,
.fishEditTabs .p-tabview-nav li .p-tabview-nav-link .pi {
  font-size: 1rem;
  opacity: 0.8;
}
.fishEditTabs .ui-tabs-nav li a::after,
.fishEditTabs .ui-tabs-nav li .p-tabview-nav-link::after,
.fishEditTabs .p-tabview-nav li a::after,
.fishEditTabs .p-tabview-nav li .p-tabview-nav-link::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 0;
  height: 3px;
  background: linear-gradient(90deg, #3498db, #2ecc71);
  border-radius: 2px;
  transition: width 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.fishEditTabs .ui-tabs-nav li:hover::before,
.fishEditTabs .p-tabview-nav li:hover::before {
  opacity: 1;
}
.fishEditTabs .ui-tabs-nav li:hover a,
.fishEditTabs .ui-tabs-nav li:hover .p-tabview-nav-link,
.fishEditTabs .p-tabview-nav li:hover a,
.fishEditTabs .p-tabview-nav li:hover .p-tabview-nav-link {
  color: #0c5582;
  background: rgba(52, 152, 219, 0.1);
  border-color: rgba(52, 152, 219, 0.25);
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(52, 152, 219, 0.15);
}
.fishEditTabs .ui-tabs-nav li:hover a .pi,
.fishEditTabs .ui-tabs-nav li:hover .p-tabview-nav-link .pi,
.fishEditTabs .p-tabview-nav li:hover a .pi,
.fishEditTabs .p-tabview-nav li:hover .p-tabview-nav-link .pi {
  opacity: 1;
}
.fishEditTabs .ui-tabs-nav li:hover a::after,
.fishEditTabs .ui-tabs-nav li:hover .p-tabview-nav-link::after,
.fishEditTabs .p-tabview-nav li:hover a::after,
.fishEditTabs .p-tabview-nav li:hover .p-tabview-nav-link::after {
  width: 50%;
}
.fishEditTabs .ui-tabs-nav li.ui-tabs-selected::before,
.fishEditTabs .ui-tabs-nav li.ui-state-active::before,
.fishEditTabs .p-tabview-nav li.p-highlight::before {
  opacity: 1;
  background: linear-gradient(135deg, #fff, rgba(52, 152, 219, 0.15));
}
.fishEditTabs .ui-tabs-nav li.ui-tabs-selected a,
.fishEditTabs .ui-tabs-nav li.ui-tabs-selected .p-tabview-nav-link,
.fishEditTabs .ui-tabs-nav li.ui-state-active a,
.fishEditTabs .ui-tabs-nav li.ui-state-active .p-tabview-nav-link,
.fishEditTabs .p-tabview-nav li.p-highlight a,
.fishEditTabs .p-tabview-nav li.p-highlight .p-tabview-nav-link {
  color: #0c5582;
  font-weight: 700;
  background: white;
  border-color: rgba(52, 152, 219, 0.4);
  box-shadow: 0 6px 20px rgba(52, 152, 219, 0.2);
}
.fishEditTabs .ui-tabs-nav li.ui-tabs-selected a .pi,
.fishEditTabs .ui-tabs-nav li.ui-tabs-selected .p-tabview-nav-link .pi,
.fishEditTabs .ui-tabs-nav li.ui-state-active a .pi,
.fishEditTabs .ui-tabs-nav li.ui-state-active .p-tabview-nav-link .pi,
.fishEditTabs .p-tabview-nav li.p-highlight a .pi,
.fishEditTabs .p-tabview-nav li.p-highlight .p-tabview-nav-link .pi {
  opacity: 1;
}
.fishEditTabs .ui-tabs-nav li.ui-tabs-selected a::after,
.fishEditTabs .ui-tabs-nav li.ui-tabs-selected .p-tabview-nav-link::after,
.fishEditTabs .ui-tabs-nav li.ui-state-active a::after,
.fishEditTabs .ui-tabs-nav li.ui-state-active .p-tabview-nav-link::after,
.fishEditTabs .p-tabview-nav li.p-highlight a::after,
.fishEditTabs .p-tabview-nav li.p-highlight .p-tabview-nav-link::after {
  width: 70%;
}
.fishEditTabs .fish-tab-title {
  font-weight: 600;
  display: inline-block;
}
.fishEditTabs .ui-tabs-nav li::before {
  pointer-events: none;
}
.fishEditTabs .ui-tabs-nav li a,
.fishEditTabs .p-tabview-nav li .p-tabview-nav-link {
  position: relative;
  overflow: hidden;
}
.fishEditTabs .ui-tabs-nav li a::before,
.fishEditTabs .p-tabview-nav li .p-tabview-nav-link::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
  transition: left 0.5s ease;
  z-index: -1;
}
.fishEditTabs .ui-tabs-nav li:hover a::before,
.fishEditTabs .p-tabview-nav li:hover .p-tabview-nav-link::before {
  left: 100%;
}
.fishEditTabs .ui-tabs-panels,
.fishEditTabs .p-tabview-panels {
  margin-top: 0;
  padding: 0;
}
.fishEditTabs .ui-tabs-panel,
.fishEditTabs .p-tabview-panel {
  background: linear-gradient(135deg, #ffffff 0%, #f8fbff 100%);
  border: 1px solid rgba(52, 152, 219, 0.15);
  border-radius: 1rem;
  box-shadow: 0 12px 32px rgba(52, 152, 219, 0.1);
  padding: 1.75rem;
  animation: fadeIn 0.3s ease;
}
.fishEditTabs .ui-tabs-nav li:focus-within,
.fishEditTabs .p-tabview-nav li:focus-within {
  outline: none;
}
.fishEditTabs .ui-tabs-nav li:focus-within a,
.fishEditTabs .ui-tabs-nav li:focus-within .p-tabview-nav-link,
.fishEditTabs .p-tabview-nav li:focus-within a,
.fishEditTabs .p-tabview-nav li:focus-within .p-tabview-nav-link {
  box-shadow: 0 0 0 3px rgba(52, 152, 219, 0.3);
}

@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(5px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.edit-section-card {
  background: #fff;
  border: 1px solid rgba(0, 0, 0, 0.06);
  border-radius: 12px;
  padding: 1.25rem;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.04);
}

.section-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: 1rem;
}
.section-header .section-title {
  margin: 0;
  font-size: 1.1rem;
}
.section-header .section-subtitle {
  margin: 0.15rem 0 0;
  color: #6b7280;
  font-size: 0.9rem;
}
.section-header .section-meta {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.editFishPanel {
  display: grid;
  gap: 1.25rem;
}

.general-info-card {
  display: flex;
  flex-direction: column;
  min-height: 68vh;
}
.general-info-card .form-row-horizontal {
  align-items: flex-start;
}
.general-info-card .form-row-horizontal .form-group {
  max-width: clamp(260px, 32vw, 420px);
}
.general-info-card .form-row-horizontal .fishname-ui-inputtext,
.general-info-card .form-row-horizontal .fishlatein-ui-inputtext {
  width: 100%;
}
.general-info-card .description-block {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
.general-info-card .description-editor {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 380px;
  max-height: none;
}
.general-info-card .description-editor .ui-editor-toolbar {
  flex: 0 0 auto;
}
.general-info-card .description-editor .ql-container {
  flex: 1 1 auto;
  min-height: 0;
  max-height: none;
}
.general-info-card .description-editor .ql-editor {
  height: auto;
  max-height: 50vh;
  overflow-y: auto;
}

.form-row-horizontal {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 1rem 1.25rem;
}
.form-row-horizontal .form-group {
  max-width: 520px;
}

.form-row-vertical {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.label-with-hint {
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
}
.label-with-hint .field-hint {
  color: #6b7280;
  font-size: 0.85rem;
}

.richtext-area {
  min-height: 320px;
  border-radius: 10px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.richtext-area .ui-editor-toolbar {
  flex: 0 0 auto;
}
.richtext-area .ql-container {
  min-height: 260px;
  max-height: 420px;
  flex: 1 1 auto;
  overflow: hidden;
}
.richtext-area .ql-editor {
  overflow-y: auto;
}

.toolbar-title,
.toolbar-actions {
  min-width: 0;
}

.compact-table {
  font-size: 0.92rem;
}
.compact-table .p-datatable-thead > tr > th,
.compact-table .p-datatable-tbody > tr > td {
  padding: 0.45rem 0.6rem;
}
.compact-table .p-datatable-thead > tr > th {
  font-weight: 700;
  color: #374151;
}
.compact-table .ui-inputtext,
.compact-table .ui-selectonemenu {
  width: 100%;
  box-sizing: border-box;
  padding: 0.35rem 0.5rem;
  font-size: 0.92rem;
}
.compact-table .ui-calendar input {
  padding: 0.35rem 0.5rem;
}

.admin-fish-table-header {
  margin-bottom: 1rem;
}
.admin-fish-table-header .ui-outputtext {
  color: #4b5563;
  font-size: 0.95rem;
}

.admin-fish-table {
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.06);
}
.admin-fish-table .p-datatable-table {
  table-layout: fixed;
}
.admin-fish-table .p-datatable-thead > tr > th,
.admin-fish-table .ui-datatable-thead > tr > th {
  background: linear-gradient(180deg, #f8fafc 0%, #eef2f7 100%);
  color: #1f2937;
  font-weight: 700;
  border-color: rgba(15, 23, 42, 0.08);
  padding: 0.75rem 0.85rem;
}
.admin-fish-table .p-datatable-thead > tr.ui-filter-row > th,
.admin-fish-table .ui-datatable-thead > tr.ui-filter-row > th {
  background: #eef2f7;
}
.admin-fish-table .p-datatable-tbody > tr > td,
.admin-fish-table .ui-datatable-tbody > tr > td {
  border-color: rgba(15, 23, 42, 0.06);
  padding: 0.75rem 0.85rem;
  vertical-align: middle;
}
.admin-fish-table .p-datatable-tbody > tr:nth-child(even),
.admin-fish-table .ui-datatable-tbody > tr:nth-child(even) {
  background: #fbfdff;
}
.admin-fish-table .p-datatable-tbody > tr:hover,
.admin-fish-table .ui-datatable-tbody > tr:hover {
  background: #f1f8ff;
}
.admin-fish-table .p-paginator,
.admin-fish-table .ui-paginator {
  border-top: 1px solid rgba(15, 23, 42, 0.08);
  background: #f8fafc;
}
.admin-fish-table .admin-fish-col-image {
  width: 8.5rem;
  text-align: center;
}
.admin-fish-table .admin-fish-col-name {
  width: 16%;
  font-weight: 600;
}
.admin-fish-table .admin-fish-col-latin {
  width: 18%;
  color: #4b5563;
  font-style: italic;
}
.admin-fish-table .admin-fish-col-description {
  width: auto;
  line-height: 1.35;
}
.admin-fish-table .admin-fish-col-actions {
  width: 9.5rem;
  text-align: center;
  white-space: nowrap;
}
.admin-fish-table .admin-fish-image {
  width: 6.5rem;
  max-width: 100%;
  border-radius: 10px;
  object-fit: cover;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.12);
}
.admin-fish-table .admin-fish-no-image {
  color: #6b7280;
  font-size: 0.86rem;
}

.general-info-meta {
  align-items: flex-start;
  gap: 1rem;
}
.general-info-meta .fish-status-panel {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  min-width: 260px;
}
.general-info-meta .fish-status-panel .fish-status-label {
  font-size: 0.85rem;
  font-weight: 600;
  color: #374151;
}
.general-info-meta .fish-status-panel .fish-status-dropdown {
  min-width: 260px;
}
.general-info-meta .fish-status-panel .fish-status-dropdown .ui-selectonemenu-label {
  font-size: 0.92rem;
}

body.theme-dark .fish-edit-table {
  border: 1px solid rgba(148, 163, 184, 0.32);
  border-radius: 12px;
  overflow: hidden;
  background: rgba(15, 23, 42, 0.88);
}
body.theme-dark .fish-edit-table .ui-datatable-header,
body.theme-dark .fish-edit-table .ui-datatable-footer,
body.theme-dark .fish-edit-table .p-datatable-header,
body.theme-dark .fish-edit-table .p-datatable-footer {
  background: rgba(15, 23, 42, 0.94) !important;
  color: #e2e8f0;
  border-color: rgba(148, 163, 184, 0.28);
}
body.theme-dark .fish-edit-table .ui-datatable-tablewrapper,
body.theme-dark .fish-edit-table .ui-datatable-scrollable-header,
body.theme-dark .fish-edit-table .ui-datatable-scrollable-body,
body.theme-dark .fish-edit-table .ui-datatable-scrollable-footer {
  background: transparent;
  border-color: rgba(148, 163, 184, 0.24);
}
body.theme-dark .fish-edit-table .ui-datatable-thead > tr > th,
body.theme-dark .fish-edit-table .p-datatable-thead > tr > th {
  background: linear-gradient(160deg, rgba(30, 41, 59, 0.98), rgba(15, 23, 42, 0.98)) !important;
  color: #e2e8f0 !important;
  border-color: rgba(148, 163, 184, 0.28) !important;
}
body.theme-dark .fish-edit-table .ui-datatable-data > tr,
body.theme-dark .fish-edit-table .ui-datatable-tbody > tr,
body.theme-dark .fish-edit-table .p-datatable-tbody > tr {
  background: rgba(15, 23, 42, 0.84) !important;
}
body.theme-dark .fish-edit-table .ui-datatable-data > tr:nth-child(even),
body.theme-dark .fish-edit-table .ui-datatable-tbody > tr:nth-child(even),
body.theme-dark .fish-edit-table .p-datatable-tbody > tr:nth-child(even) {
  background: rgba(30, 41, 59, 0.7) !important;
}
body.theme-dark .fish-edit-table .ui-datatable-data > tr > td,
body.theme-dark .fish-edit-table .ui-datatable-tbody > tr > td,
body.theme-dark .fish-edit-table .p-datatable-tbody > tr > td {
  background: transparent !important;
  color: #e2e8f0 !important;
  border-color: rgba(148, 163, 184, 0.22) !important;
}
body.theme-dark .fish-edit-table .ui-state-highlight,
body.theme-dark .fish-edit-table .ui-datatable-data > tr.ui-state-hover,
body.theme-dark .fish-edit-table .ui-datatable-tbody > tr.ui-state-hover,
body.theme-dark .fish-edit-table .p-datatable-tbody > tr.ui-state-hover {
  background: rgba(59, 130, 246, 0.22) !important;
}

.fish-category-details {
  height: 100%;
}
.fish-category-details__workspace {
  display: grid;
  grid-template-columns: minmax(14rem, 25%) 1fr;
  gap: 1.25rem;
  min-height: 58vh;
}
.fish-category-details__navigation, .fish-category-details__editor {
  min-width: 0;
  border: 1px solid rgba(148, 163, 184, 0.3);
  border-radius: 0.85rem;
  background: rgba(255, 255, 255, 0.72);
  overflow: hidden;
}
.fish-category-details__list .ui-datalist-content {
  padding: 0.5rem;
  border: 0;
  background: transparent;
}
.fish-category-details__item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  width: 100%;
  padding: 0.85rem;
  border-radius: 0.65rem;
  color: inherit;
  text-decoration: none;
}
.fish-category-details__item:hover, .fish-category-details__item--active {
  background: rgba(59, 130, 246, 0.12);
}
.fish-category-details__item-text {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  min-width: 0;
}
.fish-category-details__item-text small {
  color: #64748b;
  overflow-wrap: anywhere;
}
.fish-category-details__editor {
  padding: 1rem;
}
.fish-category-details__text-editor {
  display: block;
}
.fish-category-details__text-editor .ui-editor-container {
  min-height: 44vh;
}
.fish-category-details__text-editor .ql-editor {
  min-height: 38vh;
}
.fish-category-details__editor-heading {
  display: flex;
  justify-content: space-between;
  margin-bottom: 1rem;
}
.fish-category-details__editor-heading h3 {
  margin: 0.2rem 0;
}
.fish-category-details__label {
  display: block;
  margin-bottom: 0.5rem;
  font-weight: 600;
}
.fish-category-details__empty {
  display: grid;
  place-items: center;
  align-content: center;
  gap: 0.5rem;
  min-height: 48vh;
  color: #64748b;
  text-align: center;
}
.fish-category-details__empty i {
  font-size: 2rem;
}
.fish-category-details__empty p {
  margin: 0;
}

body.theme-dark .fish-category-details__navigation, body.theme-dark .fish-category-details__editor {
  border-color: rgba(148, 163, 184, 0.25);
  background: rgba(15, 23, 42, 0.78);
}
body.theme-dark .fish-category-details__item:hover, body.theme-dark .fish-category-details__item--active {
  background: rgba(59, 130, 246, 0.22);
}
body.theme-dark .fish-category-details__item-text small, body.theme-dark .fish-category-details__empty {
  color: #cbd5e1;
}

.fish-category-details__workspace {
  display: flex;
  gap: 1.5rem;
  align-items: stretch;
  width: 100%;
}

.fish-category-details__navigation {
  flex: 0 0 20%;
  max-width: 20%;
}

.fish-category-details__editor {
  flex: 1 1 80%;
  min-width: 0;
}

.fish-category-details__list {
  width: 100%;
}

.fish-category-details__item {
  display: block;
  width: 100%;
}

.fish-category-details__text-editor {
  width: 100%;
}

@media (max-width: 768px) {
  .fish-category-details__workspace {
    flex-direction: column;
  }

  .fish-category-details__navigation {
    flex: 1 1 auto;
    max-width: 100%;
    width: 100%;
  }

  .fish-category-details__editor {
    flex: 1 1 auto;
    width: 100%;
  }
}
.data-card {
  background: #fff;
  border: 1px solid rgba(0, 0, 0, 0.06);
  border-radius: 12px;
  padding: 1.25rem;
  box-shadow: 0 3px 14px rgba(0, 0, 0, 0.05);
  margin-bottom: 1rem;
}

.prompt-toolbar .prompt-label {
  font-weight: 600;
  color: #374151;
}
.prompt-toolbar .prompt-text {
  max-width: 360px;
  display: inline-block;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  padding: 0.35rem 0.65rem;
  background: rgba(57, 145, 200, 0.08);
  border-radius: 8px;
}

.image-column img {
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.wrap-column .ui-outputlink,
.wrap-column .ui-inputtext {
  word-break: break-word;
}

.upload-area .upload-controls {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

@media (max-width: 1100px) {
  .fish-dialog-toolbar {
    flex-wrap: wrap;
    gap: 0.75rem;
  }
  .fish-dialog-toolbar .toolbar-title {
    width: 100%;
  }
  .fish-dialog-toolbar .toolbar-actions {
    width: 100%;
    justify-content: flex-start;
  }
  .fish-dialog-toolbar .toolbar-actions .ui-button {
    flex: 1 1 auto;
    min-width: 160px;
  }

  .fishEditTabs .ui-tabs-nav {
    overflow-x: auto;
    flex-wrap: nowrap;
  }
  .fishEditTabs .ui-tabs-nav li {
    flex: 0 0 auto;
  }

  .richtext-area {
    min-height: 280px;
  }
  .richtext-area .ql-container {
    min-height: 220px;
    max-height: 360px;
  }
}
@media (max-width: 768px) {
  .fish-edit-dialog .ui-dialog-content {
    padding: 1rem;
  }

  .section-header {
    flex-direction: column;
    align-items: flex-start;
  }

  .admin-fish-table-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.75rem;
  }

  .fish-dialog-toolbar {
    position: relative;
    bottom: auto;
    border-radius: 10px;
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.05);
  }
  .fish-dialog-toolbar.is-stacked {
    gap: 0.75rem;
  }
  .fish-dialog-toolbar .toolbar-actions {
    flex-direction: column;
    align-items: stretch;
    gap: 0.4rem;
  }
  .fish-dialog-toolbar .toolbar-actions .ui-button {
    width: 100%;
  }

  .edit-section-card,
  .data-card {
    padding: 1rem;
  }

  .form-row-horizontal {
    grid-template-columns: 1fr;
  }
  .form-row-horizontal .form-group {
    max-width: none;
  }

  .label-with-hint {
    flex-direction: column;
    align-items: flex-start;
  }

  .richtext-area {
    min-height: 240px;
  }
  .richtext-area .ql-container {
    min-height: 180px;
    max-height: 300px;
  }

  .compact-table {
    font-size: 0.88rem;
  }
  .compact-table .p-datatable-thead > tr > th,
  .compact-table .p-datatable-tbody > tr > td {
    padding: 0.35rem 0.45rem;
  }
  .compact-table .ui-inputtext,
  .compact-table .ui-selectonemenu,
  .compact-table .ui-calendar input {
    font-size: 0.88rem;
    padding: 0.3rem 0.4rem;
  }

  .general-info-meta {
    width: 100%;
  }
  .general-info-meta .fish-status-panel {
    min-width: 100%;
  }
  .general-info-meta .fish-status-panel .fish-status-dropdown {
    min-width: 100%;
  }

  .prompt-toolbar {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 0.5rem;
  }
  .prompt-toolbar .prompt-text {
    max-width: 100%;
  }

  .image-column img {
    width: 72px;
    height: auto;
  }

  .admin-fish-table .admin-fish-col-image {
    width: 6.5rem;
  }
  .admin-fish-table .admin-fish-col-name,
  .admin-fish-table .admin-fish-col-latin {
    width: 11rem;
  }
  .admin-fish-table .admin-fish-col-actions {
    width: 8.5rem;
  }
  .admin-fish-table .admin-fish-image {
    width: 4.8rem;
  }
}
@media (max-width: 540px) {
  .fishEditTabs .ui-tabs-nav li a {
    padding: 0.6rem 0.75rem;
    font-size: 0.95rem;
  }

  .section-title {
    font-size: 1rem;
  }

  .section-subtitle {
    font-size: 0.85rem;
  }

  .toolbar-heading {
    font-size: 1rem;
  }

  .toolbar-sub {
    font-size: 0.85rem;
  }
}
@media (min-width: 1920px) {
  .fish-edit-dialog .ui-dialog-content {
    max-width: 1820px;
    margin: 0 auto;
    padding: 2rem;
  }

  .editFishPanel {
    grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
    gap: 1.5rem;
  }

  .form-row-horizontal {
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 1.25rem 1.5rem;
  }
  .form-row-horizontal .form-group {
    max-width: none;
  }

  .richtext-area {
    min-height: 420px;
  }
  .richtext-area .ql-container {
    min-height: 340px;
    max-height: 620px;
  }

  .fish-dialog-toolbar {
    padding: 1rem 1.25rem;
    margin-top: 1.25rem;
  }

  .compact-table {
    font-size: 0.95rem;
  }
  .compact-table .p-datatable-thead > tr > th,
  .compact-table .p-datatable-tbody > tr > td {
    padding: 0.5rem 0.7rem;
  }
}
@media (min-width: 2560px) {
  .fish-edit-dialog .ui-dialog-content {
    max-width: 2000px;
  }

  .fish-dialog-toolbar {
    gap: 1.25rem;
  }
  .fish-dialog-toolbar .toolbar-title .toolbar-heading {
    font-size: 1.1rem;
  }
  .fish-dialog-toolbar .toolbar-title .toolbar-sub {
    font-size: 0.95rem;
  }
  .fish-dialog-toolbar .toolbar-actions {
    gap: 0.75rem;
  }
  .fish-dialog-toolbar .toolbar-actions .ui-button {
    min-width: 190px;
  }

  .richtext-area {
    min-height: 460px;
  }
  .richtext-area .ql-container {
    min-height: 380px;
    max-height: 680px;
  }
}
body.theme-dark .admin-fish-table {
  border-color: rgba(148, 163, 184, 0.32);
  background: rgba(15, 23, 42, 0.9);
}
body.theme-dark .admin-fish-table .p-datatable-thead > tr > th,
body.theme-dark .admin-fish-table .ui-datatable-thead > tr > th {
  background: linear-gradient(160deg, rgba(30, 41, 59, 0.98), rgba(15, 23, 42, 0.98));
  color: #e2e8f0;
  border-color: rgba(148, 163, 184, 0.22);
}
body.theme-dark .admin-fish-table .p-datatable-thead > tr.ui-filter-row > th,
body.theme-dark .admin-fish-table .ui-datatable-thead > tr.ui-filter-row > th {
  background: rgba(30, 41, 59, 0.95);
}
body.theme-dark .admin-fish-table .p-datatable-tbody > tr,
body.theme-dark .admin-fish-table .ui-datatable-tbody > tr,
body.theme-dark .admin-fish-table .p-datatable-tbody > tr:nth-child(even),
body.theme-dark .admin-fish-table .ui-datatable-tbody > tr:nth-child(even) {
  background: rgba(15, 23, 42, 0.84);
}
body.theme-dark .admin-fish-table .p-datatable-tbody > tr:hover,
body.theme-dark .admin-fish-table .ui-datatable-tbody > tr:hover,
body.theme-dark .admin-fish-table .ui-datatable-tbody > tr.ui-state-hover {
  background: rgba(59, 130, 246, 0.2);
}
body.theme-dark .admin-fish-table .p-datatable-tbody > tr > td,
body.theme-dark .admin-fish-table .ui-datatable-tbody > tr > td {
  color: #e2e8f0;
  border-color: rgba(148, 163, 184, 0.2);
}
body.theme-dark .admin-fish-table .ui-column-filter,
body.theme-dark .admin-fish-table .ui-inputfield,
body.theme-dark .admin-fish-table .ui-selectonemenu {
  background: rgba(15, 23, 42, 0.78);
  border-color: rgba(148, 163, 184, 0.35);
  color: #e2e8f0;
}
body.theme-dark .admin-fish-table .admin-fish-col-latin,
body.theme-dark .admin-fish-table .admin-fish-no-image {
  color: #cbd5e1;
}
body.theme-dark .admin-fish-table .p-paginator,
body.theme-dark .admin-fish-table .ui-paginator {
  background: rgba(15, 23, 42, 0.94);
  border-color: rgba(148, 163, 184, 0.2);
}
body.theme-dark .general-info-meta .fish-status-panel .fish-status-label {
  color: #d1d5db;
}
body.theme-dark .general-info-meta .fish-status-panel .fish-status-dropdown .ui-selectonemenu-label {
  color: #e5e7eb;
}

body.theme-dark .fish-edit-dialog .ui-tabs .ui-tabs-panels,
body.theme-dark .fish-edit-dialog .ui-tabs .ui-tabs-panel,
body.theme-dark .fish-edit-dialog .p-tabview .p-tabview-panels,
body.theme-dark .fish-edit-dialog .p-tabview .p-tabview-panel {
  height: 100%;
  min-height: 0;
}
body.theme-dark .fishEditTabs .ui-tabs-nav,
body.theme-dark .fishEditTabs .p-tabview-nav {
  background: linear-gradient(135deg, rgba(30, 41, 59, 0.88), rgba(15, 23, 42, 0.92)) !important;
  border-color: rgba(148, 163, 184, 0.25) !important;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.5) !important;
}
body.theme-dark .fishEditTabs .ui-tabs-nav li::before,
body.theme-dark .fishEditTabs .p-tabview-nav li::before {
  background: linear-gradient(135deg, rgba(59, 130, 246, 0.15), rgba(94, 234, 212, 0.08));
}
body.theme-dark .fishEditTabs .ui-tabs-nav li a,
body.theme-dark .fishEditTabs .ui-tabs-nav li .p-tabview-nav-link,
body.theme-dark .fishEditTabs .p-tabview-nav li a,
body.theme-dark .fishEditTabs .p-tabview-nav li .p-tabview-nav-link {
  color: #cbd5e1;
  background: rgba(59, 130, 246, 0.08);
  border-color: rgba(148, 163, 184, 0.2);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}
body.theme-dark .fishEditTabs .ui-tabs-nav li a .pi,
body.theme-dark .fishEditTabs .ui-tabs-nav li .p-tabview-nav-link .pi,
body.theme-dark .fishEditTabs .p-tabview-nav li a .pi,
body.theme-dark .fishEditTabs .p-tabview-nav li .p-tabview-nav-link .pi {
  color: #93c5fd;
  opacity: 0.9;
}
body.theme-dark .fishEditTabs .ui-tabs-nav li a::after,
body.theme-dark .fishEditTabs .ui-tabs-nav li .p-tabview-nav-link::after,
body.theme-dark .fishEditTabs .p-tabview-nav li a::after,
body.theme-dark .fishEditTabs .p-tabview-nav li .p-tabview-nav-link::after {
  background: linear-gradient(90deg, #60a5fa, #34d399);
}
body.theme-dark .fishEditTabs .ui-tabs-nav li:hover::before,
body.theme-dark .fishEditTabs .p-tabview-nav li:hover::before {
  opacity: 1;
  background: linear-gradient(135deg, rgba(59, 130, 246, 0.25), rgba(94, 234, 212, 0.15));
}
body.theme-dark .fishEditTabs .ui-tabs-nav li:hover a,
body.theme-dark .fishEditTabs .ui-tabs-nav li:hover .p-tabview-nav-link,
body.theme-dark .fishEditTabs .p-tabview-nav li:hover a,
body.theme-dark .fishEditTabs .p-tabview-nav li:hover .p-tabview-nav-link {
  color: #e0f2fe;
  background: rgba(59, 130, 246, 0.18);
  border-color: rgba(59, 130, 246, 0.4);
  transform: translateY(-3px);
  box-shadow: 0 8px 24px rgba(59, 130, 246, 0.3);
}
body.theme-dark .fishEditTabs .ui-tabs-nav li:hover a .pi,
body.theme-dark .fishEditTabs .ui-tabs-nav li:hover .p-tabview-nav-link .pi,
body.theme-dark .fishEditTabs .p-tabview-nav li:hover a .pi,
body.theme-dark .fishEditTabs .p-tabview-nav li:hover .p-tabview-nav-link .pi {
  opacity: 1;
  color: #bae6fd;
}
body.theme-dark .fishEditTabs .ui-tabs-nav li:hover a::after,
body.theme-dark .fishEditTabs .ui-tabs-nav li:hover .p-tabview-nav-link::after,
body.theme-dark .fishEditTabs .p-tabview-nav li:hover a::after,
body.theme-dark .fishEditTabs .p-tabview-nav li:hover .p-tabview-nav-link::after {
  width: 55%;
}
body.theme-dark .fishEditTabs .ui-tabs-nav li.ui-tabs-selected::before,
body.theme-dark .fishEditTabs .ui-tabs-nav li.ui-state-active::before,
body.theme-dark .fishEditTabs .p-tabview-nav li.p-highlight::before {
  background: linear-gradient(135deg, rgba(59, 130, 246, 0.3), rgba(94, 234, 212, 0.2));
}
body.theme-dark .fishEditTabs .ui-tabs-nav li.ui-tabs-selected a,
body.theme-dark .fishEditTabs .ui-tabs-nav li.ui-tabs-selected .p-tabview-nav-link,
body.theme-dark .fishEditTabs .ui-tabs-nav li.ui-state-active a,
body.theme-dark .fishEditTabs .ui-tabs-nav li.ui-state-active .p-tabview-nav-link,
body.theme-dark .fishEditTabs .p-tabview-nav li.p-highlight a,
body.theme-dark .fishEditTabs .p-tabview-nav li.p-highlight .p-tabview-nav-link {
  color: #e0f2fe;
  font-weight: 700;
  background: linear-gradient(135deg, rgba(59, 130, 246, 0.25), rgba(94, 234, 212, 0.12));
  border-color: rgba(59, 130, 246, 0.5);
  box-shadow: 0 8px 28px rgba(59, 130, 246, 0.35);
}
body.theme-dark .fishEditTabs .ui-tabs-nav li.ui-tabs-selected a .pi,
body.theme-dark .fishEditTabs .ui-tabs-nav li.ui-tabs-selected .p-tabview-nav-link .pi,
body.theme-dark .fishEditTabs .ui-tabs-nav li.ui-state-active a .pi,
body.theme-dark .fishEditTabs .ui-tabs-nav li.ui-state-active .p-tabview-nav-link .pi,
body.theme-dark .fishEditTabs .p-tabview-nav li.p-highlight a .pi,
body.theme-dark .fishEditTabs .p-tabview-nav li.p-highlight .p-tabview-nav-link .pi {
  color: #bae6fd;
  opacity: 1;
}
body.theme-dark .fishEditTabs .ui-tabs-nav li.ui-tabs-selected a::after,
body.theme-dark .fishEditTabs .ui-tabs-nav li.ui-tabs-selected .p-tabview-nav-link::after,
body.theme-dark .fishEditTabs .ui-tabs-nav li.ui-state-active a::after,
body.theme-dark .fishEditTabs .ui-tabs-nav li.ui-state-active .p-tabview-nav-link::after,
body.theme-dark .fishEditTabs .p-tabview-nav li.p-highlight a::after,
body.theme-dark .fishEditTabs .p-tabview-nav li.p-highlight .p-tabview-nav-link::after {
  width: 75%;
  background: linear-gradient(90deg, #38bdf8, #34d399);
}
body.theme-dark .fishEditTabs .ui-tabs-panel,
body.theme-dark .fishEditTabs .p-tabview-panel {
  background: linear-gradient(135deg, rgba(15, 23, 42, 0.92), rgba(30, 41, 59, 0.88));
  border-color: rgba(148, 163, 184, 0.25);
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.55);
  color: #e2e8f0;
}
body.theme-dark .fishEditTabs .ui-tabs-nav li:focus-within a,
body.theme-dark .fishEditTabs .ui-tabs-nav li:focus-within .p-tabview-nav-link,
body.theme-dark .fishEditTabs .p-tabview-nav li:focus-within a,
body.theme-dark .fishEditTabs .p-tabview-nav li:focus-within .p-tabview-nav-link {
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.4), 0 4px 12px rgba(0, 0, 0, 0.3);
}
body.theme-dark .fish-edit-dialog .ui-dialog-titlebar {
  background: linear-gradient(135deg, rgba(59, 130, 246, 0.18), rgba(94, 234, 212, 0.08));
  color: #e0f2fe;
  border-bottom-color: rgba(59, 130, 246, 0.3);
}
body.theme-dark .fish-edit-dialog .ui-dialog-titlebar .ui-dialog-title {
  color: #e0f2fe;
}
body.theme-dark .fish-edit-dialog .ui-dialog-content {
  background: linear-gradient(160deg, rgba(15, 23, 42, 0.95), rgba(30, 41, 59, 0.88));
  color: #e2e8f0;
}
body.theme-dark .fish-dialog-toolbar {
  background: linear-gradient(135deg, rgba(59, 130, 246, 0.12), rgba(94, 234, 212, 0.06));
  border-color: rgba(148, 163, 184, 0.28);
  box-shadow: 0 12px 36px rgba(0, 0, 0, 0.5);
}
body.theme-dark .fish-dialog-toolbar .toolbar-heading {
  color: #e0f2fe;
}
body.theme-dark .fish-dialog-toolbar .toolbar-sub,
body.theme-dark .fish-dialog-toolbar .section-subtitle,
body.theme-dark .fish-dialog-toolbar .section-meta,
body.theme-dark .fish-dialog-toolbar .section-meta__pill {
  color: #cbd5e1;
}
body.theme-dark .fish-dialog-toolbar .ui-button.ui-button-flat {
  color: #e2e8f0;
}
body.theme-dark .fish-dialog-toolbar .ui-button.ui-button-flat:hover, body.theme-dark .fish-dialog-toolbar .ui-button.ui-button-flat:focus {
  color: #e0f2fe;
  background: rgba(59, 130, 246, 0.1);
}
body.theme-dark .fish-dialog-toolbar .ui-button.ui-button-secondary {
  background: rgba(59, 130, 246, 0.08);
  color: #e2e8f0;
  border-color: rgba(148, 163, 184, 0.3);
}
body.theme-dark .fish-dialog-toolbar .ui-button.ui-button-secondary:hover, body.theme-dark .fish-dialog-toolbar .ui-button.ui-button-secondary:focus {
  background: rgba(59, 130, 246, 0.15);
  border-color: rgba(94, 234, 212, 0.4);
  box-shadow: 0 6px 16px rgba(59, 130, 246, 0.2);
}
body.theme-dark .fish-dialog-toolbar .ui-button.ui-button-primary {
  background: linear-gradient(135deg, #1d4ed8, #0ea5e9);
  box-shadow: 0 10px 28px rgba(59, 130, 246, 0.3);
}
body.theme-dark .fish-dialog-toolbar .ui-button.ui-button-primary:hover, body.theme-dark .fish-dialog-toolbar .ui-button.ui-button-primary:focus {
  background: linear-gradient(135deg, #1e40af, #0284c7);
  box-shadow: 0 14px 36px rgba(59, 130, 246, 0.4);
}

.admin-fish-table .admin-fish-col-image {
  width: 7rem;
}
.admin-fish-table .admin-fish-col-name {
  width: 12%;
}
.admin-fish-table .admin-fish-col-latin {
  width: 14%;
}
.admin-fish-table .admin-fish-col-description {
  width: 34%;
}
.admin-fish-table .admin-fish-col-status {
  width: 7rem;
  text-align: center;
}
.admin-fish-table .admin-fish-col-status .datatable-column-filter {
  min-width: 6rem;
  width: 6rem;
}
.admin-fish-table .admin-fish-col-actions {
  width: 8.5rem;
}

.admin-fish-image {
  cursor: zoom-in;
}

.admin-release-switch {
  position: relative;
  width: 3.25rem;
  height: 1.75rem;
  min-width: 3.25rem;
  padding: 0;
  border: 0;
  border-radius: 999px;
  transition: background-color .2s ease, box-shadow .2s ease;
}
.admin-release-switch .ui-button-text,
.admin-release-switch .p-button-label {
  display: none;
}
.admin-release-switch .ui-button-icon-left,
.admin-release-switch .p-button-icon {
  position: absolute;
  top: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.35rem;
  height: 1.35rem;
  margin: 0;
  border-radius: 999px;
  background: #fff;
  font-size: .7rem;
  transform: translateY(-50%);
  transition: left .2s ease, color .2s ease;
}

.admin-release-switch--active {
  background: #16a34a !important;
  box-shadow: 0 0 0 3px rgba(22, 163, 74, 0.14);
}
.admin-release-switch--active .ui-button-icon-left,
.admin-release-switch--active .p-button-icon {
  left: 1.7rem;
  color: #16a34a;
}

.admin-release-switch--inactive {
  background: #dc2626 !important;
  box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.14);
}
.admin-release-switch--inactive .ui-button-icon-left,
.admin-release-switch--inactive .p-button-icon {
  left: .2rem;
  color: #dc2626;
}

.admin-fish-edit-menu .ui-button-text,
.admin-fish-edit-menu .p-button-label {
  display: none;
}

.password-card-container {
  display: flex;
  justify-content: center;
  margin-top: 4rem;
}

.password-card {
  width: 100%;
  max-width: 420px;
  padding: 1.5rem;
  border-radius: 1rem;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15);
  background-color: #ffffff;
}

.password-card h2 {
  text-align: center;
  font-size: 1.6rem;
  margin-bottom: 1rem;
}

.password-card .p-messages {
  margin-bottom: 1.5rem;
}

.password-card .p-field {
  margin-bottom: 1.2rem;
}

.password-card label {
  font-weight: 600;
  margin-bottom: 0.3rem;
  display: block;
}

.password-card .p-password input {
  width: 100%;
  padding: 0.5rem;
  font-size: 1rem;
}

.password-card .button-container {
  display: flex;
  justify-content: flex-end;
  margin-top: 1rem;
}

.password-card .p-button-success {
  background-color: #28a745;
  border: none;
}

.password-card .p-button-success:hover {
  background-color: #218838;
}

.app-hero {
  padding: clamp(0.75rem, 1vw, 1rem);
}

.brand-title {
  margin: 0;
  line-height: 1.1;
}

.hero-weather {
  padding: clamp(0.5rem, 0.8vw, 0.7rem);
}

.hero-weather > [data-nosnippet] {
  width: 100%;
  min-width: 0;
}

.weather-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  margin: 0 .15rem .25rem;
}

.weather-header__heading {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: .55rem;
}

.weather-swipe-hint {
  display: none;
}

.weather-title {
  margin: 0;
  color: #fff;
  font-size: clamp(0.85rem, 1vw, 0.95rem);
  font-weight: 700;
  line-height: 1.15;
}

.weather-location {
  margin: 0;
  font-size: .78rem;
  white-space: nowrap;
}

.weather-location-controls {
  display: flex;
  min-width: 0;
  align-items: center;
  justify-content: flex-end;
  gap: .28rem;
}

body .weather-location-button.ui-button {
  width: 2rem;
  height: 2rem;
  padding: 0;
  border: 1px solid rgba(125, 211, 252, 0.24);
  background: rgba(56, 189, 248, 0.1);
  color: #e0f2fe;
}

body .weather-location-button.ui-button:hover,
body .weather-location-button.ui-button:focus-visible {
  border-color: rgba(125, 211, 252, 0.48);
  background: rgba(56, 189, 248, 0.2);
  color: #fff;
}

body .weather-location-dialog.ui-dialog {
  width: min(33.75rem, calc(100vw - 1rem)) !important;
  max-width: calc(100vw - 1rem);
  overflow: hidden;
  border: 1px solid rgba(148, 163, 184, 0.3);
  border-radius: 1.1rem;
  box-shadow: 0 24px 70px rgba(15, 23, 42, 0.34);
}

body .weather-location-dialog.ui-dialog .ui-dialog-titlebar {
  padding: .9rem 1.1rem;
  border: 0;
  background: linear-gradient(135deg, #0f172a, #164e63);
  color: #fff;
}

body .weather-location-dialog.ui-dialog .ui-dialog-titlebar-icon {
  color: #fff;
}

body .weather-location-dialog.ui-dialog .ui-dialog-content {
  width: auto;
  min-width: 0;
  height: auto !important;
  max-height: min(78dvh, 42rem);
  padding: 1.1rem;
  overflow-y: auto;
  background: linear-gradient(180deg, #fff, #f8fafc);
}

.weather-location-dialog__intro {
  display: flex;
  align-items: flex-start;
  gap: .8rem;
  margin-bottom: 1rem;
}

.weather-location-dialog__icon {
  display: grid;
  place-items: center;
  flex: 0 0 2.75rem;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: .85rem;
  background: linear-gradient(145deg, rgba(14, 165, 233, 0.16), rgba(13, 148, 136, 0.12));
  color: #0e7490;
  font-size: 1.2rem;
}

.weather-location-dialog__intro h3 {
  margin: 0;
  color: #0f172a;
  font-size: 1.08rem;
}

.weather-location-dialog__intro p {
  margin: .28rem 0 0;
  color: #64748b;
  font-size: .84rem;
  line-height: 1.45;
}

.weather-location-search {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: .55rem;
}

.weather-location-search__input,
.weather-location-search__input .ui-autocomplete,
.weather-location-search__input .ui-autocomplete-input {
  width: 100%;
}

.weather-location-search__input {
  min-width: 0;
}

.weather-location-search__input > .pi {
  z-index: 2;
}

body .weather-location-search__input .ui-autocomplete-input {
  min-height: 2.75rem;
  padding-left: 2.4rem;
  border-radius: .75rem;
}

body .weather-location-autocomplete-panel.ui-autocomplete-panel {
  max-width: calc(100vw - 1.5rem);
  border: 1px solid #e2e8f0;
  border-radius: .7rem;
  background: #fff;
  box-shadow: 0 14px 35px rgba(15, 23, 42, 0.2);
  overflow: hidden;
}

body .weather-location-autocomplete-panel .ui-autocomplete-items {
  padding: .35rem;
}

body .weather-location-autocomplete-panel .ui-autocomplete-item {
  padding: .65rem .75rem;
  border-radius: .5rem;
}

.weather-location-dialog__actions {
  display: flex;
  justify-content: flex-end;
  gap: .6rem;
  margin-top: 1rem;
  padding-top: .85rem;
  border-top: 1px solid #e2e8f0;
}

body.theme-dark .weather-location-dialog.ui-dialog .ui-dialog-content {
  background: linear-gradient(180deg, #111c31, #0f172a);
}

body.theme-dark .weather-location-dialog__intro h3 {
  color: #f8fafc;
}

body.theme-dark .weather-location-dialog__intro p {
  color: #cbd5e1;
}

body.theme-dark .weather-location-autocomplete-panel.ui-autocomplete-panel {
  border-color: rgba(148, 163, 184, 0.22);
  background: #172033;
  color: #f8fafc;
}

body.theme-dark .weather-location-autocomplete-panel .ui-autocomplete-item.ui-state-highlight {
  background: rgba(14, 165, 233, 0.18);
  color: #f8fafc;
}

body.theme-dark .weather-location-dialog__actions {
  border-color: rgba(148, 163, 184, 0.2);
}

.weather-data {
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: .5rem;
}

.weather-data:focus-visible {
  outline: 2px solid #38bdf8;
  outline-offset: 3px;
  border-radius: .65rem;
}

.weather-metric {
  min-width: 0;
  padding: .45rem .55rem;
  border-radius: .7rem;
  gap: .2rem;
}

.weather-metric--warning {
  grid-column: 1 / -1;
}

.weather-metric--chart {
  grid-column: auto;
}

.weather-metric--moon {
  grid-column: auto;
}

.weather-metric--interactive {
  grid-column: auto;
  position: relative;
}

.weather-metric--interactive > .metric-label {
  position: absolute;
  top: .45rem;
  left: .55rem;
  z-index: 1;
}

.weather-chart-row {
  display: grid;
  grid-template-columns: minmax(6.75rem, 0.9fr) minmax(0, 3fr);
  align-items: center;
  gap: .45rem;
  min-width: 0;
  height: 100%;
}

.weather-chart-summary,
.weather-chart-column {
  min-width: 0;
}

.weather-chart-summary {
  display: flex;
  flex-direction: column;
  align-self: start;
  gap: .1rem;
}

.weather-chart-summary--wind {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: .1rem;
}

.metric-label {
  font-size: .72rem;
  letter-spacing: .055em;
}

.metric-value {
  font-size: .95rem;
  line-height: 1.2;
}

.weather-metric .metric-value,
.weather-metric .metric-detail,
.weather-metric .celestial-caption {
  font-variant-numeric: tabular-nums;
}

.weather-metric .weather-detail-row {
  display: grid;
  grid-template-columns: 1rem minmax(0, 1fr);
  align-items: baseline;
  column-gap: .2rem;
}

.weather-detail-row > i,
.weather-detail-row > svg {
  width: 1rem;
  text-align: center;
}

.weather-container {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  width: 100%;
  gap: 1rem;
}

.temperature-section {
  flex: 0 0 calc(100% / 12);
}

.chart-section {
  flex: 1;
}

.weather-chart {
  width: 100%;
}
.weather-chart__graph {
  width: 100%;
  height: 94px;
}

.wind-summary {
  display: flex;
  flex-direction: column;
  align-self: stretch;
  gap: .12rem;
}

.wind-direction-label {
  display: block;
  font-size: .72rem;
  font-weight: 500;
  opacity: 0.85;
}

.wind-compass {
  align-self: flex-start;
  margin: .2rem 0 0;
  width: 57px;
  height: 57px;
  border-radius: 999px;
  position: relative;
  display: grid;
  place-items: center;
  background: radial-gradient(circle at 50% 50%, rgba(147, 197, 253, 0.22), rgba(15, 23, 42, 0.8));
}
.wind-compass__ring {
  position: absolute;
  inset: 0;
  border-radius: 999px;
  border: 2px solid rgba(255, 255, 255, 0.35);
  box-shadow: inset 0 0 25px rgba(255, 255, 255, 0.1);
}
.wind-compass__needle {
  position: absolute;
  width: 2px;
  height: 23px;
  background: linear-gradient(to top, #38bdf8 0%, #f97316 100%);
  border-radius: 999px;
  transform-origin: bottom center;
  bottom: 50%;
  left: calc(50% - 1px);
  box-shadow: 0 0 8px rgba(249, 115, 22, 0.7);
}
.wind-compass__center {
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: #fff;
  border: 2px solid rgba(56, 189, 248, 0.8);
  z-index: 1;
}
.wind-compass__label {
  position: absolute;
  font-size: .62rem;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.85);
}
.wind-compass__label--north {
  top: .28rem;
  left: 50%;
  transform: translateX(-50%);
}
.wind-compass__label--east {
  right: .35rem;
  top: 50%;
  transform: translateY(-50%);
}
.wind-compass__label--south {
  bottom: .28rem;
  left: 50%;
  transform: translateX(-50%);
}
.wind-compass__label--west {
  left: .35rem;
  top: 50%;
  transform: translateY(-50%);
}

.catch-probability-card {
  --catch-probability-color: #0ea5e9;
  --catch-probability-bg: rgba(14, 165, 233, .12);
  --catch-probability-track: #64748b;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(0.5rem, 1vw, 0.8rem);
  margin-top: 0;
}

.catch-probability-card--low {
  --catch-probability-color: #ef4444;
  --catch-probability-bg: rgba(239, 68, 68, .12);
}

.catch-probability-card--medium {
  --catch-probability-color: #f59e0b;
  --catch-probability-bg: rgba(245, 158, 11, .14);
}

.catch-probability-card--elevated {
  --catch-probability-color: #0d9488;
  --catch-probability-bg: rgba(13, 148, 136, .14);
}

.catch-probability-card--high {
  --catch-probability-color: #16a34a;
  --catch-probability-bg: rgba(22, 163, 74, .14);
}

.catch-probability-visual {
  position: relative;
  width: min(52%, 15rem);
  aspect-ratio: 787 / 210;
  flex: 0 1 15rem;
  margin-top: .85rem;
}

.catch-probability-visual__track,
.catch-probability-visual__fill {
  position: absolute;
  inset: 0;
  background: var(--catch-probability-track);
  -webkit-mask-image: var(--catch-probability-mask);
  mask-image: var(--catch-probability-mask);
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: contain;
  mask-size: contain;
}

.catch-probability-visual__progress {
  position: absolute;
  inset: 0;
  clip-path: inset(0 calc((100 - var(--catch-probability)) * 1%) 0 0);
  transition: clip-path 250ms ease-out;
}

.catch-probability-visual__fill {
  background: var(--catch-probability-color);
}

.catch-probability-summary {
  display: flex;
  flex: 1 1 auto;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: .12rem;
  padding: .45rem .6rem;
  border-radius: .65rem;
  background: var(--catch-probability-bg);
}

.catch-probability-value {
  display: inline-flex;
  align-items: center;
  gap: .25rem;
  font-size: clamp(1.35rem, 2vw, 1.8rem);
  line-height: 1;
}

.catch-probability-caption {
  color: #64748b;
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
}

@media (max-width: 1199px) {
  .weather-data {
    display: flex;
    overflow-x: auto;
    scrollbar-width: none;
    scroll-snap-type: x mandatory;
  }

  .weather-data::-webkit-scrollbar {
    display: none;
  }

  .weather-data > .weather-metric {
    box-sizing: border-box;
    flex: 0 0 calc((100% - 1rem) / 3);
    scroll-snap-align: start;
  }

  .weather-data > .weather-metric--interactive {
    flex-basis: calc((100% - .25rem) * 2 / 3);
  }

  .weather-swipe-hint {
    display: inline-flex;
  }

  .weather-metric--chart {
    grid-column: span 2;
  }

  .weather-metric--moon {
    grid-column: span 2;
  }

  .weather-metric--interactive {
    grid-column: span 4;
  }
}
@media (max-width: 640px) {
  .weather-header {
    align-items: flex-start;
    flex-direction: column;
    gap: .2rem;
  }

  .weather-location {
    white-space: normal;
  }

  .weather-location-controls {
    width: 100%;
    justify-content: space-between;
  }

  body .weather-location-dialog.ui-dialog .ui-dialog-content {
    max-height: calc(100dvh - 4.5rem);
    padding: .85rem;
  }

  .weather-location-search {
    grid-template-columns: 1fr;
  }

  .weather-location-search .ui-button,
  .weather-location-dialog__actions .ui-button {
    width: 100%;
  }

  .weather-location-dialog__actions {
    flex-direction: column-reverse;
  }

  .weather-data {
    grid-template-columns: 1fr;
  }

  .weather-metric--chart,
  .weather-metric--moon,
  .weather-metric--interactive {
    grid-column: 1;
  }

  .weather-metric--moon .moon-phase-value {
    justify-content: space-between;
  }

  .catch-probability-card {
    align-items: center;
    flex-direction: row;
  }

  .catch-probability-visual {
    flex-basis: 9rem;
  }
}
@media (min-width: 769px) and (max-width: 1199px) {
  .weather-data > .weather-metric--moon,
  .weather-data > .weather-metric--interactive {
    height: 8.625rem;
    align-self: center;
  }
}
@media (prefers-reduced-motion: reduce) {
  .catch-probability-visual__progress {
    transition: none;
  }
}
.catch-fish-school {
  display: flex;
  align-items: center;
  gap: .24rem;
  margin-top: .12rem;
  color: rgba(100, 116, 139, 0.28);
}

.catch-fish-school .fa-fish {
  font-size: clamp(0.78rem, 1.3vw, 1rem);
  transform: translateY(0);
  transition: color .2s ease, opacity .2s ease, transform .2s ease;
}

.catch-fish-school .fa-fish:nth-child(even) {
  transform: translateY(0.18rem) scaleX(-1);
}

.catch-fish-school .catch-fish-school__fish--active {
  color: var(--catch-probability-color);
  opacity: 1;
  filter: drop-shadow(0 3px 5px rgba(15, 23, 42, 0.16));
}

.catch-fish-school .catch-fish-school__fish--active:nth-child(odd) {
  transform: translateY(-0.1rem);
}

.catch-fish-school .catch-fish-school__fish--active:nth-child(even) {
  transform: translateY(0.08rem) scaleX(-1);
}

.weather-metric--moon .moon-phase-value {
  display: grid;
  flex: 1;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: center;
  gap: 0;
  min-width: 0;
}

.weather-metric--moon {
  gap: 0;
}

.weather-metric--moon > .metric-label {
  line-height: 1.2;
}

.celestial-section {
  display: flex;
  flex-direction: column;
  align-items: center;
  align-self: stretch;
  justify-content: flex-start;
  min-width: 0;
  padding: 0 .2rem;
  gap: .35rem;
  text-align: center;
}

.celestial-section--moon {
  border-left: 1px solid rgba(255, 255, 255, 0.15);
}

.celestial-caption {
  display: block;
  min-width: 0;
}

.weather-metric--moon .moon-phase-label {
  min-width: 0;
  font-size: .82rem;
  line-height: 1.1;
}

.weather-metric--moon .moon-phase-visual {
  flex: 0 0 auto;
  width: 80px;
  height: 80px;
}

.metric-detail {
  display: block;
  font-size: .68rem;
  font-weight: 500;
  line-height: 1.2;
  overflow-wrap: break-word;
}

.sun-label {
  opacity: .85;
}

.sun-times {
  line-height: 1.1;
}

.sun-times .metric-detail {
  line-height: inherit;
}

.sun-icon {
  width: 80px;
  height: 80px;
  object-fit: contain;
  flex: 0 0 auto;
}

/* -------------------------------------------------------
   Anglerinformationen – Tooltip-Styling
   Ziel: Dezente, markenkonforme Hinweise + dunkler Overlay
   ------------------------------------------------------- */
/* Basis-Fallbacks, falls Theme-Variablen fehlen */
:root {
  --aif-primary: var(--primary-color, #3b82f6);
  --aif-text: var(--text-color, #1f2937);
  --aif-text-muted: var(--text-color-secondary, #6b7280);
  --aif-surface-200: var(--surface-200, #e5e7eb);
  --aif-surface-400: var(--surface-400, #9ca3af);
  --aif-overlay-bg: rgba(32, 35, 39, 0.96);
  --aif-overlay-border: rgba(255, 255, 255, 0.06);
}

.catch-tooltip-content {
  max-width: 350px;
}

.tooltip-title {
  font-weight: bold;
  display: block;
  margin-bottom: 0.3rem;
  color: #e0e0e0;
}

.tooltip-info-text {
  display: block;
  margin-bottom: 0.6rem;
  font-size: 0.9rem;
  color: #cfcfcf;
  line-height: 1.3;
}

.catch-tooltip-list {
  margin: 0;
  padding-left: 1.2rem;
}

/* Sichtbarer, aber dezenter Hinweis auf Tooltip */
.has-tooltip {
  border-bottom: 1px dotted var(--aif-surface-400);
  cursor: help;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding-bottom: 0.05rem;
}

.has-tooltip:hover {
  border-bottom-color: var(--aif-primary);
}

/* Info-Icon – unaufdringlich, farblich konsistent */
.tooltip-hint {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  outline: none;
  line-height: 1;
}

.tooltip-hint .pi {
  font-size: 0.95rem;
  opacity: 0.7;
  transition: transform 0.15s ease, opacity 0.15s ease, color 0.15s ease;
  color: var(--aif-primary);
}

.tooltip-hint:hover .pi,
.tooltip-hint:focus .pi {
  opacity: 1;
  transform: translateY(-1px);
}

/* Tastaturfokus (WCAG) */
.tooltip-hint:focus-visible {
  box-shadow: 0 0 0 2px color-mix(in oklab, var(--aif-primary) 35%, transparent);
  border-radius: 0.375rem;
}

/* Screenreader-only Text */
.sr-only {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* ------------------------------
   Tooltip-Panel (PrimeFaces)
   ------------------------------ */
/* Panel-Container und Textfläche */
.catch-tooltip .ui-tooltip,
.catch-tooltip .ui-tooltip-text {
  background: var(--aif-overlay-bg) !important;
  color: #e7e9ea !important;
  border: 1px solid var(--aif-overlay-border) !important;
  border-radius: 10px !important;
  backdrop-filter: blur(2px);
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.35), 0 2px 8px rgba(0, 0, 0, 0.2) !important;
}

/* Typografie & Max-Breite */
.catch-tooltip .ui-tooltip-text,
.catch-tooltip-content {
  max-width: 44rem;
  font-size: 0.92rem;
  line-height: 1.35;
}

/* Tooltip-Pfeil (wenn vom Theme genutzt) */
.catch-tooltip .ui-tooltip-arrow {
  border-top-color: var(--aif-overlay-bg) !important;
  /* Bei anderen Positionen je nach Theme ggf. überschreiben */
}

/* Liste mit dezenten, markenkonformen Bullets */
.catch-tooltip-list {
  margin: 0;
  padding-left: 0;
  /* wir setzen eigene Bullets */
  list-style: none;
}

.catch-tooltip-list li {
  position: relative;
  margin: 0.30rem 0;
  padding-left: 1.15rem;
  color: #cfd3d7;
  /* etwas softer als Headline */
}

.catch-tooltip-list li::before {
  content: "";
  position: absolute;
  top: 0.55em;
  left: 0;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: color-mix(in oklab, var(--aif-primary) 75%, #ffffff 25%);
  box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.08) inset;
  opacity: 0.9;
}

/* Feine Trennung, wenn du Abschnitte brauchst */
.catch-tooltip-content hr {
  border: none;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  margin: 0.5rem 0;
}

/* Light-Theme-Optimierung: bleibt dunkler Overlay für Lesbarkeit
   (fügt sich in die Screenshot-Optik ein: helle Toolbar, dunkler Tooltip) */
@media (prefers-color-scheme: light) {
  .catch-tooltip .ui-tooltip,
  .catch-tooltip .ui-tooltip-text {
    background: var(--aif-overlay-bg) !important;
    color: #eef1f4 !important;
  }
}
/* Optionaler, sehr dezenter Hover auf dem Label/Wrap
   – wirkt wie „aktiv“, ohne zu schreien. */
.has-tooltip:hover .ui-outputlabel,
.has-tooltip:hover #catchProbabilityID {
  filter: brightness(1.02);
}

/* Kleinere Bildschirme: etwas kompakter */
@media (max-width: 768px) {
  .catch-tooltip .ui-tooltip-text,
  .catch-tooltip-content {
    font-size: 0.9rem;
    max-width: 90vw;
  }
}
.fish-detail-form {
  width: 100%;
}

.fish-detail-shell {
  margin: 0 auto;
  display: flex;
  /* required for flex-grow to work */
  flex-direction: row;
  flex-wrap: wrap;
  gap: clamp(1.5rem, 2vw, 2.5rem);
  padding: clamp(1rem, 2vw, 2rem) 0;
}

.fish-hero-media,
.fish-hero-content,
.fish-hero-regulation,
.fish-regulation-panel {
  background: rgba(255, 255, 255, 0.1);
  border-radius: 1.5rem;
  padding: clamp(1rem, 2vw, 2rem);
  box-shadow: 0 20px 45px rgba(7, 18, 43, 0.08);
}

.fish-hero {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
  gap: clamp(1rem, 2vw, 2rem);
}

.fish-hero-media {
  flex: 0 0 21vw;
  border-radius: 1rem;
  overflow: hidden;
  border: 1px solid rgba(15, 32, 54, 0.08);
}

.fish-hero-content {
  flex: 1 1 71vw;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 1rem;
  border: 1px solid rgba(15, 32, 54, 0.08);
}

.fish-hero-regulation {
  flex: 0 0 44vw;
  border: 1px solid rgba(15, 32, 54, 0.08);
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.fish-description-header {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  text-align: left;
}

.fish-description-kicker {
  margin: 0;
  text-transform: uppercase;
  letter-spacing: 0.35em;
  font-size: 0.8rem;
  color: #6b7c92;
}

.fish-description-header h2 {
  margin: 0;
  font-size: clamp(1.75rem, 3vw, 2.5rem);
  color: #0b2134;
}

.fishDescriptionText {
  text-align: left;
  font-size: 1rem;
  line-height: 1.8;
  color: #1b2f3f;
}

.fish-hero-text {
  font-size: 1.05rem;
  line-height: 1.85;
}

.fish-regulation-panel {
  flex: 1 1 100%;
  border: 1px solid rgba(15, 32, 54, 0.08);
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.regulation-panel-header {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.sidebar-kicker {
  text-transform: uppercase;
  letter-spacing: 0.3em;
  font-size: 0.75rem;
  color: #73889d;
  margin: 0;
}

.regulation-panel-header h3 {
  margin: 0;
  font-size: 1.35rem;
  color: #0f2a3d;
}

.regulation-panel-subtitle {
  margin: 0;
  color: #5b6c7f;
  font-size: 0.95rem;
}

.regulation-section {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.regulation-section__title {
  font-weight: 600;
  color: #0f2a3d;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-size: 0.85rem;
}

.regulation-list {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

.regulation-list__item {
  display: grid;
  grid-template-columns: minmax(120px, 0.8fr) minmax(0, 2fr);
  gap: 1rem;
  padding-bottom: 0.85rem;
  border-bottom: 1px solid rgba(17, 43, 70, 0.12);
}

.regulation-list__item:last-child {
  border-bottom: none;
  padding-bottom: 0;
}

.regulation-list__state {
  font-weight: 600;
  color: #0f2a3d;
  text-align: left;
}

.regulation-list__content {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  align-items: center;
}

.regulation-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.4rem 0.85rem;
  border-radius: 999px;
  background: rgba(12, 61, 132, 0.08);
  color: #0b2c4a;
  font-weight: 600;
}

.regulation-chip--measure {
  background: rgba(23, 121, 44, 0.12);
  color: #0c4f21;
}

.regulation-chip--inline {
  display: inline-flex;
}

.regulation-note {
  background: rgba(12, 61, 132, 0.05);
  padding: 0.65rem 0.85rem;
  border-radius: 0.75rem;
  font-size: 0.9rem;
  color: #324353;
  flex: 1 1 100%;
}

.regulation-updated {
  font-size: 0.8rem;
  color: #6b7a89;
}

.regulation-empty {
  margin: 0;
  font-size: 0.9rem;
  color: #7c8896;
  font-style: italic;
}

.fish-detail-toolbar {
  display: flex;
  justify-content: flex-end;
}

@media (max-width: 960px) {
  .fish-hero {
    grid-template-columns: 1fr;
  }

  .regulation-list__item {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 600px) {
  .fish-description-header h2 {
    font-size: 1.5rem;
  }

  .regulation-list__content {
    flex-direction: column;
    align-items: flex-start;
  }
}
.fish-detail-toolbar {
  flex-wrap: wrap;
  gap: .5rem;
}

.fish-detail-toolbar .modern-action {
  padding: .65rem 1rem;
}

.fish-hero-tabs {
  flex: 1 1 min(68vw, 56rem);
  min-width: min(100%, 34rem);
}

.fish-detail-tabs {
  width: 100%;
}

.fish-detail-tabs .ui-tabs-nav {
  display: flex;
  gap: .35rem;
  flex-wrap: wrap;
  border: 0;
  background: transparent;
  padding: 0 0 .75rem;
}

.fish-detail-tabs .ui-tabs-nav > li {
  border-radius: 999px;
  overflow: hidden;
}

.fish-detail-tabs .ui-tabs-panels,
.fish-detail-tabs .ui-tabs-panel {
  padding: 0;
  border: 0;
  background: transparent;
}

.fish-hero-tab-panel {
  min-height: 100%;
}

.fish-hero-tabs .fish-hero-content,
.fish-hero-tabs .fish-hero-regulation {
  flex: 1 1 auto;
  width: 100%;
}

.fish-hero-tabs .regulation-section__title {
  display: none;
}

.fish-hero {
  width: 100%;
}

.fish-hero-tabs {
  flex: 1 1 0;
  min-width: 0;
  align-self: stretch;
}

.fish-detail-tabs,
.fish-detail-tabs .ui-tabs,
.fish-detail-tabs .ui-tabs-panels,
.fish-detail-tabs .ui-tabs-panel {
  width: 100%;
  box-sizing: border-box;
}

.fish-detail-tabs .ui-tabs-panel {
  min-width: 0;
}

.fish-hero-tab-panel {
  width: 100%;
  box-sizing: border-box;
}

.fish-hero-tabs .fish-hero-regulation .regulation-section,
.fish-hero-tabs .fish-hero-regulation .regulation-list {
  width: 100%;
}

.regulation-source-link {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  width: fit-content;
  margin-top: 0.5rem;
  color: var(--primary-color);
  font-size: 0.875rem;
  font-weight: 600;
  text-decoration: none;
  transition: color 0.2s ease, opacity 0.2s ease;
}
.regulation-source-link:hover, .regulation-source-link:focus-visible {
  color: var(--primary-color-text);
  text-decoration: underline;
}
.regulation-source-link:focus-visible {
  outline: 2px solid var(--primary-color);
  outline-offset: 3px;
  border-radius: 0.2rem;
}
.regulation-source-link i {
  font-size: 0.8rem;
}

.fish-description-title-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
}

/*
 * Die Mondphase wird über diskrete WebP-Bilder angezeigt (siehe WeatherController.getMoonPhaseImageName()).
 * Die Logik für die CSS-basierten Shadow-Effekte bleibt hier zu Referenzzwecken, wird aber nicht angewendet.
 */
.moon-phase-visual {
  position: relative;
  width: 100px;
  height: 100px;
  border-radius: 50%;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.moon-phase-icon {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover;
  /* wichtig: Bild füllt den Kreis */
  display: block;
}

/* DEPRECATED: moon-phase-overlay wird nicht mehr verwendet */
.moon-phase-overlay {
  display: none;
  /* Deaktiviert - CSS-Effekte nicht mehr in Verwendung */
  position: absolute;
  top: 11px;
  left: 0;
  width: 78px;
  height: 78px;
  border-radius: 50%;
  transform: translateX(var(--shadow-x, 0px));
  background: rgba(0, 0, 0, 0.92);
  box-shadow: inset 0 0 12px rgba(0, 0, 0, 0.8), 0 0 10px rgba(0, 0, 0, 0.7);
  pointer-events: none;
  transition: transform 0.3s ease, opacity 0.3s ease;
  opacity: 0.95;
}

/* DEPRECATED: Die folgenden Selektoren werden nicht mehr verwendet */
.moon-phase-visual[data-phase="New Moon"] .moon-phase-overlay {
  --shadow-x: 10px;
  opacity: 0.8;
}

.moon-phase-visual[data-phase="Waxing Crescent"] .moon-phase-overlay {
  --shadow-x: -25px;
  top: 0px;
  opacity: 0.8;
  width: 100px;
  height: 100px;
}

.moon-phase-visual[data-phase="First Quarter"] .moon-phase-overlay {
  --shadow-x: -50px;
}

.moon-phase-visual[data-phase="Waxing Gibbous"] .moon-phase-overlay {
  --shadow-x: -75px;
  opacity: 0.85;
}

.moon-phase-visual[data-phase="Full Moon"] .moon-phase-overlay {
  --shadow-x: -120px;
  opacity: 0;
}

.moon-phase-visual[data-phase="Waning Gibbous"] .moon-phase-overlay {
  --shadow-x: 75px;
  opacity: 0.85;
}

.moon-phase-visual[data-phase="Last Quarter"] .moon-phase-overlay {
  --shadow-x: 50px;
}

.moon-phase-visual[data-phase="Waning Crescent"] .moon-phase-overlay {
  width: 107px;
  height: 107px;
  --shadow-x: 25px;
  background: rgba(0, 0, 0, 0.74);
  box-shadow: inset 0 2 18px rgba(0, 0, 0, 0.8), 0 0 10px rgba(0, 0, 0, 0.7);
}

.footer-wrapper {
  width: 100%;
}

.footer {
  display: grid;
  grid-template-columns: minmax(240px, 1fr) auto;
  align-items: start;
  gap: 1.25rem 2rem;
  text-align: left;
  color: #1f2937;
}
.footer__info {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.footer__brand {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.footer__title {
  font-weight: 700;
  letter-spacing: 0.02em;
  color: #0f172a;
}
.footer__subtitle {
  color: #475569;
  font-size: 0.9rem;
}
.footer__meta {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  flex-direction: column;
}
.footer__version-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.45rem 0.75rem;
  background: linear-gradient(120deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.04));
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 999px;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.08);
}
.footer__label {
  text-transform: uppercase;
  font-size: 0.75rem;
  letter-spacing: 0.08em;
  color: #64748b;
}
.footer__version {
  font-weight: 700;
  color: #60baf1;
}
.footer__version-line, .footer__copyright {
  font-size: 0.85rem;
  color: #475569;
  letter-spacing: 0.01em;
}
.footer__copyright {
  font-size: 0.8rem;
}
.footer__links {
  display: flex;
  justify-content: flex-end;
  gap: 1rem;
  flex-wrap: wrap;
}
.footer__link {
  color: #334155;
  padding: 0.35rem 0.65rem;
  border-radius: 999px;
  text-decoration: none;
  transition: all 0.2s ease;
}
.footer__link:hover, .footer__link:focus {
  color: #0f172a;
  background: rgba(15, 23, 42, 0.08);
  outline: none;
}
.footer__link + .footer__link {
  margin-left: 1rem;
}

.link-spacing {
  display: inline-flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
}
.link-spacing > *:not(:last-child) {
  margin-right: 1rem;
}

@media (max-width: 768px) {
  .footer {
    grid-template-columns: 1fr;
    text-align: left;
  }
  .footer__links {
    justify-content: flex-start;
  }
}
.legal-page {
  min-height: calc(100vh - var(--header-height, 0px));
  padding: 3rem 1.5rem 4rem;
  background: radial-gradient(circle at 20% 20%, rgba(52, 152, 219, 0.12), transparent 32%), radial-gradient(circle at 80% 0%, rgba(46, 204, 113, 0.12), transparent 30%), linear-gradient(180deg, #f8fbff 0%, #f3f6fb 100%);
  display: flex;
  align-items: flex-start;
  justify-content: center;
}
@media (min-width: 768px) {
  .legal-page {
    padding: 4rem 2.5rem;
  }
}

.legal-card {
  width: 61.8% !important;
  background: #ffffff;
  border-radius: 16px;
  box-shadow: 0 20px 60px rgba(18, 38, 63, 0.12);
  padding: clamp(1.5rem, 2vw, 2.25rem);
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  position: relative;
  overflow: hidden;
}
@media (max-width: 1200px) {
  .legal-card {
    width: 100% !important;
    max-width: 1100px;
  }
}
.legal-card:before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(120deg, rgba(52, 152, 219, 0.12), rgba(46, 204, 113, 0.08));
  opacity: 0.6;
  pointer-events: none;
}
.legal-card > * {
  position: relative;
  z-index: 1;
}

.legal-header {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.legal-eyebrow {
  font-size: 0.85rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #60baf1;
  font-weight: 700;
}

.legal-title {
  font-size: clamp(1.6rem, 3vw, 2.2rem);
  color: #2c3e50;
  margin: 0;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.legal-subtitle {
  color: #777;
  margin: 0;
  max-width: 72ch;
}

.legal-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
}

.legal-buttons {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
}
.legal-buttons .p-button {
  border-radius: 999px;
  padding-inline: 1rem;
}

.legal-content {
  background: rgba(255, 255, 255, 0.6);
  border: 1px solid rgba(12, 85, 130, 0.07);
  border-radius: 12px;
  padding: clamp(1rem, 2vw, 1.5rem);
  backdrop-filter: blur(4px);
}

.legal-text {
  display: block;
  color: #2c3e50;
  font-size: 1rem;
  line-height: 1.7;
  text-align: justify;
}
.legal-text p {
  margin-bottom: 1rem;
}
.legal-text ul, .legal-text ol {
  margin: 0.5rem 0 1rem 1.25rem;
}

.legal-dialog .p-dialog-header {
  border-bottom: 1px solid rgba(12, 85, 130, 0.08);
  padding: 1rem 1.25rem;
}
.legal-dialog .p-dialog-content {
  padding: 0 1.25rem 1.25rem;
  background: linear-gradient(180deg, #fbfdff 0%, #f7fbff 60%, #ffffff 100%);
}

.legal-form {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.legal-editor .ql-container {
  border-radius: 10px;
  border-color: rgba(12, 85, 130, 0.15);
  min-height: 55vh;
}

.legal-note {
  width: 100%;
  border-radius: 10px;
  border-color: rgba(12, 85, 130, 0.15);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}

.legal-form-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 0.75rem;
  align-items: center;
}

.legal-select {
  width: 100%;
}

.legal-dialog-actions {
  display: flex;
  justify-content: flex-end;
  gap: 0.75rem;
  flex-wrap: wrap;
}
.legal-dialog-actions .p-button {
  border-radius: 10px;
  padding-inline: 1rem;
}

.legal-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  background: rgba(46, 204, 113, 0.12);
  color: #188c51;
  padding: 0.35rem 0.75rem;
  border-radius: 999px;
  font-weight: 600;
  font-size: 0.95rem;
}

.legal-gradient-bar {
  height: 4px;
  width: 140px;
  background: linear-gradient(90deg, #0c5582, #41b883);
  border-radius: 999px;
}

.feedback-page {
  margin: 0 auto;
  padding: 2.5rem 1.5rem 3rem;
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.feedback-hero {
  background: linear-gradient(135deg, rgba(52, 152, 219, 0.12), rgba(46, 204, 113, 0.18));
  border-radius: 14px;
  padding: 2rem 1.5rem;
  gap: 0.75rem;
  border: 1px solid rgba(52, 152, 219, 0.25);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.04);
}
.feedback-hero h1 {
  color: #123048;
  font-size: clamp(1.8rem, calc(1rem + 2vw), 2.4rem);
  margin: 0;
  letter-spacing: -0.02em;
}
.feedback-hero .feedback-intro {
  max-width: 680px;
  color: #3a556e;
  margin: 0 auto;
  line-height: 1.6;
  font-size: 1.05rem;
}

.feedback-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.4rem 0.85rem;
  border-radius: 999px;
  background: rgba(46, 204, 113, 0.1);
  color: #15803d;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  font-size: 0.85rem;
}

.feedback-form {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  width: 100%;
  margin: 0 auto;
}

.feedback-messages .ui-messages {
  border-radius: 10px;
}

.feedback-card {
  border-radius: 16px;
  border: 1px solid rgba(18, 48, 72, 0.08) !important;
  box-shadow: 0 15px 40px rgba(0, 0, 0, 0.06);
  background: #ffffff;
  overflow: hidden;
}
.feedback-card .ui-panel-titlebar {
  font-size: 1.2rem;
  font-weight: 700;
  padding: 1.2rem 1.5rem;
  border-bottom: 1px solid rgba(18, 48, 72, 0.08);
}
.feedback-card .ui-panel-content {
  padding: 1.5rem;
}

.feedback-layout {
  display: grid;
  grid-template-columns: minmax(240px, 20vw) 1fr;
  gap: 1.25rem 1.5rem;
  align-items: start;
  max-width: 100%;
}

.feedback-left {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  align-items: flex-start;
}
.feedback-left label {
  display: block;
  font-weight: 700;
  color: #123048;
  margin-bottom: 0.35rem;
}
.feedback-left .ui-inputtext {
  border-radius: 10px;
  border: 1px solid rgba(18, 48, 72, 0.15);
  padding: 1rem 1rem;
  font-size: 1rem;
  background: rgba(255, 255, 255, 0.9);
  transition: all 0.2s ease;
  width: 100%;
  max-width: clamp(220px, 18vw, 320px);
}
.feedback-left .ui-inputtext:focus, .feedback-left .ui-inputtext.ui-state-focus {
  border-color: #3498db;
  box-shadow: 0 0 0 3px rgba(52, 152, 219, 0.15);
}

.feedback-right {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.feedback-right label {
  font-weight: 700;
  color: #123048;
}
.feedback-right .ui-inputtextarea {
  border-radius: 12px;
  border: 1px solid rgba(18, 48, 72, 0.15);
  padding: 1.1rem 1rem;
  font-size: 1rem;
  background: rgba(255, 255, 255, 0.95);
  transition: all 0.2s ease;
  min-height: 280px;
  line-height: 1.5;
}
.feedback-right .ui-inputtextarea:focus, .feedback-right .ui-inputtextarea.ui-state-focus {
  border-color: #3498db;
  box-shadow: 0 0 0 3px rgba(52, 152, 219, 0.15);
}
.feedback-right .feedback-textarea {
  width: 100%;
}

.feedback-actions {
  grid-column: 2;
  justify-self: end;
  align-self: end;
  padding-top: 0.5rem;
}
.feedback-actions .feedback-submit {
  background: linear-gradient(135deg, #3498db, #2ecc71);
  border: none;
  font-weight: 700;
  padding: 0.85rem 1.4rem;
  box-shadow: 0 10px 25px rgba(52, 152, 219, 0.3);
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.feedback-actions .feedback-submit:hover, .feedback-actions .feedback-submit:focus {
  transform: translateY(-1px);
  box-shadow: 0 12px 30px rgba(46, 204, 113, 0.3);
}

@media (max-width: 768px) {
  .feedback-page {
    padding: 1.5rem 1rem 2.25rem;
  }

  .feedback-card .ui-panel-content {
    padding: 1.25rem;
  }

  .feedback-layout {
    grid-template-columns: 1fr;
  }

  .feedback-left {
    width: 100%;
  }
  .feedback-left .ui-inputtext {
    max-width: 100%;
  }

  .feedback-actions {
    grid-column: 1;
    justify-self: end;
  }
}
.news-page {
  max-width: 960px;
  margin: 0 auto;
  padding: clamp(1rem, 4vw, 3rem);
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 20px;
  color: #172b3a;
}

.news-article {
  max-width: 72ch;
  margin: 0 auto;
}
.news-article__title {
  margin: 0 0 .75rem;
  font-size: clamp(1.65rem, 4vw, 2.6rem);
  line-height: 1.2;
  overflow-wrap: anywhere;
}
.news-article__meta {
  flex-wrap: wrap;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}
.news-article__date {
  display: block;
  color: #526575;
  font-size: .9rem;
}
.news-article__body {
  margin-top: 2rem;
  line-height: 1.8;
  overflow-wrap: anywhere;
}
.news-article__body img, .news-article__body video {
  max-width: 100%;
  height: auto;
}
.news-article__body iframe {
  max-width: 100%;
}
.news-article__body table {
  display: block;
  max-width: 100%;
  overflow-x: auto;
}
.news-article__body h2, .news-article__body h3 {
  margin-top: 1.8em;
  line-height: 1.35;
}
.news-article__body a {
  text-decoration: underline;
}
.news-article__actions {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-top: 2rem;
}

.news-related {
  display: grid;
  gap: .75rem;
  margin-top: 2.5rem;
  border-top: 1px solid #e2e8f0;
  padding-top: 1.5rem;
}
.news-related__link {
  display: block;
  padding: 1rem 1.25rem;
  border-radius: 12px;
  background: #f3f7fa;
  text-decoration: none;
}
.news-related__link:hover {
  background: #e6eff5;
}
.news-related__link:focus-visible {
  outline: 3px solid #1c7fbe;
  outline-offset: 3px;
}
.news-related__title {
  display: block;
  font-weight: 600;
  margin-bottom: .4rem;
  overflow-wrap: anywhere;
}

.news-empty-state {
  background: var(--app-surface, #fff);
  backdrop-filter: none;
  display: flex;
  align-items: center;
  gap: 0.85rem;
  padding: 1.1rem 1.3rem;
  border: 1px solid rgba(28, 127, 190, 0.22);
  color: #0f172a;
  font-weight: 700;
  letter-spacing: 0.01em;
  background: linear-gradient(120deg, rgba(231, 245, 255, 0.9), rgba(219, 239, 255, 0.9));
  box-shadow: 0 10px 26px rgba(15, 23, 42, 0.12);
}
.news-empty-state i {
  color: #1c7fbe;
  font-size: 1.35rem;
}

.news-hero {
  background: var(--app-surface, #fff);
  backdrop-filter: none;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 1rem;
  align-items: center;
  padding: 1.1rem 1.25rem;
  border: 1px solid rgba(28, 127, 190, 0.2);
  box-shadow: 0 16px 32px rgba(15, 23, 42, 0.14);
  background: linear-gradient(120deg, rgba(231, 245, 255, 0.92), rgba(211, 236, 252, 0.94));
}

.news-hero__badge {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.65rem 0.9rem;
  border-radius: 16px;
  background: linear-gradient(140deg, rgba(28, 127, 190, 0.14), rgba(44, 144, 214, 0.24));
  color: #0b3b6e;
  font-weight: 700;
  letter-spacing: 0.03em;
}
.news-hero__badge i {
  color: #2c90d6;
}

.news-hero__title {
  margin: 0 0 0.35rem;
  color: #0b2747;
  font-size: 1.6rem;
  letter-spacing: 0.01em;
}

.news-hero__subtitle {
  margin: 0;
  color: #1f2937;
  line-height: 1.6;
}

body .news-accordion.ui-accordion {
  border: none;
  background: transparent;
}

.news-accordion {
  border: none;
}
.news-accordion .ui-accordion-header {
  background: linear-gradient(120deg, rgba(44, 144, 214, 0.12), rgba(28, 127, 190, 0.08));
  color: #0f172a;
  border: none;
  padding: 1.2rem 1.6rem;
  margin-bottom: .5rem;
  border-radius: 12px;
  cursor: pointer;
  transition: background .2s ease;
}
.news-accordion .ui-accordion-header:hover {
  background: linear-gradient(120deg, rgba(44, 144, 214, 0.18), rgba(28, 127, 190, 0.12));
}
.news-accordion .news-tab-title {
  font-size: 1.25rem;
  font-weight: 600;
  letter-spacing: 0.3px;
  color: #0f172a;
}
.news-accordion .ui-accordion-content {
  background: #f8fbff;
  padding: 1.4rem 1.8rem;
  border-radius: 8px;
  color: #0f172a;
  line-height: 1.6;
  margin-bottom: 1rem;
}

.news-entry-title {
  font-size: 1.6rem;
  font-weight: 700;
  margin-bottom: .3rem;
}

.news-entry-date {
  font-size: .9rem;
  color: #4b5563;
  margin-bottom: 1rem;
}

.news-entry-content {
  font-size: 1.05rem;
  color: #1f2937;
}

body .news-accordion.ui-accordion .ui-accordion-header {
  margin: 0 0 1rem;
  border-radius: 18px;
  border: 1px solid rgba(28, 127, 190, 0.22);
  background: linear-gradient(120deg, rgba(231, 245, 255, 0.96), rgba(219, 239, 255, 0.94));
  box-shadow: 0 18px 36px rgba(15, 23, 42, 0.14);
  transition: border-color 0.25s ease, transform 0.2s ease, box-shadow 0.25s ease;
  overflow: hidden;
}

body .news-accordion.ui-accordion .ui-accordion-header a {
  padding: 1.25rem 1.35rem;
  display: block;
  color: #0b2747;
}

body .news-accordion.ui-accordion .ui-accordion-header.ui-state-hover {
  transform: translateY(-1px);
  border-color: rgba(44, 144, 214, 0.65);
  box-shadow: 0 20px 48px rgba(15, 23, 42, 0.18);
}

body .news-accordion.ui-accordion .ui-accordion-header.ui-state-active {
  border-color: rgba(44, 144, 214, 0.9);
  background: linear-gradient(130deg, rgba(44, 144, 214, 0.22), rgba(231, 245, 255, 0.94));
  box-shadow: 0 22px 52px rgba(15, 23, 42, 0.2);
}

.news-entry__header {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.news-entry__title-row {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  justify-content: space-between;
  flex-wrap: wrap;
}

.news-entry__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.95rem;
  color: #1f2937;
  letter-spacing: 0.04em;
}
.news-entry__meta .news-entry__meta-chip {
  padding: 0.4rem 0.85rem;
  border-radius: 14px;
  border: 1px solid rgba(28, 127, 190, 0.28);
  background: rgba(44, 144, 214, 0.08);
  color: #0b2747;
  font-size: 0.9rem;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
}
.news-entry__meta i {
  color: #1c7fbe;
}

.news-entry__dot {
  opacity: 0.7;
}

.news-entry__title {
  font-size: 1.6rem;
  font-weight: 800;
  letter-spacing: 0.01em;
  color: #0b2747;
}

.news-entry__date-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.35rem 0.7rem;
  border-radius: 12px;
  background: rgba(44, 144, 214, 0.1);
  color: #0b2747;
  font-weight: 700;
  letter-spacing: 0.02em;
}
.news-entry__date-chip i {
  color: #2c90d6;
}

.news-entry__meta-chip--accent {
  background: linear-gradient(120deg, rgba(44, 144, 214, 0.18), rgba(28, 127, 190, 0.22));
  border-color: rgba(44, 144, 214, 0.65);
  color: #0b2747;
}

.news-entry__preview {
  font-size: 1.05rem;
  color: #1f2937;
  line-height: 1.7;
  text-shadow: none;
  border-top: 1px solid rgba(44, 144, 214, 0.12);
  padding-top: 0.65rem;
}

body .news-accordion.ui-accordion .ui-accordion-content {
  border-radius: 18px;
  border: 1px solid rgba(44, 144, 214, 0.22);
  background: linear-gradient(160deg, rgba(255, 255, 255, 0.98), rgba(241, 248, 255, 0.98));
  color: #0f172a;
  padding: 1.6rem;
  box-shadow: 0 20px 48px rgba(0, 0, 0, 0.18);
  position: relative;
}

.news-entry__content {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  line-height: 1.7;
  color: #0f172a;
}
.news-entry__content:before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(160% 140% at 20% 10%, rgba(44, 144, 214, 0.08), transparent 50%);
  pointer-events: none;
}
.news-entry__content > * {
  position: relative;
  z-index: 1;
}
.news-entry__content p {
  margin: 0;
}
.news-entry__content ul {
  padding-left: 1.2rem;
}
.news-entry__content blockquote {
  padding: 0.5rem 1rem;
  border-left: 3px solid #7c3aed;
  background: rgba(124, 58, 237, 0.06);
  border-radius: 8px;
  color: #312e81;
}

.news-entry__admin-actions {
  display: flex;
  justify-content: flex-end;
  gap: 0.75rem;
  padding-top: 0.5rem;
}
.news-entry__admin-actions .p-button-text {
  color: #0f172a;
  font-weight: 700;
}

.news-toolbar {
  display: flex;
  justify-content: flex-end;
}
.news-toolbar .p-button {
  background: linear-gradient(120deg, #2c90d6, #1c7fbe);
  border: 1px solid #1c7fbe;
  color: #fff;
  font-weight: 700;
  border-radius: 999px;
  padding: 0.7rem 1.6rem;
  box-shadow: 0 10px 28px rgba(28, 127, 190, 0.35);
  letter-spacing: 0.01em;
}
.news-toolbar .p-button:hover, .news-toolbar .p-button:focus {
  background: linear-gradient(120deg, #319ce6, #2489ce);
  box-shadow: 0 12px 30px rgba(28, 127, 190, 0.4);
}
.news-toolbar .p-button .pi {
  font-size: 1rem;
}

.news-dialog.ui-dialog {
  width: 80vw !important;
  height: 80vh !important;
  max-width: 80vw;
  max-height: 80vh;
  min-width: 80vw;
  min-height: 80vh;
  display: flex;
  flex-direction: column;
}

.news-dialog.ui-dialog .ui-dialog-titlebar {
  padding: 1rem 1.35rem;
}

.news-dialog .ui-dialog-content {
  background: var(--app-surface, #fff);
  backdrop-filter: none;
  padding: 1.5rem;
  border: 1px solid rgba(148, 163, 184, 0.35);
  background: linear-gradient(180deg, #f8fafc, #eef2ff);
  box-shadow: 0 24px 50px rgba(15, 23, 42, 0.22);
  flex: 1 1 auto;
  min-height: 0;
}

.news-dialog__form-wrapper,
.news-dialog__form {
  height: 100%;
}

.news-dialog__form {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.news-dialog__field {
  margin-bottom: 0;
}

.news-dialog__grid {
  column-gap: 1rem;
  margin: 0;
}

.news-dialog__switch {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  justify-content: space-between;
  padding: 0.85rem 1rem;
  border-radius: 14px;
  border: 1px solid rgba(148, 163, 184, 0.45);
  background: rgba(255, 255, 255, 0.75);
  margin: 0;
}

.news-dialog__switch-label {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  color: #0f172a;
  font-weight: 700;
  letter-spacing: 0.02em;
}
.news-dialog__switch-label i {
  color: #6366f1;
}

.news-dialog__label {
  font-weight: 700;
  color: #1e293b;
  letter-spacing: 0.02em;
  margin-bottom: 0.45rem;
}

.news-dialog__editor-field {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.news-dialog__editor {
  flex: 1 1 auto;
  width: 100%;
}

.news-dialog__editor .ql-container {
  min-height: 0;
  height: calc(100% - 44px);
}

.news-dialog__editor .ql-editor {
  min-height: 240px;
  height: 100%;
  border-radius: 0 0 12px 12px;
  border: 1px solid rgba(15, 23, 42, 0.1);
  box-shadow: inset 0 1px 2px rgba(15, 23, 42, 0.06);
}

.news-dialog__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.85rem;
  margin-top: auto;
  padding-top: 0.5rem;
}

body.theme-dark .news-dialog .ui-dialog-content {
  border-color: rgba(148, 163, 184, 0.24);
  background: linear-gradient(180deg, rgba(15, 23, 42, 0.97), rgba(30, 41, 59, 0.94));
  box-shadow: 0 26px 54px rgba(0, 0, 0, 0.42);
}
body.theme-dark .news-dialog__label,
body.theme-dark .news-dialog__switch-label {
  color: #e2e8f0;
}
body.theme-dark .news-dialog__switch {
  border-color: rgba(148, 163, 184, 0.3);
  background: rgba(30, 41, 59, 0.75);
}
body.theme-dark .news-dialog__switch-label i {
  color: #a78bfa;
}
body.theme-dark .news-dialog__editor .ql-toolbar,
body.theme-dark .news-dialog__editor .ql-container,
body.theme-dark .news-dialog__editor .ql-editor {
  background: #0f172a;
  color: #e2e8f0;
  border-color: rgba(148, 163, 184, 0.28);
}

@media (max-width: 768px) {
  body .news-accordion.ui-accordion .ui-accordion-header a {
    padding: 1rem 1.05rem;
  }

  .news-entry__title {
    font-size: 1.1rem;
  }

  .news-dialog__actions {
    justify-content: center;
  }
}
.account-page {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.account-hero {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 1rem;
  align-items: center;
  padding: 1.5rem;
  border-radius: 1.25rem;
  background: linear-gradient(135deg, #0b3c72, #0f7cbf);
  color: #f4f7fb;
  box-shadow: 0 18px 45px rgba(0, 0, 0, 0.18);
}

.account-hero__text {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.account-eyebrow {
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-size: 0.75rem;
  color: #9fd6ff;
  font-weight: 700;
}

.account-title {
  margin: 0;
  font-size: 1.6rem;
  font-weight: 800;
  color: #ffffff;
}

.account-subtitle {
  margin: 0;
  color: rgba(244, 247, 251, 0.9);
}

.account-hero__meta {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 0.75rem;
}

.meta-item {
  display: flex;
  gap: 0.75rem;
  padding: 0.85rem 1rem;
  border-radius: 0.85rem;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.15);
}

.meta-item i {
  font-size: 1.25rem;
  color: #9fd6ff;
}

.meta-label {
  display: block;
  font-size: 0.8rem;
  color: rgba(244, 247, 251, 0.85);
}

.account-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 1.25rem;
}

.account-card {
  padding: 1.25rem;
  border-radius: 1.25rem;
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid rgba(12, 52, 88, 0.08);
  box-shadow: 0 16px 30px rgba(0, 0, 0, 0.08);
}

.card-header {
  display: flex;
  gap: 1rem;
  align-items: center;
  margin-bottom: 1rem;
}

.card-title {
  margin: 0;
  font-size: 1.25rem;
  color: #0b3c72;
}

.card-subtitle {
  margin: 0.2rem 0 0;
  color: #5a7184;
}

.profile-avatar {
  width: 56px;
  height: 56px;
  border-radius: 16px;
  display: grid;
  place-items: center;
  background: linear-gradient(135deg, #e3eef7, #d8e8f7);
  color: #0b3c72;
  font-size: 1.4rem;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7);
}

.profile-avatar--accent {
  background: linear-gradient(135deg, #0f7cbf, #4ed1c5);
  color: #ffffff;
}

.profile-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 0.85rem;
}

.profile-field {
  padding: 0.85rem 1rem;
  border-radius: 0.85rem;
  background: #f7fbff;
  border: 1px solid rgba(12, 52, 88, 0.07);
}

.field-label {
  display: block;
  font-size: 0.8rem;
  font-weight: 700;
  color: #4a5e6f;
  margin-bottom: 0.2rem;
  letter-spacing: 0.02em;
}

.field-value {
  color: #0b3c72;
  font-weight: 700;
}

.account-message {
  border-radius: 0.85rem;
}

.password-form .form-grid {
  display: grid;
  gap: 1rem;
}

.password-form .p-field {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.password-form label {
  font-weight: 700;
  color: #0b3c72;
}

.password-form .p-password input {
  width: 100%;
  padding: 0.75rem 0.85rem;
}

.password-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-top: 0.5rem;
}

.password-hint {
  color: #4a5e6f;
  font-size: 0.9rem;
}

body.theme-dark .account-hero {
  background: linear-gradient(140deg, #0f172a, #1e3a8a);
  color: #e2e8f0;
  box-shadow: 0 18px 45px rgba(0, 0, 0, 0.55);
}
body.theme-dark .account-eyebrow {
  color: #93c5fd;
}
body.theme-dark .account-title,
body.theme-dark .account-subtitle {
  color: #e2e8f0;
}
body.theme-dark .meta-item {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(148, 163, 184, 0.25);
}
body.theme-dark .meta-item i {
  color: #bae6fd;
}
body.theme-dark .meta-item .meta-label {
  color: #cbd5e1;
}
body.theme-dark .account-card {
  background: rgba(15, 23, 42, 0.92);
  border-color: rgba(148, 163, 184, 0.25);
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.55);
}
body.theme-dark .card-title {
  color: #e2e8f0;
}
body.theme-dark .card-subtitle {
  color: #cbd5e1;
}
body.theme-dark .profile-avatar {
  background: linear-gradient(135deg, rgba(59, 130, 246, 0.22), rgba(14, 165, 233, 0.18));
  color: #e2e8f0;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
}
body.theme-dark .profile-grid .field-label {
  color: #cbd5e1;
}
body.theme-dark .profile-grid .field-value {
  color: #e2e8f0;
}
body.theme-dark .profile-field {
  background: rgba(30, 41, 59, 0.9);
  border-color: rgba(148, 163, 184, 0.25);
}
body.theme-dark .password-form label,
body.theme-dark .password-hint {
  color: #cbd5e1;
}

@media (max-width: 768px) {
  .account-hero,
  .account-card {
    padding: 1rem;
  }

  .card-header {
    flex-direction: row;
    align-items: flex-start;
  }
}
.richtext-area,
.description-editor {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.richtext-area .ui-texteditor,
.description-editor .ui-texteditor {
  width: 100%;
}

.ui-texteditor {
  border-radius: 16px;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid rgba(148, 163, 184, 0.35);
  box-shadow: 0 14px 36px rgba(15, 23, 42, 0.12);
  transition: box-shadow 0.25s ease, border-color 0.2s ease, transform 0.2s ease;
}
.ui-texteditor:focus-within {
  border-color: rgba(59, 130, 246, 0.6);
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.16), 0 18px 44px rgba(15, 23, 42, 0.15);
  transform: translateY(-1px);
}
.ui-texteditor.ui-state-error {
  border-color: rgba(239, 68, 68, 0.65);
  box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.12);
}
.ui-texteditor .ql-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  padding: 0.75rem 0.85rem;
  background: linear-gradient(120deg, rgba(236, 245, 255, 0.9), rgba(255, 255, 255, 0.96));
  border: 0;
  border-bottom: 1px solid rgba(148, 163, 184, 0.35);
}
.ui-texteditor .ql-toolbar button,
.ui-texteditor .ql-toolbar .ql-picker {
  border-radius: 10px;
  color: #0f172a;
  border: 1px solid transparent;
  transition: all 0.18s ease;
}
.ui-texteditor .ql-toolbar button:hover,
.ui-texteditor .ql-toolbar .ql-picker:hover {
  background: rgba(59, 130, 246, 0.14);
  color: #0f172a;
  border-color: rgba(59, 130, 246, 0.28);
  box-shadow: 0 6px 14px rgba(59, 130, 246, 0.16);
}
.ui-texteditor .ql-toolbar button.ql-active,
.ui-texteditor .ql-toolbar .ql-picker.ql-expanded {
  background: linear-gradient(120deg, rgba(59, 130, 246, 0.16), rgba(14, 165, 233, 0.12));
  color: #0b4f85;
  border-color: rgba(59, 130, 246, 0.45);
  box-shadow: 0 10px 24px rgba(59, 130, 246, 0.2);
}
.ui-texteditor .ql-toolbar .ql-picker-label::before,
.ui-texteditor .ql-toolbar .ql-stroke {
  color: inherit;
  stroke: currentColor;
}
.ui-texteditor .ql-container {
  border: 0;
  background: rgba(255, 255, 255, 0.96);
  border-top: 1px solid rgba(148, 163, 184, 0.35);
  border-radius: 0 0 16px 16px;
}
.ui-texteditor .ql-editor {
  min-height: 220px;
  padding: 1.15rem 1.25rem;
  font-size: 1rem;
  line-height: 1.7;
  color: #0f172a;
  transition: color 0.2s ease, background-color 0.2s ease;
}
.ui-texteditor .ql-editor.ql-blank::before {
  color: #94a3b8;
  font-style: normal;
}
.ui-texteditor .ql-editor p {
  margin: 0 0 0.75rem 0;
}
.ui-texteditor .ql-editor a {
  color: #0ea5e9;
  text-decoration: underline;
}
.ui-texteditor .ql-editor a:hover {
  color: #2563eb;
}

body.theme-dark .ui-texteditor {
  background: rgba(15, 23, 42, 0.92);
  border-color: rgba(148, 163, 184, 0.32);
  box-shadow: 0 18px 44px rgba(0, 0, 0, 0.45);
}
body.theme-dark .ui-texteditor:focus-within {
  border-color: rgba(94, 234, 212, 0.7);
  box-shadow: 0 0 0 3px rgba(94, 234, 212, 0.22), 0 18px 44px rgba(0, 0, 0, 0.52);
}
body.theme-dark .ui-texteditor.ui-state-error {
  border-color: rgba(248, 113, 113, 0.75);
  box-shadow: 0 0 0 3px rgba(248, 113, 113, 0.16);
}
body.theme-dark .ui-texteditor .ql-toolbar {
  background: linear-gradient(120deg, rgba(30, 41, 59, 0.95), rgba(15, 23, 42, 0.94));
  border-bottom-color: rgba(148, 163, 184, 0.35);
}
body.theme-dark .ui-texteditor .ql-toolbar button,
body.theme-dark .ui-texteditor .ql-toolbar .ql-picker {
  color: #e2e8f0;
}
body.theme-dark .ui-texteditor .ql-toolbar button:hover,
body.theme-dark .ui-texteditor .ql-toolbar .ql-picker:hover {
  background: rgba(59, 130, 246, 0.18);
  color: #e2e8f0;
  border-color: rgba(59, 130, 246, 0.32);
  box-shadow: 0 10px 24px rgba(59, 130, 246, 0.28);
}
body.theme-dark .ui-texteditor .ql-toolbar button.ql-active,
body.theme-dark .ui-texteditor .ql-toolbar .ql-picker.ql-expanded {
  background: linear-gradient(130deg, rgba(59, 130, 246, 0.26), rgba(14, 165, 233, 0.24));
  color: #e0f2fe;
  border-color: rgba(94, 234, 212, 0.55);
  box-shadow: 0 12px 28px rgba(14, 165, 233, 0.28);
}
body.theme-dark .ui-texteditor .ql-container {
  background: rgba(15, 23, 42, 0.9);
  border-top-color: rgba(148, 163, 184, 0.35);
}
body.theme-dark .ui-texteditor .ql-editor {
  color: rgba(15, 23, 42, 0.92);
}
body.theme-dark .ui-texteditor .ql-editor.ql-blank::before {
  color: #94a3b8;
}
body.theme-dark .ui-texteditor .ql-editor a {
  color: #60a5fa;
}
body.theme-dark .ui-texteditor .ql-editor a:hover {
  color: #93c5fd;
}

.ui-tabs,
.p-tabview {
  border: none;
  background: transparent;
}
.ui-tabs.ui-tabs-top, .ui-tabs.p-tabview-top,
.p-tabview.ui-tabs-top,
.p-tabview.p-tabview-top {
  padding-top: 0.25rem;
}
.ui-tabs .ui-tabs-nav,
.ui-tabs .p-tabview-nav,
.p-tabview .ui-tabs-nav,
.p-tabview .p-tabview-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 0;
  padding: 0.25rem;
  list-style: none;
  background: rgba(52, 152, 219, 0.08);
  border-radius: 0.75rem;
  border: 1px solid rgba(52, 152, 219, 0.18);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.06);
}
.ui-tabs .ui-tabs-header,
.p-tabview .ui-tabs-header {
  margin: 0;
  padding: 0;
}
.ui-tabs .ui-tabs-nav li,
.ui-tabs .p-tabview-nav li,
.p-tabview .ui-tabs-nav li,
.p-tabview .p-tabview-nav li {
  position: relative;
  border: 1px solid rgba(52, 152, 219, 0.08);
  background: #f8fafc;
  border-radius: 0.65rem;
  transition: all 0.2s ease;
}
.ui-tabs .ui-tabs-nav li a,
.ui-tabs .p-tabview-nav li .p-tabview-nav-link,
.p-tabview .ui-tabs-nav li a,
.p-tabview .p-tabview-nav li .p-tabview-nav-link {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.65rem 1rem;
  color: #0f172a;
  font-weight: 600;
  text-decoration: none;
  border-radius: inherit;
}
.ui-tabs .ui-tabs-nav li:hover a,
.ui-tabs .ui-tabs-nav li.ui-state-hover a,
.ui-tabs .p-tabview-nav li:hover .p-tabview-nav-link,
.ui-tabs .p-tabview-nav li.p-highlight .p-tabview-nav-link:hover,
.p-tabview .ui-tabs-nav li:hover a,
.p-tabview .ui-tabs-nav li.ui-state-hover a,
.p-tabview .p-tabview-nav li:hover .p-tabview-nav-link,
.p-tabview .p-tabview-nav li.p-highlight .p-tabview-nav-link:hover {
  color: #0c5582;
  background: transparent;
}
.ui-tabs .ui-tabs-nav li::after,
.ui-tabs .p-tabview-nav li::after,
.p-tabview .ui-tabs-nav li::after,
.p-tabview .p-tabview-nav li::after {
  content: "";
  position: absolute;
  inset: 2px;
  border-radius: inherit;
  background: linear-gradient(120deg, rgba(52, 152, 219, 0.16), rgba(46, 204, 113, 0.12));
  opacity: 0;
  transition: opacity 0.2s ease;
  z-index: -1;
}
.ui-tabs .ui-tabs-nav li:hover::after,
.ui-tabs .ui-tabs-nav li.ui-state-hover::after,
.ui-tabs .p-tabview-nav li:hover::after,
.ui-tabs .p-tabview-nav li.p-highlight::after,
.p-tabview .ui-tabs-nav li:hover::after,
.p-tabview .ui-tabs-nav li.ui-state-hover::after,
.p-tabview .p-tabview-nav li:hover::after,
.p-tabview .p-tabview-nav li.p-highlight::after {
  opacity: 1;
}
.ui-tabs .ui-tabs-nav li.ui-tabs-selected,
.ui-tabs .ui-tabs-nav li.ui-state-active,
.ui-tabs .p-tabview-nav li.p-highlight,
.p-tabview .ui-tabs-nav li.ui-tabs-selected,
.p-tabview .ui-tabs-nav li.ui-state-active,
.p-tabview .p-tabview-nav li.p-highlight {
  background: #ffffff;
  border-color: rgba(52, 152, 219, 0.2);
  box-shadow: 0 12px 30px rgba(52, 152, 219, 0.18);
}
.ui-tabs .ui-tabs-nav li.ui-tabs-selected::after,
.ui-tabs .ui-tabs-nav li.ui-state-active::after,
.ui-tabs .p-tabview-nav li.p-highlight::after,
.p-tabview .ui-tabs-nav li.ui-tabs-selected::after,
.p-tabview .ui-tabs-nav li.ui-state-active::after,
.p-tabview .p-tabview-nav li.p-highlight::after {
  opacity: 1;
  background: linear-gradient(120deg, rgba(52, 152, 219, 0.3), rgba(46, 204, 113, 0.24));
}
.ui-tabs .ui-tabs-nav li.ui-tabs-selected a,
.ui-tabs .ui-tabs-nav li.ui-state-active a,
.ui-tabs .p-tabview-nav li.p-highlight .p-tabview-nav-link,
.p-tabview .ui-tabs-nav li.ui-tabs-selected a,
.p-tabview .ui-tabs-nav li.ui-state-active a,
.p-tabview .p-tabview-nav li.p-highlight .p-tabview-nav-link {
  color: #0c5582;
}
.ui-tabs .ui-tabs-nav li:focus-within,
.ui-tabs .p-tabview-nav li:focus-within,
.p-tabview .ui-tabs-nav li:focus-within,
.p-tabview .p-tabview-nav li:focus-within {
  outline: 2px solid rgba(52, 152, 219, 0.4);
  outline-offset: 2px;
  box-shadow: 0 0 0 4px rgba(52, 152, 219, 0.12);
}
.ui-tabs .ui-tabs-panels,
.ui-tabs .p-tabview-panels,
.p-tabview .ui-tabs-panels,
.p-tabview .p-tabview-panels {
  margin-top: 0.75rem;
  padding: 0;
  border: none;
  background: transparent;
}
.ui-tabs .ui-tabs-panel,
.ui-tabs .p-tabview-panel,
.p-tabview .ui-tabs-panel,
.p-tabview .p-tabview-panel {
  background: #ffffff;
  border-radius: 0.85rem;
  border: 1px solid rgba(226, 232, 240, 0.9);
  box-shadow: 0 14px 30px rgba(0, 0, 0, 0.08);
  padding: 1.5rem;
  color: #1f2937;
}

body.theme-dark .ui-tabs .ui-tabs-nav,
body.theme-dark .ui-tabs .p-tabview-nav,
body.theme-dark .p-tabview .ui-tabs-nav,
body.theme-dark .p-tabview .p-tabview-nav {
  background: rgba(15, 23, 42, 0.72);
  border-color: rgba(148, 163, 184, 0.32);
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.45);
}
body.theme-dark .ui-tabs .ui-tabs-nav li a,
body.theme-dark .ui-tabs .p-tabview-nav li .p-tabview-nav-link,
body.theme-dark .p-tabview .ui-tabs-nav li a,
body.theme-dark .p-tabview .p-tabview-nav li .p-tabview-nav-link {
  color: #e2e8f0;
}
body.theme-dark .ui-tabs .ui-tabs-nav li,
body.theme-dark .ui-tabs .p-tabview-nav li,
body.theme-dark .p-tabview .ui-tabs-nav li,
body.theme-dark .p-tabview .p-tabview-nav li {
  background: rgba(30, 41, 59, 0.9);
  border-color: rgba(148, 163, 184, 0.18);
}
body.theme-dark .ui-tabs .ui-tabs-nav li:hover a,
body.theme-dark .ui-tabs .ui-tabs-nav li.ui-state-hover a,
body.theme-dark .ui-tabs .p-tabview-nav li:hover .p-tabview-nav-link,
body.theme-dark .ui-tabs .p-tabview-nav li.p-highlight .p-tabview-nav-link:hover,
body.theme-dark .p-tabview .ui-tabs-nav li:hover a,
body.theme-dark .p-tabview .ui-tabs-nav li.ui-state-hover a,
body.theme-dark .p-tabview .p-tabview-nav li:hover .p-tabview-nav-link,
body.theme-dark .p-tabview .p-tabview-nav li.p-highlight .p-tabview-nav-link:hover {
  color: #93c5fd;
}
body.theme-dark .ui-tabs .ui-tabs-nav li::after,
body.theme-dark .ui-tabs .p-tabview-nav li::after,
body.theme-dark .p-tabview .ui-tabs-nav li::after,
body.theme-dark .p-tabview .p-tabview-nav li::after {
  background: linear-gradient(120deg, rgba(94, 234, 212, 0.18), rgba(59, 130, 246, 0.15));
}
body.theme-dark .ui-tabs .ui-tabs-nav li.ui-tabs-selected,
body.theme-dark .ui-tabs .ui-tabs-nav li.ui-state-active,
body.theme-dark .ui-tabs .p-tabview-nav li.p-highlight,
body.theme-dark .p-tabview .ui-tabs-nav li.ui-tabs-selected,
body.theme-dark .p-tabview .ui-tabs-nav li.ui-state-active,
body.theme-dark .p-tabview .p-tabview-nav li.p-highlight {
  background: #1e293b;
  border-color: rgba(59, 130, 246, 0.35);
  box-shadow: 0 14px 35px rgba(59, 130, 246, 0.35);
}
body.theme-dark .ui-tabs .ui-tabs-nav li.ui-tabs-selected::after,
body.theme-dark .ui-tabs .ui-tabs-nav li.ui-state-active::after,
body.theme-dark .ui-tabs .p-tabview-nav li.p-highlight::after,
body.theme-dark .p-tabview .ui-tabs-nav li.ui-tabs-selected::after,
body.theme-dark .p-tabview .ui-tabs-nav li.ui-state-active::after,
body.theme-dark .p-tabview .p-tabview-nav li.p-highlight::after {
  background: linear-gradient(120deg, rgba(94, 234, 212, 0.35), rgba(59, 130, 246, 0.3));
}
body.theme-dark .ui-tabs .ui-tabs-nav li.ui-tabs-selected a,
body.theme-dark .ui-tabs .ui-tabs-nav li.ui-state-active a,
body.theme-dark .ui-tabs .p-tabview-nav li.p-highlight .p-tabview-nav-link,
body.theme-dark .p-tabview .ui-tabs-nav li.ui-tabs-selected a,
body.theme-dark .p-tabview .ui-tabs-nav li.ui-state-active a,
body.theme-dark .p-tabview .p-tabview-nav li.p-highlight .p-tabview-nav-link {
  color: #e0f2fe;
}
body.theme-dark .ui-tabs .ui-tabs-panel,
body.theme-dark .ui-tabs .p-tabview-panel,
body.theme-dark .p-tabview .ui-tabs-panel,
body.theme-dark .p-tabview .p-tabview-panel {
  background: rgba(15, 23, 42, 0.85);
  border-color: rgba(148, 163, 184, 0.24);
  box-shadow: 0 18px 45px rgba(0, 0, 0, 0.48);
  color: #e2e8f0;
}

.ui-datatable {
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid rgba(15, 23, 42, 0.12);
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(6px);
}
.ui-datatable .ui-datatable-header,
.ui-datatable .ui-datatable-footer {
  background: linear-gradient(135deg, rgba(239, 246, 255, 0.95), rgba(248, 250, 252, 0.92));
  border: 0;
  padding: 0.85rem 1rem;
  color: #0f172a;
}
.ui-datatable .ui-datatable-tablewrapper {
  background: transparent;
}
.ui-datatable .ui-datatable-thead > tr > th {
  background: #f1f5f9;
  border-color: rgba(148, 163, 184, 0.34);
  color: #0f172a;
  font-weight: 600;
}
.ui-datatable .ui-datatable-thead > tr.ui-filter-row > th {
  background: #e2e8f0;
  border-color: rgba(148, 163, 184, 0.38);
}
.ui-datatable .ui-datatable-tbody > tr > td {
  background: rgba(255, 255, 255, 0.88);
  border-color: rgba(148, 163, 184, 0.24);
  color: #0f172a;
}
.ui-datatable .ui-datatable-tbody > tr:nth-child(even) > td {
  background: rgba(248, 250, 252, 0.96);
}
.ui-datatable .ui-datatable-tbody > tr.ui-state-hover > td,
.ui-datatable .ui-datatable-tbody > tr:hover > td {
  background: rgba(191, 219, 254, 0.45);
}
.ui-datatable .ui-datatable-tbody > tr.ui-state-highlight > td {
  background: rgba(59, 130, 246, 0.2);
  color: #0f172a;
}
.ui-datatable .ui-sortable-column .ui-sortable-column-icon {
  color: #334155;
}
.ui-datatable .ui-paginator {
  border: 0;
  background: transparent;
}
.ui-datatable .ui-column-filter,
.ui-datatable .ui-selectonemenu,
.ui-datatable .ui-inputfield {
  border-radius: 8px;
  border-color: rgba(148, 163, 184, 0.45);
  color: #0f172a;
  background: #fff;
}

.datatable-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.datatable-global-filter {
  width: min(100%, 22rem);
}
.datatable-global-filter .ui-inputfield {
  width: 100%;
  padding-left: 2.1rem;
}
.datatable-global-filter .pi {
  left: 0.75rem;
  top: 50%;
  transform: translateY(-50%);
  color: #64748b;
}

.datatable-column-filter {
  min-width: 10rem;
}

body.theme-dark .ui-datatable {
  border-color: rgba(148, 163, 184, 0.28);
  background: rgba(15, 23, 42, 0.9);
}
body.theme-dark .ui-datatable .ui-datatable-header,
body.theme-dark .ui-datatable .ui-datatable-footer {
  background: rgba(15, 23, 42, 0.94);
  color: #e2e8f0;
}
body.theme-dark .ui-datatable .ui-datatable-thead > tr > th {
  background: rgba(30, 41, 59, 0.95);
  color: #e2e8f0;
  border-color: rgba(148, 163, 184, 0.28);
}
body.theme-dark .ui-datatable .ui-datatable-thead > tr.ui-filter-row > th {
  background: rgba(51, 65, 85, 0.95);
  border-color: rgba(148, 163, 184, 0.3);
}
body.theme-dark .ui-datatable .ui-datatable-tbody > tr > td {
  background: rgba(15, 23, 42, 0.84);
  color: #e2e8f0;
  border-color: rgba(148, 163, 184, 0.22);
}
body.theme-dark .ui-datatable .ui-datatable-tbody > tr:nth-child(even) > td {
  background: rgba(30, 41, 59, 0.86);
}
body.theme-dark .ui-datatable .ui-datatable-tbody > tr.ui-state-hover > td,
body.theme-dark .ui-datatable .ui-datatable-tbody > tr:hover > td {
  background: rgba(51, 65, 85, 0.95);
}
body.theme-dark .ui-datatable .ui-datatable-tbody > tr.ui-state-highlight > td {
  background: rgba(59, 130, 246, 0.35);
  color: #f8fafc;
}
body.theme-dark .ui-datatable .ui-sortable-column .ui-sortable-column-icon,
body.theme-dark .ui-datatable .ui-column-title {
  color: #cbd5e1;
}
body.theme-dark .ui-datatable .ui-paginator {
  background: rgba(15, 23, 42, 0.94);
  color: #e2e8f0;
  border-color: rgba(148, 163, 184, 0.2);
}
body.theme-dark .ui-datatable .ui-column-filter,
body.theme-dark .ui-datatable .ui-selectonemenu,
body.theme-dark .ui-datatable .ui-inputfield {
  background: rgba(15, 23, 42, 0.75);
  border-color: rgba(148, 163, 184, 0.35);
  color: #e2e8f0;
}
body.theme-dark .datatable-global-filter .pi {
  color: #94a3b8;
}

body .ui-datatable .ui-datatable-data > tr > td {
  background: rgba(255, 255, 255, 0.88);
  border-color: rgba(148, 163, 184, 0.24);
  color: #0f172a;
}

body.theme-dark .ui-datatable .ui-datatable-data > tr > td {
  background: rgba(15, 23, 42, 0.84);
  border-color: rgba(148, 163, 184, 0.22);
  color: #e2e8f0;
}

body .ui-datatable thead th {
  background: #f1f5f9;
  border-color: rgba(148, 163, 184, 0.34);
  color: #0f172a;
}

body.theme-dark .ui-datatable thead th {
  background: rgba(30, 41, 59, 0.95);
  border-color: rgba(148, 163, 184, 0.28);
  color: #e2e8f0;
}

.rental-page {
  display: flex;
  flex-direction: column;
  gap: 1.35rem;
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.98), rgba(236, 247, 255, 0.95)), radial-gradient(130% 120% at 16% 10%, rgba(44, 144, 214, 0.16), transparent 44%), radial-gradient(130% 140% at 84% 8%, rgba(12, 81, 146, 0.14), transparent 38%);
  padding: 1.35rem 1.55rem;
  border-radius: 1.35rem;
  border: 1px solid rgba(28, 127, 190, 0.16);
  box-shadow: 0 20px 44px rgba(15, 23, 42, 0.14);
}

.rental-hero {
  display: grid;
  gap: 0.55rem;
  padding: 1rem 1.15rem;
  border-radius: 1rem;
  border: 1px solid rgba(28, 127, 190, 0.2);
  background: linear-gradient(120deg, rgba(231, 245, 255, 0.92), rgba(211, 236, 252, 0.95));
  box-shadow: 0 14px 28px rgba(15, 23, 42, 0.1);
}

.rental-hero__badge {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  width: fit-content;
  padding: 0.45rem 0.8rem;
  border-radius: 0.9rem;
  background: rgba(44, 144, 214, 0.15);
  color: #0b3b6e;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.04em;
}

.rental-hero__title {
  margin: 0;
  font-size: clamp(1.35rem, 2.3vw, 1.85rem);
  color: #0b2747;
}

.rental-hero__subtitle {
  margin: 0;
  color: #1f2937;
  line-height: 1.5;
}

.rental-empty-state {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.95rem 1.05rem;
  border-radius: 0.85rem;
  border: 1px solid rgba(28, 127, 190, 0.2);
  background: rgba(231, 245, 255, 0.8);
  color: #0f172a;
  font-weight: 600;
}

.rental-list {
  margin-top: 0.2rem;
}

body .rental-accordion.ui-accordion {
  border: 0;
  background: transparent;
}

body .rental-accordion.ui-accordion .ui-accordion-header {
  margin: 0 0 0.95rem;
  border-radius: 1rem;
  border: 1px solid rgba(28, 127, 190, 0.2);
  background: linear-gradient(130deg, rgba(231, 245, 255, 0.95), rgba(219, 239, 255, 0.92));
  box-shadow: 0 12px 28px rgba(15, 23, 42, 0.11);
  transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
  overflow: hidden;
}

body .rental-accordion.ui-accordion .ui-accordion-header.ui-state-hover {
  transform: translateY(-1px);
  border-color: rgba(44, 144, 214, 0.55);
  box-shadow: 0 16px 36px rgba(15, 23, 42, 0.16);
}

body .rental-accordion.ui-accordion .ui-accordion-header.ui-state-active {
  border-color: rgba(44, 144, 214, 0.8);
  box-shadow: 0 18px 42px rgba(15, 23, 42, 0.18);
}

body .rental-accordion.ui-accordion .ui-accordion-header a {
  color: #0b2747;
  padding: 1rem 1.15rem;
}

body .rental-accordion.ui-accordion .ui-accordion-content {
  border-radius: 0.9rem;
  border: 1px solid rgba(28, 127, 190, 0.18);
  background: #f8fbff;
  padding: 1rem 1.1rem 1.2rem;
  margin-bottom: 1rem;
}

.rental-entry__header {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}

.rental-entry__title {
  font-size: 1.2rem;
  font-weight: 800;
  letter-spacing: 0.01em;
}

.rental-entry__subtitle {
  color: #475569;
  font-weight: 600;
}

.rental-entry__body {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.rental-entry__text {
  color: #1f2937;
  line-height: 1.6;
}

.rental-entry__gallery {
  border-radius: 0.85rem;
  border: 1px solid rgba(28, 127, 190, 0.18);
  background: #fff;
  padding: 0.75rem;
}

.rental-entry__admin-actions {
  margin-top: 0.35rem;
  display: flex;
  justify-content: flex-end;
}

.rental-image {
  max-width: 100%;
}

.rental-dialog .ui-dialog-titlebar {
  background: linear-gradient(120deg, rgba(12, 81, 146, 0.95), rgba(44, 144, 214, 0.95));
  color: #fff;
  border: 0;
}

.rental-dialog .ui-dialog-content {
  background: linear-gradient(180deg, #fafdff 0%, #f2f8ff 100%);
}

.rental-dialog__intro {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.7rem 0.8rem;
  border-radius: 0.75rem;
  border: 1px solid rgba(28, 127, 190, 0.22);
  background: rgba(228, 243, 255, 0.85);
  color: #0b3b6e;
  margin-bottom: 0.9rem;
}

.rental-dialog__form {
  display: flex;
  flex-direction: column;
  gap: 0.95rem;
}

.rental-dialog__meta-grid {
  background: rgba(255, 255, 255, 0.75);
  border: 1px solid rgba(28, 127, 190, 0.16);
  border-radius: 0.75rem;
  padding: 0.4rem 0.65rem;
}

.rental-dialog__upload {
  border: 1px dashed rgba(12, 81, 146, 0.35);
  border-radius: 0.85rem;
  padding: 0.9rem;
  background: rgba(255, 255, 255, 0.78);
}

.rental-dialog__upload h4 {
  margin: 0 0 0.3rem;
  color: #0b2747;
}

.rental-dialog__upload-hint {
  margin: 0 0 0.7rem;
  color: #475569;
  font-size: 0.92rem;
}

.rental-dialog__table-title {
  margin: 0.4rem 0 0;
  color: #0b2747;
}

.rental-dialog__table {
  border-radius: 0.75rem;
  overflow: hidden;
}

.rental-dialog__col-preview {
  width: 120px;
}

.rental-dialog__preview-image {
  max-width: 100px;
  max-height: 70px;
  border-radius: 0.45rem;
  border: 1px solid rgba(28, 127, 190, 0.2);
}

.rental-dialog__col-visibility,
.rental-dialog__col-action {
  width: 140px;
  text-align: center;
}

.rental-dialog__actions {
  display: flex;
  gap: 0.75rem;
  justify-content: flex-end;
  margin-top: 0.3rem;
}

/* Dialog sizing + responsiveness */
.rental-dialog.ui-dialog {
  width: min(90vw, 1280px) !important;
  max-height: 90vh;
}

.rental-dialog.ui-dialog .ui-dialog-content {
  max-height: calc(90vh - 4.5rem);
  overflow-y: auto;
}

@media (max-width: 992px) {
  .rental-dialog.ui-dialog {
    width: 94vw !important;
    max-height: 88vh;
  }

  .rental-dialog.ui-dialog .ui-dialog-content {
    max-height: calc(88vh - 4.25rem);
  }
}
@media (max-width: 768px) {
  .rental-page {
    padding: 1rem;
  }

  .rental-dialog.ui-dialog {
    width: 96vw !important;
    max-height: 90vh;
  }

  .rental-dialog__actions {
    flex-direction: column;
  }
  .rental-dialog__actions .p-button {
    width: 100%;
  }
}
/* Explicit day mode tuning */
body:not(.theme-dark) .rental-page {
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.98), rgba(236, 247, 255, 0.95)), radial-gradient(130% 120% at 16% 10%, rgba(44, 144, 214, 0.16), transparent 44%), radial-gradient(130% 140% at 84% 8%, rgba(12, 81, 146, 0.14), transparent 38%);
}
body:not(.theme-dark) .rental-dialog .ui-dialog-content {
  background: linear-gradient(180deg, #fafdff 0%, #f2f8ff 100%);
}

/* Dark mode */
body.theme-dark .rental-page {
  background: linear-gradient(145deg, rgba(14, 23, 35, 0.95), rgba(22, 37, 56, 0.95));
  border-color: rgba(96, 165, 250, 0.22);
  box-shadow: 0 22px 50px rgba(0, 0, 0, 0.45);
}
body.theme-dark .rental-hero {
  background: linear-gradient(120deg, rgba(20, 35, 52, 0.9), rgba(27, 45, 66, 0.92));
  border-color: rgba(96, 165, 250, 0.28);
}
body.theme-dark .rental-hero__badge {
  background: rgba(56, 189, 248, 0.2);
  color: #dbeafe;
}
body.theme-dark .rental-hero__title,
body.theme-dark .rental-entry__title,
body.theme-dark .rental-dialog__table-title,
body.theme-dark .rental-dialog__upload h4 {
  color: #e5edf7;
}
body.theme-dark .rental-hero__subtitle,
body.theme-dark .rental-entry__text,
body.theme-dark .rental-entry__subtitle,
body.theme-dark .rental-dialog__upload-hint {
  color: #c7d2e2;
}
body.theme-dark .rental-empty-state,
body.theme-dark .rental-entry__gallery,
body.theme-dark .rental-dialog__meta-grid,
body.theme-dark .rental-dialog__upload,
body.theme-dark .rental-dialog__intro {
  background: rgba(22, 36, 54, 0.82);
  border-color: rgba(96, 165, 250, 0.28);
  color: #d9e5f4;
}
body.theme-dark .rental-accordion.ui-accordion .ui-accordion-header {
  background: linear-gradient(120deg, rgba(28, 45, 65, 0.95), rgba(21, 34, 50, 0.92));
  border-color: rgba(96, 165, 250, 0.3);
  box-shadow: 0 14px 30px rgba(0, 0, 0, 0.35);
}
body.theme-dark .rental-accordion.ui-accordion .ui-accordion-header a {
  color: #dbeafe;
}
body.theme-dark .rental-accordion.ui-accordion .ui-accordion-content {
  background: rgba(20, 32, 47, 0.94);
  border-color: rgba(96, 165, 250, 0.28);
}
body.theme-dark .rental-dialog .ui-dialog-titlebar {
  background: linear-gradient(120deg, rgba(30, 58, 92, 0.96), rgba(36, 96, 158, 0.96));
}
body.theme-dark .rental-dialog .ui-dialog-content {
  background: linear-gradient(180deg, rgba(14, 23, 35, 0.98), rgba(18, 31, 46, 0.98));
}

.rental-dialog__col-order {
  width: 110px;
  text-align: center;
}

/* Refined accordion typography + layout */
.rental-page {
  gap: 1.6rem;
}

.rental-hero__title {
  font-size: clamp(1.55rem, 2.5vw, 2.1rem);
  line-height: 1.2;
}

.rental-hero__subtitle {
  font-size: 1.03rem;
  line-height: 1.65;
}

.rental-entry__title {
  font-size: clamp(1.2rem, 2vw, 1.5rem);
  line-height: 1.3;
}

.rental-entry__subtitle {
  font-size: 0.98rem;
}

body .rental-accordion.ui-accordion .ui-accordion-header {
  margin: 0 0 0.75rem;
  border-radius: 1.1rem;
}

body .rental-accordion.ui-accordion .ui-accordion-header a {
  padding: 1.05rem 1.25rem;
}

body .rental-accordion.ui-accordion .ui-accordion-content {
  padding: 1.15rem 1.2rem 1.2rem;
  border-radius: 1rem;
}

.rental-entry__layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(500px, 0.45%);
  gap: 1.15rem;
  align-items: start;
}

.rental-entry__content {
  min-width: 0;
}

.rental-entry__text {
  font-size: 1.03rem;
  line-height: 1.78;
}

.rental-entry__text p:first-child {
  margin-top: 0;
}

.rental-entry__text p:last-child {
  margin-bottom: 0;
}

.rental-entry__gallery--aside {
  justify-self: end;
  width: min(100%, 720px);
  margin-top: 0;
  box-shadow: 0 10px 26px rgba(15, 23, 42, 0.14);
}

.rental-entry__meta {
  margin-top: 1rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
}

.rental-entry__meta-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.4rem 0.75rem;
  border-radius: 999px;
  font-size: 0.87rem;
  font-weight: 600;
  color: #0f3457;
  border: 1px solid rgba(28, 127, 190, 0.28);
  background: rgba(44, 144, 214, 0.09);
}

.rental-entry__meta-chip--muted {
  color: #475569;
  border-color: rgba(71, 85, 105, 0.22);
  background: rgba(148, 163, 184, 0.12);
}

.rental-entry__admin-actions {
  margin-top: 0.85rem;
}

@media (max-width: 1100px) {
  .rental-entry__layout {
    grid-template-columns: minmax(0, 1fr) minmax(520px, 45%);
    gap: 1rem;
  }

  .rental-entry__text {
    font-size: 1rem;
  }
}
@media (max-width: 880px) {
  .rental-entry__layout {
    grid-template-columns: 1fr;
  }

  .rental-entry__gallery--aside {
    justify-self: stretch;
    width: 100%;
    order: -1;
  }
}
@media (max-width: 640px) {
  body .rental-accordion.ui-accordion .ui-accordion-header a {
    padding: 0.95rem 1rem;
  }

  body .rental-accordion.ui-accordion .ui-accordion-content {
    padding: 0.95rem 0.95rem 1rem;
  }

  .rental-entry__text {
    font-size: 0.97rem;
    line-height: 1.68;
  }

  .rental-entry__meta-chip {
    font-size: 0.83rem;
  }
}
body.theme-dark .rental-entry__gallery--aside {
  box-shadow: 0 14px 30px rgba(0, 0, 0, 0.38);
}
body.theme-dark .rental-entry__meta-chip {
  color: #dbeafe;
  border-color: rgba(96, 165, 250, 0.32);
  background: rgba(59, 130, 246, 0.18);
}
body.theme-dark .rental-entry__meta-chip--muted {
  color: #cbd5e1;
  border-color: rgba(148, 163, 184, 0.3);
  background: rgba(71, 85, 105, 0.28);
}

.rental-entry__header--inside {
  margin-bottom: 0.8rem;
}

/*
 * PrimeFaces PickList
 *
 * Unterstützt beide Varianten:
 *
 * 1. Klasse direkt auf der PickList:
 *    <p:pickList styleClass="aif-picklist" ... />
 *
 * 2. Klasse auf einem umgebenden Container:
 *    <div class="aif-picklist">
 *        <p:pickList ... />
 *    </div>
 */
:is(.aif-picklist, .gear-bait-picklist).ui-picklist,
:is(.aif-picklist, .gear-bait-picklist) .ui-picklist {
  --picklist-surface: #ffffff;
  --picklist-surface-secondary: #f8fafc;
  --picklist-surface-hover: #f1f5f9;
  --picklist-border: #d8e0ea;
  --picklist-border-hover: #93b4e8;
  --picklist-text: #1e293b;
  --picklist-text-secondary: #64748b;
  --picklist-primary: #2563eb;
  --picklist-primary-hover: #1d4ed8;
  --picklist-primary-active: #1e40af;
  --picklist-primary-soft: rgba(37, 99, 235, 0.1);
  --picklist-primary-selected: rgba(37, 99, 235, 0.16);
  --picklist-focus: rgba(37, 99, 235, 0.24);
  --picklist-shadow:
          0 1px 2px rgba(15, 23, 42, 0.04),
          0 8px 24px rgba(15, 23, 42, 0.08);
  /*
   * Standard:
   *
   * Quelle | Transfer-Buttons | Ziel
   */
  display: grid !important;
  grid-template-columns: minmax(18rem, 1fr) 4.75rem minmax(18rem, 1fr);
  grid-template-areas: "source transfer target";
  align-items: stretch;
  gap: 1rem;
  width: 100%;
  min-width: 0;
  margin: 0;
  box-sizing: border-box;
  /*
   * Falls nur links Sortierbuttons vorhanden sind:
   *
   * Sortierung | Quelle | Transfer | Ziel
   */
  /*
   * Falls nur rechts Sortierbuttons vorhanden sind:
   *
   * Quelle | Transfer | Ziel | Sortierung
   */
  /*
   * Falls auf beiden Seiten Sortierbuttons vorhanden sind:
   *
   * Sortierung | Quelle | Transfer | Ziel | Sortierung
   */
  /*
   * PrimeFaces-Standardwerte zurücksetzen.
   */
  /*
   * Quelle und Ziel anhand der enthaltenen UL unterscheiden.
   */
  /*
   * Mittlere Transfer-Buttons.
   */
  /*
   * Optionale Sortierbuttons.
   */
  /*
   * Verhindert, dass der unsichtbare ARIA-Bereich
   * als zusätzliches Grid-Element erscheint.
   */
  /*
   * Listencontainer
   */
  /*
   * Überschrift
   *
   * PrimeFaces rendert den Filter teilweise vor der Caption.
   * Durch order wird die Caption trotzdem zuerst angezeigt.
   */
  /*
   * Filterbereich
   */
  /*
   * Eigentliche Listen
   */
  /*
   * Einträge
   */
  /*
   * Alle Button-Gruppen
   */
  /*
   * Transfer-Buttons in der Mitte optisch hervorheben.
   */
  /*
   * Eigene Darstellung der Einträge.
   */
}
:is(.aif-picklist, .gear-bait-picklist).ui-picklist:has(> .ui-picklist-source-controls):not(:has(> .ui-picklist-target-controls)
),
:is(.aif-picklist, .gear-bait-picklist) .ui-picklist:has(> .ui-picklist-source-controls):not(:has(> .ui-picklist-target-controls)
) {
  grid-template-columns: 3.5rem minmax(18rem, 1fr) 4.75rem minmax(18rem, 1fr);
  grid-template-areas: "source-controls source transfer target";
}
:is(.aif-picklist, .gear-bait-picklist).ui-picklist:has(> .ui-picklist-target-controls):not(:has(> .ui-picklist-source-controls)
),
:is(.aif-picklist, .gear-bait-picklist) .ui-picklist:has(> .ui-picklist-target-controls):not(:has(> .ui-picklist-source-controls)
) {
  grid-template-columns: minmax(18rem, 1fr) 4.75rem minmax(18rem, 1fr) 3.5rem;
  grid-template-areas: "source transfer target target-controls";
}
:is(.aif-picklist, .gear-bait-picklist).ui-picklist:has(> .ui-picklist-source-controls):has(> .ui-picklist-target-controls
),
:is(.aif-picklist, .gear-bait-picklist) .ui-picklist:has(> .ui-picklist-source-controls):has(> .ui-picklist-target-controls
) {
  grid-template-columns: 3.5rem minmax(18rem, 1fr) 4.75rem minmax(18rem, 1fr) 3.5rem;
  grid-template-areas: "source-controls source transfer target target-controls";
}
:is(.aif-picklist, .gear-bait-picklist).ui-picklist > .ui-picklist-list-wrapper,
:is(.aif-picklist, .gear-bait-picklist).ui-picklist > .ui-picklist-buttons,
:is(.aif-picklist, .gear-bait-picklist) .ui-picklist > .ui-picklist-list-wrapper,
:is(.aif-picklist, .gear-bait-picklist) .ui-picklist > .ui-picklist-buttons {
  float: none !important;
  width: auto !important;
  min-width: 0;
  margin: 0 !important;
  box-sizing: border-box;
}
:is(.aif-picklist, .gear-bait-picklist).ui-picklist > .ui-picklist-list-wrapper:has(> .ui-picklist-source),
:is(.aif-picklist, .gear-bait-picklist) .ui-picklist > .ui-picklist-list-wrapper:has(> .ui-picklist-source) {
  grid-area: source;
}
:is(.aif-picklist, .gear-bait-picklist).ui-picklist > .ui-picklist-list-wrapper:has(> .ui-picklist-target),
:is(.aif-picklist, .gear-bait-picklist) .ui-picklist > .ui-picklist-list-wrapper:has(> .ui-picklist-target) {
  grid-area: target;
}
:is(.aif-picklist, .gear-bait-picklist).ui-picklist > .ui-picklist-buttons:not(.ui-picklist-source-controls):not(.ui-picklist-target-controls
),
:is(.aif-picklist, .gear-bait-picklist) .ui-picklist > .ui-picklist-buttons:not(.ui-picklist-source-controls):not(.ui-picklist-target-controls
) {
  grid-area: transfer;
}
:is(.aif-picklist, .gear-bait-picklist).ui-picklist > .ui-picklist-source-controls,
:is(.aif-picklist, .gear-bait-picklist) .ui-picklist > .ui-picklist-source-controls {
  grid-area: source-controls;
}
:is(.aif-picklist, .gear-bait-picklist).ui-picklist > .ui-picklist-target-controls,
:is(.aif-picklist, .gear-bait-picklist) .ui-picklist > .ui-picklist-target-controls {
  grid-area: target-controls;
}
:is(.aif-picklist, .gear-bait-picklist).ui-picklist > .ui-helper-hidden-accessible,
:is(.aif-picklist, .gear-bait-picklist) .ui-picklist > .ui-helper-hidden-accessible {
  position: absolute !important;
}
:is(.aif-picklist, .gear-bait-picklist).ui-picklist > .ui-picklist-list-wrapper,
:is(.aif-picklist, .gear-bait-picklist) .ui-picklist > .ui-picklist-list-wrapper {
  display: flex;
  flex-direction: column;
  height: clamp(26rem, 56vh, 42rem);
  min-height: 26rem;
  overflow: hidden;
  border: 1px solid var(--picklist-border);
  border-radius: 0.9rem;
  background: var(--picklist-surface);
  box-shadow: var(--picklist-shadow);
  transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}
:is(.aif-picklist, .gear-bait-picklist).ui-picklist > .ui-picklist-list-wrapper:focus-within,
:is(.aif-picklist, .gear-bait-picklist) .ui-picklist > .ui-picklist-list-wrapper:focus-within {
  border-color: var(--picklist-primary);
  box-shadow: 0 0 0 3px var(--picklist-focus), var(--picklist-shadow);
}
:is(.aif-picklist, .gear-bait-picklist).ui-picklist .ui-picklist-caption,
:is(.aif-picklist, .gear-bait-picklist) .ui-picklist .ui-picklist-caption {
  order: 1;
  display: flex;
  align-items: center;
  min-height: 3.25rem;
  padding: 0.8rem 1rem;
  border: 0;
  border-bottom: 1px solid var(--picklist-border);
  border-radius: 0;
  background: linear-gradient(180deg, var(--picklist-surface-secondary) 0%, var(--picklist-surface) 100%);
  color: var(--picklist-text);
  font-size: 0.95rem;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0.01em;
  box-sizing: border-box;
}
:is(.aif-picklist, .gear-bait-picklist).ui-picklist .ui-picklist-filter-container,
:is(.aif-picklist, .gear-bait-picklist) .ui-picklist .ui-picklist-filter-container {
  order: 2;
  position: relative;
  padding: 0.75rem;
  border-bottom: 1px solid var(--picklist-border);
  background: var(--picklist-surface-secondary);
  box-sizing: border-box;
}
:is(.aif-picklist, .gear-bait-picklist).ui-picklist .ui-picklist-filter-container .ui-picklist-filter,
:is(.aif-picklist, .gear-bait-picklist) .ui-picklist .ui-picklist-filter-container .ui-picklist-filter {
  width: 100%;
  height: 2.75rem;
  padding: 0.6rem 2.7rem 0.6rem 0.85rem;
  border: 1px solid var(--picklist-border);
  border-radius: 0.65rem;
  outline: none;
  background: var(--picklist-surface);
  color: var(--picklist-text);
  font-size: 0.9rem;
  box-shadow: none;
  box-sizing: border-box;
  transition: border-color 160ms ease, box-shadow 160ms ease, background-color 160ms ease;
}
:is(.aif-picklist, .gear-bait-picklist).ui-picklist .ui-picklist-filter-container .ui-picklist-filter::placeholder,
:is(.aif-picklist, .gear-bait-picklist) .ui-picklist .ui-picklist-filter-container .ui-picklist-filter::placeholder {
  color: var(--picklist-text-secondary);
  opacity: 0.85;
}
:is(.aif-picklist, .gear-bait-picklist).ui-picklist .ui-picklist-filter-container .ui-picklist-filter:hover,
:is(.aif-picklist, .gear-bait-picklist) .ui-picklist .ui-picklist-filter-container .ui-picklist-filter:hover {
  border-color: var(--picklist-border-hover);
}
:is(.aif-picklist, .gear-bait-picklist).ui-picklist .ui-picklist-filter-container .ui-picklist-filter:focus,
:is(.aif-picklist, .gear-bait-picklist) .ui-picklist .ui-picklist-filter-container .ui-picklist-filter:focus {
  border-color: var(--picklist-primary);
  box-shadow: 0 0 0 3px var(--picklist-focus);
}
:is(.aif-picklist, .gear-bait-picklist).ui-picklist .ui-picklist-filter-container > .ui-icon-search,
:is(.aif-picklist, .gear-bait-picklist) .ui-picklist .ui-picklist-filter-container > .ui-icon-search {
  position: absolute;
  top: 50%;
  right: 1.55rem;
  margin: 0;
  transform: translateY(-50%);
  color: var(--picklist-text-secondary);
  pointer-events: none;
}
:is(.aif-picklist, .gear-bait-picklist).ui-picklist .ui-picklist-list,
:is(.aif-picklist, .gear-bait-picklist) .ui-picklist .ui-picklist-list {
  order: 3;
  flex: 1 1 auto;
  width: 100% !important;
  min-width: 0;
  min-height: 0;
  height: auto !important;
  max-height: none !important;
  margin: 0;
  padding: 0.55rem;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  border: 0;
  border-radius: 0;
  background: var(--picklist-surface);
  color: var(--picklist-text);
  box-sizing: border-box;
  scrollbar-width: thin;
  scrollbar-color: var(--picklist-border-hover) transparent;
}
:is(.aif-picklist, .gear-bait-picklist).ui-picklist .ui-picklist-list::-webkit-scrollbar,
:is(.aif-picklist, .gear-bait-picklist) .ui-picklist .ui-picklist-list::-webkit-scrollbar {
  width: 0.65rem;
}
:is(.aif-picklist, .gear-bait-picklist).ui-picklist .ui-picklist-list::-webkit-scrollbar-track,
:is(.aif-picklist, .gear-bait-picklist) .ui-picklist .ui-picklist-list::-webkit-scrollbar-track {
  background: transparent;
}
:is(.aif-picklist, .gear-bait-picklist).ui-picklist .ui-picklist-list::-webkit-scrollbar-thumb,
:is(.aif-picklist, .gear-bait-picklist) .ui-picklist .ui-picklist-list::-webkit-scrollbar-thumb {
  border: 0.18rem solid transparent;
  border-radius: 999px;
  background: var(--picklist-border-hover);
  background-clip: padding-box;
}
:is(.aif-picklist, .gear-bait-picklist).ui-picklist .ui-picklist-item,
:is(.aif-picklist, .gear-bait-picklist) .ui-picklist .ui-picklist-item {
  position: relative;
  display: flex;
  align-items: center;
  width: 100%;
  min-height: 2.9rem;
  margin: 0 0 0.35rem;
  padding: 0.7rem 0.8rem;
  border: 1px solid transparent;
  border-radius: 0.65rem;
  background: transparent;
  color: var(--picklist-text);
  font-size: 0.9rem;
  line-height: 1.35;
  cursor: pointer;
  user-select: none;
  box-sizing: border-box;
  transition: background-color 140ms ease, border-color 140ms ease, box-shadow 140ms ease, transform 100ms ease;
}
:is(.aif-picklist, .gear-bait-picklist).ui-picklist .ui-picklist-item:last-child,
:is(.aif-picklist, .gear-bait-picklist) .ui-picklist .ui-picklist-item:last-child {
  margin-bottom: 0;
}
:is(.aif-picklist, .gear-bait-picklist).ui-picklist .ui-picklist-item:hover:not(.ui-state-disabled),
:is(.aif-picklist, .gear-bait-picklist) .ui-picklist .ui-picklist-item:hover:not(.ui-state-disabled) {
  border-color: var(--picklist-border-hover);
  background: var(--picklist-primary-soft);
}
:is(.aif-picklist, .gear-bait-picklist).ui-picklist .ui-picklist-item:active:not(.ui-state-disabled),
:is(.aif-picklist, .gear-bait-picklist) .ui-picklist .ui-picklist-item:active:not(.ui-state-disabled) {
  transform: scale(0.995);
}
:is(.aif-picklist, .gear-bait-picklist).ui-picklist .ui-picklist-item.ui-state-focus,
:is(.aif-picklist, .gear-bait-picklist) .ui-picklist .ui-picklist-item.ui-state-focus {
  border-color: var(--picklist-primary);
  box-shadow: 0 0 0 3px var(--picklist-focus);
}
:is(.aif-picklist, .gear-bait-picklist).ui-picklist .ui-picklist-item.ui-state-highlight,
:is(.aif-picklist, .gear-bait-picklist) .ui-picklist .ui-picklist-item.ui-state-highlight {
  border-color: var(--picklist-primary);
  background: var(--picklist-primary-selected);
  color: var(--picklist-text);
  box-shadow: inset 3px 0 0 var(--picklist-primary);
}
:is(.aif-picklist, .gear-bait-picklist).ui-picklist .ui-picklist-item.ui-state-disabled,
:is(.aif-picklist, .gear-bait-picklist) .ui-picklist .ui-picklist-item.ui-state-disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
:is(.aif-picklist, .gear-bait-picklist).ui-picklist .ui-picklist-item table,
:is(.aif-picklist, .gear-bait-picklist) .ui-picklist .ui-picklist-item table {
  width: 100%;
  border-collapse: collapse;
}
:is(.aif-picklist, .gear-bait-picklist).ui-picklist .ui-picklist-item td,
:is(.aif-picklist, .gear-bait-picklist) .ui-picklist .ui-picklist-item td {
  padding: 0.15rem 0.35rem;
  vertical-align: middle;
}
:is(.aif-picklist, .gear-bait-picklist).ui-picklist .ui-picklist-item td:first-child,
:is(.aif-picklist, .gear-bait-picklist) .ui-picklist .ui-picklist-item td:first-child {
  padding-left: 0;
}
:is(.aif-picklist, .gear-bait-picklist).ui-picklist .ui-picklist-item td:last-child,
:is(.aif-picklist, .gear-bait-picklist) .ui-picklist .ui-picklist-item td:last-child {
  padding-right: 0;
}
:is(.aif-picklist, .gear-bait-picklist).ui-picklist > .ui-picklist-buttons,
:is(.aif-picklist, .gear-bait-picklist) .ui-picklist > .ui-picklist-buttons {
  display: flex !important;
  align-items: center;
  justify-content: center;
  min-height: 100%;
}
:is(.aif-picklist, .gear-bait-picklist).ui-picklist > .ui-picklist-buttons > .ui-picklist-buttons-cell,
:is(.aif-picklist, .gear-bait-picklist) .ui-picklist > .ui-picklist-buttons > .ui-picklist-buttons-cell {
  display: flex !important;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  gap: 0.55rem;
}
:is(.aif-picklist, .gear-bait-picklist).ui-picklist > .ui-picklist-buttons button,
:is(.aif-picklist, .gear-bait-picklist) .ui-picklist > .ui-picklist-buttons button {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 2.85rem !important;
  min-width: 2.85rem !important;
  height: 2.85rem;
  margin: 0 !important;
  padding: 0 !important;
  border: 1px solid var(--picklist-border);
  border-radius: 0.7rem;
  background: var(--picklist-surface);
  color: var(--picklist-text-secondary);
  box-shadow: 0 2px 5px rgba(15, 23, 42, 0.08);
  cursor: pointer;
  transition: border-color 140ms ease, background-color 140ms ease, color 140ms ease, box-shadow 140ms ease, transform 100ms ease;
}
:is(.aif-picklist, .gear-bait-picklist).ui-picklist > .ui-picklist-buttons button .ui-button-text,
:is(.aif-picklist, .gear-bait-picklist) .ui-picklist > .ui-picklist-buttons button .ui-button-text {
  display: none !important;
}
:is(.aif-picklist, .gear-bait-picklist).ui-picklist > .ui-picklist-buttons button .ui-button-icon-left,
:is(.aif-picklist, .gear-bait-picklist).ui-picklist > .ui-picklist-buttons button .ui-button-icon-right,
:is(.aif-picklist, .gear-bait-picklist).ui-picklist > .ui-picklist-buttons button .ui-icon,
:is(.aif-picklist, .gear-bait-picklist) .ui-picklist > .ui-picklist-buttons button .ui-button-icon-left,
:is(.aif-picklist, .gear-bait-picklist) .ui-picklist > .ui-picklist-buttons button .ui-button-icon-right,
:is(.aif-picklist, .gear-bait-picklist) .ui-picklist > .ui-picklist-buttons button .ui-icon {
  position: static !important;
  margin: 0 !important;
  transform: none !important;
  color: inherit;
  font-size: 1rem;
}
:is(.aif-picklist, .gear-bait-picklist).ui-picklist > .ui-picklist-buttons button:hover:not(.ui-state-disabled),
:is(.aif-picklist, .gear-bait-picklist) .ui-picklist > .ui-picklist-buttons button:hover:not(.ui-state-disabled) {
  border-color: var(--picklist-primary);
  background: var(--picklist-primary-soft);
  color: var(--picklist-primary);
  box-shadow: 0 0 0 3px var(--picklist-focus), 0 4px 10px rgba(15, 23, 42, 0.1);
}
:is(.aif-picklist, .gear-bait-picklist).ui-picklist > .ui-picklist-buttons button:active:not(.ui-state-disabled),
:is(.aif-picklist, .gear-bait-picklist) .ui-picklist > .ui-picklist-buttons button:active:not(.ui-state-disabled) {
  transform: translateY(1px);
  box-shadow: none;
}
:is(.aif-picklist, .gear-bait-picklist).ui-picklist > .ui-picklist-buttons button:focus-visible,
:is(.aif-picklist, .gear-bait-picklist) .ui-picklist > .ui-picklist-buttons button:focus-visible {
  outline: none;
  border-color: var(--picklist-primary);
  box-shadow: 0 0 0 3px var(--picklist-focus);
}
:is(.aif-picklist, .gear-bait-picklist).ui-picklist > .ui-picklist-buttons button.ui-state-disabled, :is(.aif-picklist, .gear-bait-picklist).ui-picklist > .ui-picklist-buttons button:disabled,
:is(.aif-picklist, .gear-bait-picklist) .ui-picklist > .ui-picklist-buttons button.ui-state-disabled,
:is(.aif-picklist, .gear-bait-picklist) .ui-picklist > .ui-picklist-buttons button:disabled {
  opacity: 0.42;
  cursor: not-allowed;
  box-shadow: none;
}
:is(.aif-picklist, .gear-bait-picklist).ui-picklist > .ui-picklist-buttons:not(.ui-picklist-source-controls):not(.ui-picklist-target-controls
) button,
:is(.aif-picklist, .gear-bait-picklist) .ui-picklist > .ui-picklist-buttons:not(.ui-picklist-source-controls):not(.ui-picklist-target-controls
) button {
  border-color: var(--picklist-primary);
  background: var(--picklist-primary);
  color: #ffffff;
  box-shadow: 0 5px 12px rgba(37, 99, 235, 0.24);
}
:is(.aif-picklist, .gear-bait-picklist).ui-picklist > .ui-picklist-buttons:not(.ui-picklist-source-controls):not(.ui-picklist-target-controls
) button:hover:not(.ui-state-disabled),
:is(.aif-picklist, .gear-bait-picklist) .ui-picklist > .ui-picklist-buttons:not(.ui-picklist-source-controls):not(.ui-picklist-target-controls
) button:hover:not(.ui-state-disabled) {
  border-color: var(--picklist-primary-hover);
  background: var(--picklist-primary-hover);
  color: #ffffff;
  box-shadow: 0 0 0 3px var(--picklist-focus), 0 7px 16px rgba(37, 99, 235, 0.28);
}
:is(.aif-picklist, .gear-bait-picklist).ui-picklist > .ui-picklist-buttons:not(.ui-picklist-source-controls):not(.ui-picklist-target-controls
) button:active:not(.ui-state-disabled),
:is(.aif-picklist, .gear-bait-picklist) .ui-picklist > .ui-picklist-buttons:not(.ui-picklist-source-controls):not(.ui-picklist-target-controls
) button:active:not(.ui-state-disabled) {
  border-color: var(--picklist-primary-active);
  background: var(--picklist-primary-active);
}
:is(.aif-picklist, .gear-bait-picklist).ui-picklist .reflink-picklist-item,
:is(.aif-picklist, .gear-bait-picklist) .ui-picklist .reflink-picklist-item {
  display: flex;
  align-items: center;
  width: 100%;
  min-width: 0;
  gap: 0.65rem;
}
:is(.aif-picklist, .gear-bait-picklist).ui-picklist .reflink-picklist-item i,
:is(.aif-picklist, .gear-bait-picklist) .ui-picklist .reflink-picklist-item i {
  flex: 0 0 auto;
  color: var(--picklist-primary);
  font-size: 1rem;
}
:is(.aif-picklist, .gear-bait-picklist).ui-picklist .reflink-picklist-item span,
:is(.aif-picklist, .gear-bait-picklist) .ui-picklist .reflink-picklist-item span {
  min-width: 0;
  overflow: hidden;
  color: var(--picklist-text);
  font-weight: 500;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/*
 * Responsive Darstellung
 *
 * Quelle
 * optionale Sortierbuttons
 * Transferbuttons
 * Ziel
 * optionale Sortierbuttons
 */
@media screen and (max-width: 900px) {
  :is(.aif-picklist, .gear-bait-picklist).ui-picklist,
  :is(.aif-picklist, .gear-bait-picklist) .ui-picklist {
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-areas: "source" "transfer" "target";
    gap: 0.8rem;
  }
  :is(.aif-picklist, .gear-bait-picklist).ui-picklist:has(> .ui-picklist-source-controls):not(:has(> .ui-picklist-target-controls)
  ),
  :is(.aif-picklist, .gear-bait-picklist) .ui-picklist:has(> .ui-picklist-source-controls):not(:has(> .ui-picklist-target-controls)
  ) {
    grid-template-areas: "source" "source-controls" "transfer" "target";
  }
  :is(.aif-picklist, .gear-bait-picklist).ui-picklist:has(> .ui-picklist-target-controls):not(:has(> .ui-picklist-source-controls)
  ),
  :is(.aif-picklist, .gear-bait-picklist) .ui-picklist:has(> .ui-picklist-target-controls):not(:has(> .ui-picklist-source-controls)
  ) {
    grid-template-areas: "source" "transfer" "target" "target-controls";
  }
  :is(.aif-picklist, .gear-bait-picklist).ui-picklist:has(> .ui-picklist-source-controls):has(> .ui-picklist-target-controls
  ),
  :is(.aif-picklist, .gear-bait-picklist) .ui-picklist:has(> .ui-picklist-source-controls):has(> .ui-picklist-target-controls
  ) {
    grid-template-areas: "source" "source-controls" "transfer" "target" "target-controls";
  }
  :is(.aif-picklist, .gear-bait-picklist).ui-picklist > .ui-picklist-list-wrapper,
  :is(.aif-picklist, .gear-bait-picklist) .ui-picklist > .ui-picklist-list-wrapper {
    height: clamp(20rem, 43vh, 30rem);
    min-height: 20rem;
  }
  :is(.aif-picklist, .gear-bait-picklist).ui-picklist > .ui-picklist-buttons,
  :is(.aif-picklist, .gear-bait-picklist) .ui-picklist > .ui-picklist-buttons {
    min-height: auto;
    padding: 0.15rem 0;
  }
  :is(.aif-picklist, .gear-bait-picklist).ui-picklist > .ui-picklist-buttons > .ui-picklist-buttons-cell,
  :is(.aif-picklist, .gear-bait-picklist) .ui-picklist > .ui-picklist-buttons > .ui-picklist-buttons-cell {
    flex-direction: row;
    flex-wrap: wrap;
    width: auto;
  }
  :is(.aif-picklist, .gear-bait-picklist).ui-picklist > .ui-picklist-buttons:not(.ui-picklist-source-controls):not(.ui-picklist-target-controls
  ) button,
  :is(.aif-picklist, .gear-bait-picklist) .ui-picklist > .ui-picklist-buttons:not(.ui-picklist-source-controls):not(.ui-picklist-target-controls
  ) button {
    width: 3rem !important;
    min-width: 3rem !important;
    height: 3rem;
  }
}
/*
 * Sehr kleine Displays
 */
@media screen and (max-width: 520px) {
  :is(.aif-picklist, .gear-bait-picklist).ui-picklist,
  :is(.aif-picklist, .gear-bait-picklist) .ui-picklist {
    gap: 0.65rem;
  }
  :is(.aif-picklist, .gear-bait-picklist).ui-picklist > .ui-picklist-list-wrapper,
  :is(.aif-picklist, .gear-bait-picklist) .ui-picklist > .ui-picklist-list-wrapper {
    min-height: 18rem;
    height: 22rem;
    border-radius: 0.75rem;
  }
  :is(.aif-picklist, .gear-bait-picklist).ui-picklist .ui-picklist-caption,
  :is(.aif-picklist, .gear-bait-picklist) .ui-picklist .ui-picklist-caption {
    min-height: 3rem;
    padding: 0.7rem 0.8rem;
  }
  :is(.aif-picklist, .gear-bait-picklist).ui-picklist .ui-picklist-filter-container,
  :is(.aif-picklist, .gear-bait-picklist) .ui-picklist .ui-picklist-filter-container {
    padding: 0.65rem;
  }
  :is(.aif-picklist, .gear-bait-picklist).ui-picklist .ui-picklist-list,
  :is(.aif-picklist, .gear-bait-picklist) .ui-picklist .ui-picklist-list {
    padding: 0.4rem;
  }
  :is(.aif-picklist, .gear-bait-picklist).ui-picklist .ui-picklist-item,
  :is(.aif-picklist, .gear-bait-picklist) .ui-picklist .ui-picklist-item {
    min-height: 2.75rem;
    padding: 0.65rem;
  }
}
/*
 * Dark Theme
 */
body.theme-dark :is(.aif-picklist, .gear-bait-picklist).ui-picklist,
body.theme-dark :is(.aif-picklist, .gear-bait-picklist) .ui-picklist {
  --picklist-surface: #0f172a;
  --picklist-surface-secondary: #172033;
  --picklist-surface-hover: #1e293b;
  --picklist-border: rgba(148, 163, 184, 0.28);
  --picklist-border-hover: rgba(147, 197, 253, 0.55);
  --picklist-text: #e2e8f0;
  --picklist-text-secondary: #94a3b8;
  --picklist-primary: #3b82f6;
  --picklist-primary-hover: #2563eb;
  --picklist-primary-active: #1d4ed8;
  --picklist-primary-soft: rgba(59, 130, 246, 0.14);
  --picklist-primary-selected: rgba(59, 130, 246, 0.24);
  --picklist-focus: rgba(96, 165, 250, 0.25);
  --picklist-shadow:
          0 1px 2px rgba(0, 0, 0, 0.2),
          0 10px 30px rgba(0, 0, 0, 0.25);
}
body.theme-dark :is(.aif-picklist, .gear-bait-picklist).ui-picklist > .ui-picklist-buttons button,
body.theme-dark :is(.aif-picklist, .gear-bait-picklist) .ui-picklist > .ui-picklist-buttons button {
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.24);
}
body.theme-dark :is(.aif-picklist, .gear-bait-picklist).ui-picklist > .ui-picklist-buttons:not(.ui-picklist-source-controls):not(.ui-picklist-target-controls
) button,
body.theme-dark :is(.aif-picklist, .gear-bait-picklist) .ui-picklist > .ui-picklist-buttons:not(.ui-picklist-source-controls):not(.ui-picklist-target-controls
) button {
  color: #ffffff;
  box-shadow: 0 5px 14px rgba(37, 99, 235, 0.32);
}

/*
 * Animationen für Nutzer mit reduzierten Bewegungen deaktivieren.
 */
@media (prefers-reduced-motion: reduce) {
  :is(.aif-picklist, .gear-bait-picklist).ui-picklist *,
  :is(.aif-picklist, .gear-bait-picklist).ui-picklist *::before,
  :is(.aif-picklist, .gear-bait-picklist).ui-picklist *::after,
  :is(.aif-picklist, .gear-bait-picklist) .ui-picklist *,
  :is(.aif-picklist, .gear-bait-picklist) .ui-picklist *::before,
  :is(.aif-picklist, .gear-bait-picklist) .ui-picklist *::after {
    scroll-behavior: auto !important;
    transition: none !important;
  }
}
.prompt-admin {
  --prompt-surface: rgba(255, 255, 255, 0.92);
  --prompt-surface-muted: #f8fafc;
  --prompt-border: rgba(148, 163, 184, 0.32);
  --prompt-text: #0f172a;
  --prompt-text-muted: #64748b;
  --prompt-accent: #0c74b8;
  --prompt-active: linear-gradient(135deg, rgba(14, 165, 233, 0.14), rgba(37, 99, 235, 0.08));
  color: var(--prompt-text);
}
.prompt-admin__header {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.25rem;
}
.prompt-admin__header h2 {
  margin: 0.2rem 0 0.35rem;
  font-size: clamp(1.45rem, 2vw, 2rem);
}
.prompt-admin__header p {
  margin: 0;
  color: var(--prompt-text-muted);
}
.prompt-admin__eyebrow {
  color: var(--prompt-accent);
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}
.prompt-admin__workspace {
  display: grid;
  grid-template-columns: minmax(14rem, 24%) minmax(0, 76%);
  gap: 1.25rem;
  align-items: stretch;
}
.prompt-admin__navigation, .prompt-admin__editor {
  min-width: 0;
  border: 1px solid var(--prompt-border);
  border-radius: 1rem;
  background: var(--prompt-surface);
  box-shadow: 0 16px 40px rgba(15, 23, 42, 0.08);
}
.prompt-admin__navigation {
  padding: 0.75rem;
}
.prompt-admin__navigation-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.5rem 0.65rem 0.85rem;
  color: var(--prompt-text-muted);
  font-size: 0.8rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.prompt-admin__count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.75rem;
  height: 1.75rem;
  border-radius: 999px;
  background: rgba(14, 165, 233, 0.12);
  color: var(--prompt-accent);
}
.prompt-admin__list .ui-datalist-content {
  padding: 0;
  border: 0;
  background: transparent;
}
.prompt-admin__list .ui-datalist-data {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  margin: 0;
  padding: 0;
}
.prompt-admin__list .ui-datalist-item {
  margin: 0;
}
.prompt-admin__item {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  width: 100%;
  padding: 0.85rem;
  border: 1px solid transparent;
  border-radius: 0.8rem;
  color: var(--prompt-text);
  text-align: left;
  text-decoration: none;
  transition: background 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}
.prompt-admin__item:hover, .prompt-admin__item:focus-visible {
  border-color: rgba(14, 165, 233, 0.35);
  background: rgba(14, 165, 233, 0.08);
  box-shadow: 0 8px 20px rgba(14, 165, 233, 0.1);
  transform: translateX(2px);
  outline: none;
}
.prompt-admin__item--active {
  border-color: rgba(14, 165, 233, 0.48);
  background: var(--prompt-active);
  box-shadow: 0 8px 22px rgba(14, 165, 233, 0.14);
}
.prompt-admin__item-text {
  display: flex;
  flex: 1;
  flex-direction: column;
  min-width: 0;
  gap: 0.2rem;
}
.prompt-admin__item-text strong,
.prompt-admin__item-text small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.prompt-admin__item-text small {
  color: var(--prompt-text-muted);
  font-size: 0.7rem;
}
.prompt-admin__item-arrow {
  color: var(--prompt-text-muted);
  font-size: 0.75rem;
}
.prompt-admin__editor {
  display: flex;
  flex-direction: column;
  padding: clamp(1rem, 2vw, 1.5rem);
}
.prompt-admin__editor-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.25rem;
}
.prompt-admin__editor-heading h3 {
  margin: 0.2rem 0 0.4rem;
  font-size: 1.3rem;
}
.prompt-admin__editor-heading code {
  color: var(--prompt-text-muted);
  font-size: 0.78rem;
}
.prompt-admin__status {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  flex-shrink: 0;
  padding: 0.5rem 0.7rem;
  border-radius: 999px;
  background: rgba(34, 197, 94, 0.12);
  color: #15803d;
  font-size: 0.75rem;
  font-weight: 700;
}
.prompt-admin__label {
  display: block;
  margin-bottom: 0.55rem;
  color: var(--prompt-text);
  font-weight: 700;
}
.prompt-admin__text-editor .ql-editor {
  min-height: 55vh;
  font-family: inherit;
}
.prompt-admin__help {
  display: block;
  margin-top: 0.65rem;
  color: var(--prompt-text-muted);
  line-height: 1.5;
}
.prompt-admin__actions {
  display: flex;
  justify-content: flex-end;
  margin-top: 1.25rem;
  padding-top: 1rem;
  border-top: 1px solid var(--prompt-border);
}
.prompt-admin__save-button {
  min-width: 12rem;
}
.prompt-admin__empty {
  display: grid;
  min-height: 55vh;
  place-content: center;
  text-align: center;
  color: var(--prompt-text-muted);
}
.prompt-admin__empty > i {
  margin-bottom: 0.75rem;
  color: var(--prompt-accent);
  font-size: 2.5rem;
}
.prompt-admin__empty h3,
.prompt-admin__empty p {
  margin: 0.25rem;
}

body.theme-dark .prompt-admin {
  --prompt-surface: rgba(15, 23, 42, 0.88);
  --prompt-surface-muted: rgba(30, 41, 59, 0.92);
  --prompt-border: rgba(148, 163, 184, 0.28);
  --prompt-text: #e2e8f0;
  --prompt-text-muted: #94a3b8;
  --prompt-accent: #7dd3fc;
  --prompt-active: linear-gradient(135deg, rgba(14, 165, 233, 0.24), rgba(59, 130, 246, 0.16));
}
body.theme-dark .prompt-admin__navigation, body.theme-dark .prompt-admin__editor {
  box-shadow: 0 18px 46px rgba(0, 0, 0, 0.32);
}
body.theme-dark .prompt-admin__status {
  background: rgba(34, 197, 94, 0.16);
  color: #86efac;
}
body.theme-dark .prompt-admin__text-editor .ql-editor {
  background: rgba(15, 23, 42, 0.92);
  color: #e2e8f0;
}

@media (max-width: 900px) {
  .prompt-admin__workspace {
    grid-template-columns: 1fr;
  }
  .prompt-admin__list .ui-datalist-data {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr));
  }
  .prompt-admin__item:hover, .prompt-admin__item:focus-visible {
    transform: translateY(-1px);
  }
}
@media (max-width: 600px) {
  .prompt-admin__editor-heading {
    flex-direction: column;
  }
  .prompt-admin__status {
    align-self: flex-start;
  }
  .prompt-admin__actions, .prompt-admin__save-button {
    width: 100%;
  }
}
/* Cookie consent */
body .cookie-dialog.ui-dialog {
  width: min(38.75rem, calc(100vw - 2rem)) !important;
  max-width: calc(100vw - 2rem);
  overflow: hidden;
  border: 1px solid rgba(148, 163, 184, 0.26);
  border-radius: 1.25rem;
  background: #fff;
  box-shadow: 0 28px 80px rgba(15, 23, 42, 0.32), 0 8px 24px rgba(15, 23, 42, 0.16);
}

body .cookie-dialog.ui-dialog .ui-dialog-titlebar {
  padding: 1rem 1.35rem;
  border: 0;
  background: linear-gradient(135deg, #0f172a 0%, #17365f 68%, #0e7490 130%);
  color: #fff;
}

body .cookie-dialog.ui-dialog .ui-dialog-title {
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: .015em;
}

body .cookie-dialog.ui-dialog .ui-dialog-content {
  width: auto;
  min-width: 0;
  height: auto !important;
  max-height: min(78dvh, 46rem);
  padding: 0;
  overflow: auto;
  background: linear-gradient(180deg, #fff 0%, #f8fafc 100%);
  color: #1e293b;
}

.cookie-consent {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding: 1.35rem;
}

.cookie-consent__intro {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
}

.cookie-consent__icon {
  display: grid;
  place-items: center;
  flex: 0 0 3.25rem;
  width: 3.25rem;
  height: 3.25rem;
  border: 1px solid rgba(14, 116, 144, 0.2);
  border-radius: 1rem;
  background: linear-gradient(145deg, rgba(14, 165, 233, 0.16), rgba(13, 148, 136, 0.12));
  color: #0e7490;
  font-size: 1.35rem;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8);
}

.cookie-consent__eyebrow {
  display: block;
  margin-bottom: .18rem;
  color: #0e7490;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.cookie-consent__intro h2 {
  margin: 0;
  color: #0f172a;
  font-size: clamp(1.2rem, 2.2vw, 1.48rem);
  line-height: 1.25;
}

.cookie-consent__intro p {
  margin: .45rem 0 0;
  color: #64748b;
  font-size: .91rem;
  line-height: 1.52;
}

.cookie-consent__notice {
  display: flex;
  align-items: flex-start;
  gap: .6rem;
  padding: .72rem .85rem;
  border: 1px solid rgba(14, 116, 144, 0.16);
  border-radius: .8rem;
  background: rgba(14, 165, 233, 0.07);
  color: #475569;
  font-size: .82rem;
  line-height: 1.45;
}

.cookie-consent__notice > i {
  margin-top: .16rem;
  color: #0284c7;
}

.cookie-options {
  display: grid;
  gap: .62rem;
}

.cookie-option {
  display: grid;
  grid-template-columns: 2.45rem minmax(0, 1fr) auto;
  align-items: center;
  gap: .75rem;
  padding: .78rem .85rem;
  border: 1px solid #e2e8f0;
  border-radius: .9rem;
  background: rgba(255, 255, 255, 0.88);
  transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.cookie-option:hover {
  transform: translateY(-1px);
  border-color: rgba(14, 116, 144, 0.28);
  box-shadow: 0 8px 22px rgba(15, 23, 42, 0.07);
}

.cookie-option__icon {
  display: grid;
  place-items: center;
  width: 2.45rem;
  height: 2.45rem;
  border-radius: .75rem;
  background: #eef7fa;
  color: #0e7490;
}

.cookie-option__content {
  min-width: 0;
}

.cookie-option__title {
  display: block;
  margin: 0 0 .12rem;
  color: #1e293b;
  font-size: .91rem;
  font-weight: 750;
  line-height: 1.3;
  cursor: pointer;
}

.cookie-option__description {
  display: block;
  color: #64748b;
  font-size: .76rem;
  line-height: 1.38;
}

.cookie-option__control {
  display: flex;
  min-width: 5.2rem;
  flex-direction: column;
  align-items: center;
  gap: .22rem;
}

.cookie-option__status {
  color: #64748b;
  font-size: .66rem;
  font-weight: 700;
  letter-spacing: .045em;
  text-transform: uppercase;
  white-space: nowrap;
}

.cookie-option__toggle.ui-state-disabled {
  opacity: 1;
}

.cookie-option__toggle.ui-state-disabled .ui-chkbox-box {
  border-color: #0e7490;
  background: #0e7490;
  color: #fff;
}

.cookie-consent__actions {
  display: flex;
  justify-content: flex-end;
  gap: .7rem;
  padding-top: .2rem;
}

.cookie-consent__actions .ui-button {
  min-height: 2.75rem;
  margin: 0;
  border-radius: .78rem;
  font-weight: 700;
}

.cookie-consent__necessary.ui-button {
  border-color: #cbd5e1;
  color: #334155;
  background: rgba(255, 255, 255, 0.7);
}

.cookie-consent__save.ui-button {
  border-color: #0e7490;
  background: linear-gradient(135deg, #0e7490, #0284c7);
  box-shadow: 0 8px 20px rgba(14, 116, 144, 0.22);
}

.cookie-consent__save.ui-button:hover,
.cookie-consent__save.ui-button:focus {
  border-color: #0c6680;
  background: linear-gradient(135deg, #0c6680, #0369a1);
}

body.theme-dark .cookie-dialog.ui-dialog {
  border-color: rgba(148, 163, 184, 0.26);
  background: #0f172a;
  box-shadow: 0 30px 90px rgba(0, 0, 0, 0.58);
}

body.theme-dark .cookie-dialog.ui-dialog .ui-dialog-content {
  background: linear-gradient(180deg, #111c31 0%, #0f172a 100%);
  color: #e2e8f0;
}

body.theme-dark .cookie-consent__intro h2,
body.theme-dark .cookie-option__title {
  color: #f8fafc;
}

body.theme-dark .cookie-consent__intro p,
body.theme-dark .cookie-option__description,
body.theme-dark .cookie-option__status {
  color: #b8c5d6;
}

body.theme-dark .cookie-consent__icon,
body.theme-dark .cookie-option__icon {
  border-color: rgba(56, 189, 248, 0.2);
  background: rgba(56, 189, 248, 0.1);
  color: #67e8f9;
  box-shadow: none;
}

body.theme-dark .cookie-consent__eyebrow {
  color: #67e8f9;
}

body.theme-dark .cookie-consent__notice {
  border-color: rgba(56, 189, 248, 0.2);
  background: rgba(14, 165, 233, 0.09);
  color: #cbd5e1;
}

body.theme-dark .cookie-option {
  border-color: rgba(148, 163, 184, 0.2);
  background: rgba(30, 41, 59, 0.72);
}

body.theme-dark .cookie-option:hover {
  border-color: rgba(103, 232, 249, 0.34);
  box-shadow: 0 10px 26px rgba(0, 0, 0, 0.22);
}

body.theme-dark .cookie-consent__necessary.ui-button {
  border-color: rgba(148, 163, 184, 0.38);
  background: rgba(15, 23, 42, 0.45);
  color: #e2e8f0;
}

@media (max-width: 600px) {
  body .cookie-dialog.ui-dialog {
    position: fixed !important;
    inset: .5rem !important;
    display: flex;
    width: auto !important;
    max-width: none;
    height: auto !important;
    max-height: none;
    margin: 0 !important;
    flex-direction: column;
    overflow: hidden;
    border-radius: 1rem;
  }

  body .cookie-dialog.ui-dialog .ui-dialog-titlebar {
    flex: 0 0 auto;
    padding: .78rem 1rem;
  }

  body .cookie-dialog.ui-dialog .ui-dialog-content {
    flex: 1 1 auto;
    min-height: 0;
    max-height: none;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }

  .cookie-consent {
    min-width: 0;
    gap: .72rem;
    padding: .9rem .85rem 0;
  }

  .cookie-consent__intro {
    gap: .65rem;
  }

  .cookie-consent__icon {
    flex-basis: 2.7rem;
    width: 2.7rem;
    height: 2.7rem;
    border-radius: .8rem;
  }

  .cookie-consent__intro h2 {
    font-size: 1.08rem;
  }

  .cookie-consent__intro p {
    font-size: .82rem;
    line-height: 1.42;
  }

  .cookie-consent__notice {
    padding: .62rem .7rem;
    overflow-wrap: anywhere;
  }

  .cookie-option {
    grid-template-columns: 2.2rem minmax(0, 1fr);
    align-items: start;
    gap: .52rem .65rem;
    padding: .65rem;
  }

  .cookie-option__icon {
    grid-row: 1 / span 2;
    width: 2.2rem;
    height: 2.2rem;
  }

  .cookie-option__content {
    overflow-wrap: anywhere;
  }

  .cookie-option__control {
    grid-column: 2;
    min-width: 0;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    gap: .45rem;
  }

  .cookie-option__status {
    white-space: normal;
  }

  .cookie-option__toggle.ui-chkbox,
  .cookie-option__toggle .ui-chkbox-box {
    width: 1.5rem;
    height: 1.5rem;
  }

  .cookie-option__description {
    font-size: .71rem;
  }

  .cookie-consent__actions {
    position: sticky;
    z-index: 2;
    bottom: 0;
    flex-direction: column-reverse;
    gap: .55rem;
    margin: 0 -.85rem;
    padding: .75rem .85rem .85rem;
    border-top: 1px solid #e2e8f0;
    background: rgba(248, 250, 252, 0.97);
    box-shadow: 0 -10px 24px rgba(15, 23, 42, 0.08);
    backdrop-filter: blur(10px);
  }

  .cookie-consent__actions .ui-button {
    width: 100%;
  }

  body.theme-dark .cookie-consent__actions {
    border-color: rgba(148, 163, 184, 0.2);
    background: rgba(15, 23, 42, 0.96);
    box-shadow: 0 -10px 24px rgba(0, 0, 0, 0.24);
  }
}
@media (max-width: 390px) {
  .cookie-consent {
    padding-right: .7rem;
    padding-left: .7rem;
  }

  .cookie-consent__icon {
    flex-basis: 2.4rem;
    width: 2.4rem;
    height: 2.4rem;
  }

  .cookie-consent__notice {
    font-size: .75rem;
  }

  .cookie-option__icon {
    width: 2rem;
    height: 2rem;
  }

  .cookie-option__description {
    font-size: .69rem;
  }

  .cookie-consent__actions {
    margin-right: -.7rem;
    margin-left: -.7rem;
    padding-right: .7rem;
    padding-left: .7rem;
  }
}
.maintenance-page {
  min-height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  box-sizing: border-box;
  background: linear-gradient(180deg, rgba(10, 18, 32, 0.96) 0%, rgba(15, 23, 42, 0.98) 100%);
  border-radius: 14px;
}

.maintenance-wrapper {
  width: 100%;
  max-width: 1400px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 20px;
}

.maintenance-image {
  display: block;
  width: 100%;
  max-width: 1200px;
  height: auto;
  border-radius: 16px;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.45), 0 0 0 1px rgba(255, 255, 255, 0.06);
}

.maintenance-panel {
  width: 100%;
  max-width: 1200px;
  padding: 20px;
  border-radius: 14px;
  color: #d8e3f2;
  background: rgba(15, 23, 42, 0.88);
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.35);
  border: 1px solid rgba(148, 163, 184, 0.25);
  box-sizing: border-box;
}

.affiliate-label {
  display: inline-block;
  background: rgba(251, 191, 36, 0.18);
  color: #facc15;
  border: 1px solid rgba(251, 191, 36, 0.35);
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 4px 10px;
  margin-bottom: 10px;
}

.support-text {
  margin: 0 0 10px;
  line-height: 1.5;
  color: #e2e8f0;
}

.affiliate-hint {
  margin: 0 0 14px;
  color: #94a3b8;
  font-size: 13px;
}

.recommendation-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 10px;
}

.recommendation-link {
  display: block;
  text-decoration: none;
  color: #bfdbfe;
  background: rgba(30, 41, 59, 0.9);
  border: 1px solid rgba(148, 163, 184, 0.2);
  border-radius: 10px;
  padding: 12px 14px;
  transition: background-color 0.2s ease;
}
.recommendation-link:hover, .recommendation-link:focus {
  background: rgba(37, 99, 235, 0.25);
}

@media (max-width: 768px) {
  .maintenance-page {
    padding: 12px;
  }

  .maintenance-image {
    border-radius: 10px;
  }

  .maintenance-panel {
    padding: 16px;
  }
}
.regulationsPage {
  width: 100%;
  max-width: 1400px;
  margin: 0 auto;
}

.regulationsStateSelection {
  margin-bottom: 1.25rem;
}

.regulationsHeadline {
  margin: 0 0 1.25rem 0;
  text-align: left;
}
.regulationsHeadline h1 {
  margin: 0 0 0.35rem 0;
  font-size: 1.6rem;
  line-height: 1.25;
}
.regulationsHeadline p {
  margin: 0;
  opacity: 0.8;
  font-size: 0.95rem;
}

/* ============================================================
   HAUPTTABELLE
   ============================================================ */
.regulationsTable {
  width: 100%;
  margin-bottom: 1.25rem;
}
.regulationsTable > .ui-datatable-tablewrapper > table {
  width: 100%;
}
.regulationsTable > .ui-datatable-tablewrapper > table > tbody > tr > td {
  padding: 0.65rem 0.75rem 0.8rem 0.75rem;
}
.regulationsTable > .ui-datatable-tablewrapper > table > tbody > tr {
  border-bottom: 1px solid var(--surface-border);
}

/* ============================================================
   FISCHNAME
   ============================================================ */
.fishHeader {
  display: flex;
  align-items: center;
  min-height: 2rem;
  margin-bottom: 0.4rem;
  font-size: 1.05rem;
  font-weight: 600;
  text-align: left;
}
.fishHeader a {
  font-weight: 600;
  text-decoration: none;
}
.fishHeader a:hover {
  text-decoration: underline;
}

/* ============================================================
   UNTERTABELLE
   ============================================================ */
.regulationsSubTable {
  width: 100%;
}
.regulationsSubTable .ui-datatable-tablewrapper {
  overflow-x: auto;
}
.regulationsSubTable table {
  width: 100%;
  table-layout: fixed;
}
.regulationsSubTable thead > tr > th {
  padding: 0.4rem 0.5rem;
  font-size: 0.82rem;
  font-weight: 600;
  white-space: nowrap;
}
.regulationsSubTable tbody > tr > td {
  padding: 0.42rem 0.5rem;
  font-size: 0.9rem;
  line-height: 1.35;
  vertical-align: top;
}
.regulationsSubTable tbody > tr:hover {
  background: var(--surface-hover);
}

/* ============================================================
   SPALTEN
   ============================================================ */
.minLengthColumn {
  width: 7rem;
  text-align: center;
  white-space: nowrap;
}

.maxLengthColumn {
  width: 7rem;
  text-align: center;
  white-space: nowrap;
}

.seasonColumn {
  width: 14rem;
  text-align: center;
  white-space: nowrap;
}

.additionalInfoColumn {
  width: auto;
  text-align: left;
  white-space: normal;
  overflow-wrap: anywhere;
}

/* ============================================================
   DISCLAIMER
   ============================================================ */
.regulation-disclaimer {
  display: block;
  margin-top: 1.25rem;
  text-align: left;
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 900px) {
  .regulationsPage {
    max-width: 100%;
  }

  .regulationsHeadline h1 {
    font-size: 1.35rem;
  }

  .regulationsTable > .ui-datatable-tablewrapper > table > tbody > tr > td {
    padding: 0.5rem;
  }

  .regulationsSubTable table {
    min-width: 760px;
  }
  .regulationsSubTable thead > tr > th,
  .regulationsSubTable tbody > tr > td {
    padding: 0.4rem;
  }

  .minLengthColumn,
  .maxLengthColumn {
    width: 6.5rem;
  }

  .seasonColumn {
    width: 13rem;
  }

  .regulation-feedback {
    margin-top: 0.6rem;
    text-align: left;
    font-size: 0.9rem;
  }
  .regulation-feedback a {
    font-weight: 600;
  }
  .regulation-feedback i {
    margin-right: 0.25rem;
  }

  .regulation-source {
    margin-top: 0.75rem;
    text-align: left;
    font-size: 0.9rem;
  }
  .regulation-source a {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-weight: 600;
    text-decoration: none;
  }
  .regulation-source a:hover {
    text-decoration: underline;
  }
  .regulation-source i {
    font-size: 0.8rem;
  }
}
.textoverflowParent {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  padding: 5px;
}

/* Theme overrides */
body {
  --app-surface: #fff;
  --app-surface-muted: #f4f4f4;
  --app-border: rgba(15, 23, 42, 0.12);
  --app-text-primary: #1f2937;
  --app-text-secondary: #4b5563;
}

body .ui-widget-content,
body .ui-panel,
body .ui-panel-content,
body .ui-accordion .ui-accordion-content,
body .ui-tabs .ui-tabs-panel,
body .p-tabview .p-tabview-panel,
body .ui-fieldset,
body .ui-fieldset-content,
body .ui-datatable table tbody tr > td,
body .ui-selectonemenu-panel .ui-selectonemenu-list,
body .ui-datepicker,
body .ui-overlaypanel .ui-overlaypanel-content {
  background: var(--app-surface);
  border-color: var(--app-border);
  color: var(--app-text-primary);
}

body .ui-widget-content .ui-outputlabel,
body .ui-widget-content .ui-panel-title,
body .ui-widget-content .ui-datatable-empty-message,
body .ui-dialog .ui-dialog-content,
body .ui-accordion .ui-accordion-header a,
body .ui-tabs .ui-tabs-nav li a,
body .p-tabview .p-tabview-nav li .p-tabview-nav-link {
  color: var(--app-text-primary);
}

body .ui-widget-content .ui-state-disabled,
body .ui-widget-content .ui-state-disabled .ui-outputlabel,
body .ui-widget-content .ui-helper-text {
  color: var(--app-text-secondary);
}

body.theme-dark {
  color: #e2e8f0;
  --link-color: #7dd3fc;
  --link-hover-color: #bae6fd;
  --link-visited-color: #c4b5fd;
  --link-focus-outline: rgba(186, 230, 253, 0.95);
  --link-decoration-color: rgba(125, 211, 252, 0.95);
  --app-surface: #0f172a;
  --app-surface-muted: #1e293b;
  --widget-shadow: 0 2px 8px rgba(0, 0, 0, 0.16);
  --widget-shadow-hover: 0 3px 10px rgba(0, 0, 0, 0.2);
  --app-border: rgba(148, 163, 184, 0.28);
  --app-text-primary: #e2e8f0;
  --app-text-secondary: #cbd5e1;
  background: radial-gradient(circle at 20% 20%, rgba(59, 130, 246, 0.18), rgba(15, 23, 42, 0.95)) fixed, url("/static/img/pixabay/water-3664318.jpg") no-repeat center center/cover;
  background-blend-mode: overlay;
}

body.theme-dark .glass-panel,
body.theme-dark .glass {
  background: rgba(15, 23, 42, 0.85);
  border: 1px solid rgba(255, 255, 255, 0.06);
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.35);
}

body.theme-dark .app-footer {
  color: #cbd5e1;
}

body.theme-dark .footer {
  color: #e2e8f0;
}

body.theme-dark .footer__title,
body.theme-dark .footer__link:hover,
body.theme-dark .footer__link:focus {
  color: #ffffff;
}

body.theme-dark .footer__subtitle,
body.theme-dark .footer__label,
body.theme-dark .footer__version-line,
body.theme-dark .footer__copyright {
  color: rgba(255, 255, 255, 0.75);
}

body.theme-dark .footer__link {
  color: rgba(255, 255, 255, 0.8);
}

body.theme-dark .footer__link:hover,
body.theme-dark .footer__link:focus {
  background: rgba(255, 255, 255, 0.12);
}

body.theme-dark .hero-weather {
  background: rgba(15, 23, 42, 0.6);
  border-color: rgba(255, 255, 255, 0.05);
}

body.theme-dark .app-nav .menu-wrapper {
  border-radius: 1rem;
}

body.theme-dark .main-menu.ui-megamenu .ui-menuitem-link {
  border-color: transparent;
  background: transparent;
  color: #dbeafe;
  box-shadow: none;
}

body.theme-dark .main-menu.ui-megamenu .ui-menuitem-link:hover,
body.theme-dark .main-menu.ui-megamenu .ui-menuitem-link.ui-state-hover {
  border-color: rgba(125, 211, 252, 0.2);
  background: rgba(56, 189, 248, 0.08);
  color: #f8fafc;
}

body.theme-dark .main-menu.ui-megamenu .main-menu__item--active > .ui-menuitem-link,
body.theme-dark .main-menu.ui-megamenu .ui-menuitem-link.main-menu__item--active {
  border-color: rgba(94, 234, 212, 0.28);
  background: linear-gradient(135deg, rgba(13, 148, 136, 0.2), rgba(14, 165, 233, 0.14));
  color: #f8fafc;
  box-shadow: inset 3px 0 0 #2dd4bf;
}

body.theme-dark .main-menu.ui-megamenu .main-menu__item--active > .ui-menuitem-link .ui-menuitem-icon,
body.theme-dark .main-menu.ui-megamenu .ui-menuitem-link.main-menu__item--active .ui-menuitem-icon {
  background: rgba(45, 212, 191, 0.2);
  color: #99f6e4;
}

body.theme-dark .main-menu.ui-megamenu .ui-menuitem-link .ui-menuitem-text,
body.theme-dark .main-menu.ui-megamenu .ui-menuitem-link .ui-menuitem-icon {
  color: inherit;
}

body.theme-dark .menu-wrapper {
  background: transparent;
  border-radius: 1rem;
  box-shadow: none;
}

body.theme-dark .app-nav {
  border-color: rgba(148, 163, 184, 0.18);
  background: linear-gradient(135deg, rgba(15, 23, 42, 0.96), rgba(30, 41, 59, 0.92));
}

body.theme-dark .app-toolbar,
body.theme-dark .app-content,
body.theme-dark .app-footer {
  color: #e2e8f0;
}

body.theme-dark .page-hero {
  background: linear-gradient(135deg, #0b1224, #111827);
  color: #e2e8f0;
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.45);
}

body.theme-dark .page-hero h2,
body.theme-dark .page-hero p {
  color: inherit;
}

body.theme-dark .search-panel {
  background: #0b1224;
  color: #e2e8f0;
  box-shadow: 0 18px 35px rgba(0, 0, 0, 0.4);
}

body.theme-dark .search-panel__label {
  color: #cbd5e1;
}

body.theme-dark .search-panel__label i {
  color: #93c5fd;
}

body.theme-dark .smart-chips .ui-chips-container {
  background: rgba(59, 130, 246, 0.08);
  border-color: rgba(148, 163, 184, 0.2);
}

body.theme-dark .smart-chips .ui-state-focus .ui-chips-container,
body.theme-dark .smart-chips .ui-state-hover .ui-chips-container,
body.theme-dark .smart-chips .ui-chips-container:focus-within {
  background: rgba(59, 130, 246, 0.15);
  box-shadow: 0 12px 35px rgba(59, 130, 246, 0.25);
  border-color: rgba(148, 163, 184, 0.35);
}

body.theme-dark .smart-chips .ui-chips-input-token input,
body.theme-dark .search-panel__helper {
  color: #cbd5e1;
}

body.theme-dark .smart-chips .ui-chips-token {
  background: #0ea5e9;
  box-shadow: 0 10px 30px rgba(14, 165, 233, 0.25);
}

body.theme-dark .chips-input .ui-chips-container {
  background: rgba(15, 23, 42, 0.9);
  border-color: rgba(59, 130, 246, 0.35);
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.45);
}

body.theme-dark .chips-input .ui-state-focus .ui-chips-container,
body.theme-dark .chips-input .ui-state-hover .ui-chips-container,
body.theme-dark .chips-input .ui-chips-container:focus-within {
  background: rgba(15, 23, 42, 0.98);
  border-color: rgba(94, 234, 212, 0.55);
  box-shadow: 0 0 0 3px rgba(94, 234, 212, 0.25);
}

body.theme-dark .chips-input .ui-chips-input-token input {
  color: #e2e8f0;
}

body.theme-dark .chips-input .ui-chips-token {
  background: rgba(59, 130, 246, 0.2);
  color: #e0f2fe;
  border-color: rgba(59, 130, 246, 0.4);
  box-shadow: 0 8px 22px rgba(59, 130, 246, 0.35);
}

body.theme-dark .chips-input .ui-chips-token .ui-chips-token-icon {
  color: #cbd5e1;
}

body.theme-dark .suggestion-pills span {
  background: rgba(59, 130, 246, 0.18);
  color: #e0f2fe;
}

body.theme-dark .fishPreView {
  background: rgba(15, 23, 42, 0.85);
  border-color: rgba(59, 130, 246, 0.25);
  box-shadow: 0 18px 45px rgba(0, 0, 0, 0.45);
  color: #e2e8f0;
}

body.theme-dark .fish-preview-desc {
  background: rgba(15, 23, 42, 0.7);
  color: #e2e8f0;
  box-shadow: inset 0 0 0 1px rgba(59, 130, 246, 0.25);
}

body.theme-dark .fish-pretitle {
  color: #93c5fd;
}

body.theme-dark .fish-preview-subtitle,
body.theme-dark .fishDescriptionText {
  color: #cbd5e1;
}

body.theme-dark .fish-hero-media,
body.theme-dark .fish-hero-content,
body.theme-dark .fish-hero-regulation,
body.theme-dark .fish-regulation-panel {
  background: rgba(15, 23, 42, 0.85);
  border-color: rgba(148, 163, 184, 0.28);
  color: #e2e8f0;
  box-shadow: 0 18px 45px rgba(0, 0, 0, 0.45);
}

body.theme-dark .fish-description-kicker {
  color: #93c5fd;
}

body.theme-dark .fish-description-header h2 {
  color: #e0f2fe;
}

body.theme-dark .fishDescriptionText,
body.theme-dark .fish-hero-text {
  color: #e2e8f0;
}

body.theme-dark .regulation-list__item {
  border-color: rgba(148, 163, 184, 0.25);
}

body.theme-dark .regulation-chip {
  background: rgba(59, 130, 246, 0.18);
  color: #e0f2fe;
}

body.theme-dark .regulation-chip--measure {
  background: rgba(34, 197, 94, 0.18);
  color: #bbf7d0;
}

body.theme-dark .regulation-panel-subtitle,
body.theme-dark .regulation-list__state,
body.theme-dark .regulation-list__content,
body.theme-dark .regulation-section__title {
  color: #e2e8f0;
}

body.theme-dark .regulation-note {
  background: rgba(59, 130, 246, 0.15);
  color: #e2e8f0;
  border: 1px solid rgba(148, 163, 184, 0.25);
}

body.theme-dark .fish-preview-image {
  background: #0f172a;
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.35);
}

body.theme-dark .search-panel__helper,
body.theme-dark .metric-label {
  color: #cbd5e1;
}

body.theme-dark .news-page {
  background: linear-gradient(145deg, rgba(15, 23, 42, 0.94), rgba(30, 41, 59, 0.9)), radial-gradient(140% 120% at 18% 12%, rgba(59, 130, 246, 0.16), transparent 42%), radial-gradient(120% 140% at 88% 8%, rgba(14, 165, 233, 0.14), transparent 36%);
  border: 1px solid rgba(148, 163, 184, 0.22);
  box-shadow: 0 22px 48px rgba(0, 0, 0, 0.35);
  color: #e2e8f0;
}

body.theme-dark .news-empty-state {
  background: linear-gradient(120deg, rgba(15, 23, 42, 0.9), rgba(30, 41, 59, 0.88));
  border-color: rgba(148, 163, 184, 0.32);
  color: #e2e8f0;
  box-shadow: 0 14px 32px rgba(0, 0, 0, 0.3);
}
body.theme-dark .news-empty-state i {
  color: #60a5fa;
}

body.theme-dark .news-hero {
  background: linear-gradient(120deg, rgba(15, 23, 42, 0.92), rgba(30, 41, 59, 0.9));
  border-color: rgba(148, 163, 184, 0.22);
  box-shadow: 0 16px 36px rgba(0, 0, 0, 0.32);
}

body.theme-dark .news-hero__badge {
  background: linear-gradient(140deg, rgba(59, 130, 246, 0.18), rgba(14, 165, 233, 0.26));
  color: #e0f2fe;
}
body.theme-dark .news-hero__badge i {
  color: #bfdbfe;
}

body.theme-dark .news-hero__title,
body.theme-dark .news-hero__subtitle,
body.theme-dark .news-entry-title,
body.theme-dark .news-entry__title {
  color: #e5e7eb;
}

body.theme-dark .news-entry-date,
body.theme-dark .news-hero__subtitle,
body.theme-dark .news-entry__preview,
body.theme-dark .news-entry-content {
  color: #cbd5e1;
}

body.theme-dark .news-accordion .ui-accordion-header {
  background: linear-gradient(120deg, rgba(59, 130, 246, 0.12), rgba(30, 41, 59, 0.82));
  border: 1px solid rgba(148, 163, 184, 0.28);
  box-shadow: 0 18px 36px rgba(0, 0, 0, 0.32);
}

body.theme-dark .news-accordion .ui-accordion-header a,
body.theme-dark .news-tab-title {
  color: #e2e8f0;
}

body.theme-dark .news-accordion .ui-accordion-header.ui-state-hover {
  border-color: rgba(94, 234, 212, 0.65);
  background: linear-gradient(120deg, rgba(59, 130, 246, 0.16), rgba(14, 165, 233, 0.14));
  box-shadow: 0 22px 44px rgba(0, 0, 0, 0.36);
}

body.theme-dark .news-accordion .ui-accordion-header.ui-state-active {
  border-color: rgba(94, 234, 212, 0.9);
  background: linear-gradient(130deg, rgba(59, 130, 246, 0.22), rgba(15, 23, 42, 0.92));
}

body.theme-dark .news-accordion .ui-accordion-content,
body.theme-dark .news-entry__content {
  background: linear-gradient(160deg, rgba(15, 23, 42, 0.95), rgba(15, 23, 42, 0.9));
  border: 1px solid rgba(148, 163, 184, 0.26);
  box-shadow: 0 20px 48px rgba(0, 0, 0, 0.32);
  color: #e2e8f0;
}

body.theme-dark .news-entry__content:before {
  background: radial-gradient(160% 140% at 20% 10%, rgba(59, 130, 246, 0.18), transparent 50%);
}

body.theme-dark .news-entry__meta-chip {
  border-color: rgba(148, 163, 184, 0.35);
  background: rgba(59, 130, 246, 0.14);
  color: #e0f2fe;
}

body.theme-dark .news-entry__meta i {
  color: #93c5fd;
}

body.theme-dark .news-entry__date-chip {
  background: rgba(59, 130, 246, 0.16);
  color: #e0f2fe;
}

body.theme-dark .news-entry__meta-chip--accent {
  background: linear-gradient(120deg, rgba(59, 130, 246, 0.22), rgba(14, 165, 233, 0.25));
  border-color: rgba(94, 234, 212, 0.65);
  color: #e0f2fe;
}

body.theme-dark .news-entry__admin-actions .p-button-text {
  color: #e2e8f0;
}

body.theme-dark .news-toolbar .p-button {
  background: linear-gradient(120deg, #1d4ed8, #0ea5e9);
  border-color: #38bdf8;
  box-shadow: 0 12px 30px rgba(14, 165, 233, 0.35);
}

body.theme-dark .product-search-page {
  color: #e2e8f0;
}

body.theme-dark .search-hero {
  background: linear-gradient(140deg, #0f172a, #0b1224);
  color: #e2e8f0;
  border-color: rgba(148, 163, 184, 0.3);
  box-shadow: 0 22px 48px rgba(0, 0, 0, 0.4);
}
body.theme-dark .search-hero .hero-eyebrow,
body.theme-dark .search-hero .hero-subline {
  color: #cbd5e1;
}

body.theme-dark .search-panel,
body.theme-dark .results-panel {
  background: rgba(15, 23, 42, 0.9);
  border-color: rgba(148, 163, 184, 0.25);
  box-shadow: 0 18px 45px rgba(0, 0, 0, 0.4);
  color: #e2e8f0;
}

body.theme-dark .panel-eyebrow,
body.theme-dark .panel-hint,
body.theme-dark .result-label {
  color: #cbd5e1;
}

body.theme-dark .chips-field {
  background: transparent;
  box-shadow: none;
}

body.theme-dark .chips-label,
body.theme-dark .tag-panel__hint,
body.theme-dark .result-count {
  color: #e2e8f0;
}

body.theme-dark .chips-helper {
  color: #cbd5e1;
}

body.theme-dark .tag-panel {
  background: transparent;
  box-shadow: none;
}

body.theme-dark .tag-panel__cloud .ui-tagcloud li a {
  color: #e2e8f0;
  border-color: rgba(148, 163, 184, 0.32);
}

body.theme-dark .tag-panel__cloud .ui-tagcloud li a:hover,
body.theme-dark .tag-panel__cloud .ui-tagcloud li a:focus {
  background: rgba(59, 130, 246, 0.2);
  color: #e0f2fe;
  border-color: rgba(59, 130, 246, 0.45);
}

body.theme-dark .searchResultsGrid .ui-datagrid-content {
  background: transparent;
}

body.theme-dark .searchResultItem .itemWrapper {
  background: rgba(15, 23, 42, 0.85);
  border-color: rgba(59, 130, 246, 0.3);
  box-shadow: 0 20px 45px rgba(0, 0, 0, 0.4);
}

body.theme-dark .searchResultItem .itemWrapper:hover {
  box-shadow: 0 24px 55px rgba(59, 130, 246, 0.28);
}

body.theme-dark .feedback-page {
  color: #e2e8f0;
}

body.theme-dark .feedback-hero {
  background: linear-gradient(135deg, rgba(59, 130, 246, 0.18), rgba(14, 165, 233, 0.22));
  border-color: rgba(148, 163, 184, 0.3);
  box-shadow: 0 20px 45px rgba(0, 0, 0, 0.35);
}
body.theme-dark .feedback-hero h1 {
  color: #e0f2fe;
}
body.theme-dark .feedback-hero .feedback-intro {
  color: #cbd5e1;
}

body.theme-dark .feedback-badge {
  background: rgba(74, 222, 128, 0.18);
  color: #bbf7d0;
}

body.theme-dark .feedback-card {
  background: rgba(15, 23, 42, 0.85);
  border-color: rgba(148, 163, 184, 0.28) !important;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.45);
}

body.theme-dark .feedback-card .ui-panel-titlebar {
  border-color: rgba(148, 163, 184, 0.25);
  color: #e2e8f0;
}

body.theme-dark .feedback-page .ui-panel .ui-panel-titlebar {
  background: rgba(15, 23, 42, 0.9);
  color: #e2e8f0;
  border-color: rgba(148, 163, 184, 0.28);
}

body.theme-dark .feedback-page .ui-panel .ui-panel-content {
  background: rgba(15, 23, 42, 0.85);
  color: #e2e8f0;
  border-color: rgba(148, 163, 184, 0.28);
}

body.theme-dark .feedback-left label,
body.theme-dark .feedback-right label {
  color: #e2e8f0;
}

body.theme-dark .feedback-left .ui-inputtext,
body.theme-dark .feedback-right .ui-inputtextarea {
  background: rgba(15, 23, 42, 0.8);
  border-color: rgba(59, 130, 246, 0.35);
  color: #e2e8f0;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.4);
}

body.theme-dark .feedback-left .ui-inputtext:focus,
body.theme-dark .feedback-left .ui-inputtext.ui-state-focus,
body.theme-dark .feedback-right .ui-inputtextarea:focus,
body.theme-dark .feedback-right .ui-inputtextarea.ui-state-focus {
  border-color: rgba(94, 234, 212, 0.7);
  box-shadow: 0 0 0 3px rgba(94, 234, 212, 0.22);
}

body.theme-dark .feedback-actions .feedback-submit {
  box-shadow: 0 12px 32px rgba(94, 234, 212, 0.3);
}

body.theme-dark .feedback-actions .feedback-submit:hover,
body.theme-dark .feedback-actions .feedback-submit:focus {
  box-shadow: 0 16px 40px rgba(94, 234, 212, 0.32);
}

body.theme-dark .legal-page {
  background: linear-gradient(145deg, rgba(15, 23, 42, 0.94), rgba(15, 23, 42, 0.9));
}

body.theme-dark .legal-card {
  background: rgba(15, 23, 42, 0.88);
  border-color: rgba(148, 163, 184, 0.28);
  box-shadow: 0 22px 50px rgba(0, 0, 0, 0.45);
}

body.theme-dark .legal-card:before {
  background: linear-gradient(120deg, rgba(59, 130, 246, 0.18), rgba(14, 165, 233, 0.14));
}

body.theme-dark .legal-title,
body.theme-dark .legal-subtitle,
body.theme-dark .legal-content,
body.theme-dark .legal-text {
  color: #e2e8f0;
}

body.theme-dark .legal-content {
  background: rgba(15, 23, 42, 0.7);
  border-color: rgba(148, 163, 184, 0.3);
}

body.theme-dark .legal-chip {
  background: rgba(94, 234, 212, 0.2);
  color: #d1fae5;
}

body.theme-dark .legal-gradient-bar {
  background: linear-gradient(90deg, #38bdf8, #22c55e);
}

body.theme-dark .legal-dialog .p-dialog-content {
  background: linear-gradient(180deg, #0f172a 0%, #0b1224 60%, #0f172a 100%);
}

body.theme-dark .admin-page {
  color: #e2e8f0;
}

body.theme-dark .ui-tabs .ui-tabs-nav {
  background: rgba(15, 23, 42, 0.82);
  border: 1px solid rgba(148, 163, 184, 0.26);
  border-radius: 12px;
  box-shadow: 0 14px 32px rgba(0, 0, 0, 0.35);
}

body.theme-dark .ui-tabs .ui-tabs-nav li.ui-tabs-header a {
  color: #e2e8f0;
  background: rgba(59, 130, 246, 0.08);
  border: 1px solid rgba(148, 163, 184, 0.24);
  border-radius: 10px;
}

body.theme-dark .ui-tabs .ui-tabs-nav li.ui-tabs-header a:hover,
body.theme-dark .ui-tabs .ui-tabs-nav li.ui-tabs-header.ui-tabs-selected a,
body.theme-dark .ui-tabs .ui-tabs-nav li.ui-tabs-header.ui-state-active a {
  background: linear-gradient(120deg, rgba(59, 130, 246, 0.2), rgba(14, 165, 233, 0.16));
  border-color: rgba(94, 234, 212, 0.6);
  color: #e0f2fe;
  box-shadow: 0 12px 26px rgba(0, 0, 0, 0.32);
}

body.theme-dark .ui-tabs .ui-tabs-panels,
body.theme-dark .ui-tabs .ui-tabs-panel {
  background: rgba(15, 23, 42, 0.9);
  border: 1px solid rgba(148, 163, 184, 0.26);
  border-radius: 14px;
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.4);
  color: #e2e8f0;
}

body.theme-dark .admin-tabs .ui-tabs-nav {
  background: rgba(15, 23, 42, 0.8);
  border: 1px solid rgba(148, 163, 184, 0.28);
  border-radius: 12px;
  box-shadow: 0 14px 36px rgba(0, 0, 0, 0.35);
  padding: 0.4rem;
  gap: 0.35rem;
}

body.theme-dark .admin-tabs .ui-tabs-nav li a {
  color: #e2e8f0;
  background: rgba(59, 130, 246, 0.08);
  border: 1px solid rgba(148, 163, 184, 0.25);
  border-radius: 10px;
}

body.theme-dark .admin-tabs .ui-tabs-nav li a:hover,
body.theme-dark .admin-tabs .ui-tabs-nav li.ui-tabs-selected a,
body.theme-dark .admin-tabs .ui-tabs-nav li.ui-state-active a {
  background: linear-gradient(120deg, rgba(59, 130, 246, 0.2), rgba(14, 165, 233, 0.16));
  border-color: rgba(94, 234, 212, 0.65);
  color: #e0f2fe;
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.3);
}

body.theme-dark .admin-tabs .ui-tabs-panel {
  background: rgba(15, 23, 42, 0.9);
  border: 1px solid rgba(148, 163, 184, 0.28);
  border-radius: 14px;
  box-shadow: 0 18px 42px rgba(0, 0, 0, 0.4);
  color: #e2e8f0;
}

body.theme-dark .admin-page .ui-panel .ui-panel-titlebar {
  background: linear-gradient(140deg, rgba(59, 130, 246, 0.12), rgba(15, 23, 42, 0.88));
  color: #e0f2fe;
  border-color: rgba(148, 163, 184, 0.28);
}

body.theme-dark .admin-page .ui-panel .ui-panel-content {
  background: rgba(15, 23, 42, 0.85);
  color: #e2e8f0;
  border-color: rgba(148, 163, 184, 0.28);
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.35);
}

body.theme-dark .admin-page .ui-datatable .ui-datatable-thead > tr > th,
body.theme-dark .admin-page .p-datatable .p-datatable-thead > tr > th {
  background: rgba(15, 23, 42, 0.92);
  color: #e2e8f0;
  border-color: rgba(148, 163, 184, 0.32);
}

body.theme-dark .admin-page .ui-datatable .ui-datatable-tbody > tr > td,
body.theme-dark .admin-page .p-datatable .p-datatable-tbody > tr > td {
  background: rgba(15, 23, 42, 0.85);
  color: #e2e8f0;
  border-color: rgba(148, 163, 184, 0.18);
}

body.theme-dark .fish-edit-dialog .ui-dialog-titlebar {
  background: linear-gradient(120deg, rgba(59, 130, 246, 0.16), rgba(15, 23, 42, 0.9));
  color: #e0f2fe;
  border-color: rgba(148, 163, 184, 0.3);
}

body.theme-dark .fish-edit-dialog .ui-dialog-content {
  background: linear-gradient(160deg, rgba(15, 23, 42, 0.95), rgba(15, 23, 42, 0.88));
  color: #e2e8f0;
}

body.theme-dark .fish-dialog-toolbar {
  background: linear-gradient(120deg, rgba(15, 23, 42, 0.92), rgba(59, 130, 246, 0.1));
  border: 1px solid rgba(148, 163, 184, 0.28);
  box-shadow: 0 16px 42px rgba(0, 0, 0, 0.4);
}

body.theme-dark .fish-dialog-toolbar .toolbar-heading {
  color: #e0f2fe;
}

body.theme-dark .fish-dialog-toolbar .toolbar-sub,
body.theme-dark .section-subtitle,
body.theme-dark .section-meta,
body.theme-dark .section-meta__pill {
  color: #cbd5e1;
}

body.theme-dark .fish-dialog-toolbar .ui-button.ui-button-flat {
  color: #e2e8f0;
}

body.theme-dark .edit-section-card,
body.theme-dark .data-card {
  background: rgba(15, 23, 42, 0.88);
  border-color: rgba(148, 163, 184, 0.26);
  box-shadow: 0 18px 44px rgba(0, 0, 0, 0.42);
  color: #e2e8f0;
}

body.theme-dark .fishEditTabs .ui-tabs-nav li a {
  color: #e2e8f0;
  background: rgba(59, 130, 246, 0.08);
  border: 1px solid rgba(148, 163, 184, 0.25);
  border-radius: 10px;
}

body.theme-dark .fishEditTabs .ui-tabs-nav li a:hover,
body.theme-dark .fishEditTabs .ui-tabs-nav li.ui-tabs-selected a,
body.theme-dark .fishEditTabs .ui-tabs-nav li.ui-state-active a {
  background: linear-gradient(120deg, rgba(59, 130, 246, 0.22), rgba(14, 165, 233, 0.18));
  border-color: rgba(94, 234, 212, 0.65);
  color: #e0f2fe;
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.32);
}

body.theme-dark .fishEditTabs .ui-tabs-panel {
  background: rgba(15, 23, 42, 0.9);
  border: 1px solid rgba(148, 163, 184, 0.28);
  border-radius: 14px;
  box-shadow: 0 18px 42px rgba(0, 0, 0, 0.4);
}

body.theme-dark .fish-edit-dialog .compact-table.ui-datatable,
body.theme-dark .fish-edit-dialog .compact-table.p-datatable {
  border: 1px solid rgba(148, 163, 184, 0.32);
  border-radius: 12px;
  overflow: hidden;
  background: rgba(15, 23, 42, 0.82);
  box-shadow: inset 0 0 0 1px rgba(148, 163, 184, 0.1);
}

body.theme-dark .fish-edit-dialog .compact-table .ui-datatable-header,
body.theme-dark .fish-edit-dialog .compact-table .ui-datatable-footer,
body.theme-dark .fish-edit-dialog .compact-table .p-datatable-header,
body.theme-dark .fish-edit-dialog .compact-table .p-datatable-footer {
  background: rgba(15, 23, 42, 0.92);
  border-color: rgba(148, 163, 184, 0.28);
  color: #e2e8f0;
}

body.theme-dark .fish-edit-dialog .compact-table .ui-datatable-thead > tr > th,
body.theme-dark .fish-edit-dialog .compact-table .p-datatable-thead > tr > th {
  background: linear-gradient(160deg, rgba(30, 41, 59, 0.98), rgba(15, 23, 42, 0.98));
  border-color: rgba(148, 163, 184, 0.28);
  color: #e2e8f0;
}

body.theme-dark .fish-edit-dialog .compact-table .ui-datatable-tbody > tr,
body.theme-dark .fish-edit-dialog .compact-table .p-datatable-tbody > tr {
  background: rgba(15, 23, 42, 0.82);
}

body.theme-dark .fish-edit-dialog .compact-table .ui-datatable-tbody > tr:nth-child(even),
body.theme-dark .fish-edit-dialog .compact-table .p-datatable-tbody > tr:nth-child(even) {
  background: rgba(30, 41, 59, 0.66);
}

body.theme-dark .fish-edit-dialog .compact-table .ui-datatable-tbody > tr > td,
body.theme-dark .fish-edit-dialog .compact-table .p-datatable-tbody > tr > td {
  border-color: rgba(148, 163, 184, 0.2);
  color: #e2e8f0;
  background: transparent;
}

body.theme-dark .fish-edit-dialog .compact-table .ui-datatable-tbody > tr.ui-state-highlight,
body.theme-dark .fish-edit-dialog .compact-table .p-datatable-tbody > tr.ui-state-highlight,
body.theme-dark .fish-edit-dialog .compact-table .ui-datatable-tbody > tr.ui-state-hover,
body.theme-dark .fish-edit-dialog .compact-table .p-datatable-tbody > tr.ui-state-hover {
  background: rgba(59, 130, 246, 0.2);
}

body.theme-dark .fish-edit-dialog .compact-table .ui-datatable-scrollable-header,
body.theme-dark .fish-edit-dialog .compact-table .ui-datatable-scrollable-footer,
body.theme-dark .fish-edit-dialog .compact-table .ui-datatable-scrollable-body {
  background: transparent;
  border-color: rgba(148, 163, 184, 0.22);
}

body.theme-dark .fish-edit-dialog .compact-table .ui-datatable-scrollable-body {
  scrollbar-color: rgba(148, 163, 184, 0.5) rgba(15, 23, 42, 0.8);
}

body.theme-dark .fish-edit-dialog .compact-table .ui-paginator,
body.theme-dark .fish-edit-dialog .compact-table .p-paginator {
  background: rgba(15, 23, 42, 0.9);
  border-color: rgba(148, 163, 184, 0.28);
  color: #e2e8f0;
}

body.theme-dark .fish-edit-dialog .compact-table .ui-row-editor .ui-icon,
body.theme-dark .fish-edit-dialog .compact-table .ui-row-editor .ui-icon-pencil,
body.theme-dark .fish-edit-dialog .compact-table .ui-row-editor .ui-icon-check,
body.theme-dark .fish-edit-dialog .compact-table .ui-row-editor .ui-icon-close {
  color: #cbd5e1;
}

body.theme-dark .fish-edit-dialog .compact-table .ui-selectbooleanbutton {
  border-color: rgba(148, 163, 184, 0.3);
}

body.theme-dark .fish-edit-dialog .compact-table .ui-selectbooleanbutton .ui-button {
  background: rgba(15, 23, 42, 0.82);
  color: #e2e8f0;
  border-color: rgba(148, 163, 184, 0.28);
}

body.theme-dark .monck-image__galleria {
  background: rgba(15, 23, 42, 0.9);
  box-shadow: 0 18px 44px rgba(0, 0, 0, 0.42);
  color: #e2e8f0;
}

body.theme-dark .monck-image__galleria .ui-galleria-content {
  background: rgba(15, 23, 42, 0.94);
}

body.theme-dark .monck-image__galleria .ui-galleria-item-wrapper {
  background: rgba(15, 23, 42, 0.85);
}

body.theme-dark .monck-image__galleria .ui-galleria-caption {
  background: rgba(15, 23, 42, 0.88);
  color: #e2e8f0;
  box-shadow: inset 0 0 0 1px rgba(148, 163, 184, 0.28);
}

body.theme-dark .monck-image__galleria .ui-galleria-indicators {
  border-color: rgba(148, 163, 184, 0.3);
}

body.theme-dark .monck-image__galleria .ui-galleria-indicators .ui-galleria-indicator {
  background: rgba(148, 163, 184, 0.55);
}

body.theme-dark .monck-image__galleria .ui-galleria-indicators .ui-galleria-indicator.ui-galleria-indicator-active {
  background: #60a5fa;
}

body.theme-dark .fish-edit-dialog .ui-inputtext,
body.theme-dark .fish-edit-dialog .ui-textarea,
body.theme-dark .fish-edit-dialog .ui-calendar input,
body.theme-dark .fish-edit-dialog .ui-selectonemenu .ui-inputtext {
  background: rgba(15, 23, 42, 0.8);
  border: 1px solid rgba(59, 130, 246, 0.35);
  color: #e2e8f0;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.38);
}

body.theme-dark .fish-edit-dialog .ui-inputtext:focus,
body.theme-dark .fish-edit-dialog .ui-textarea:focus,
body.theme-dark .fish-edit-dialog .ui-calendar input:focus,
body.theme-dark .fish-edit-dialog .ui-selectonemenu .ui-inputtext:focus {
  border-color: rgba(94, 234, 212, 0.7);
  box-shadow: 0 0 0 3px rgba(94, 234, 212, 0.22);
}

body.theme-dark .ui-texteditor .ql-toolbar {
  background: rgba(15, 23, 42, 0.92);
  border-color: rgba(148, 163, 184, 0.26);
}

body.theme-dark .ui-texteditor .ql-container {
  background: rgba(15, 23, 42, 0.88);
  border-color: rgba(148, 163, 184, 0.26);
}

body.theme-dark .ui-texteditor .ql-container .ql-editor {
  color: #e2e8f0;
  background: rgba(15, 23, 42, 0.88);
}

body.theme-dark .licence-tooltip__trigger {
  color: #e2e8f0;
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.45);
}

body.theme-dark .licence-tooltip__trigger .pi {
  color: #93c5fd;
}

body.theme-dark .licence-tooltip__label {
  color: #e2e8f0;
}

body.theme-dark .licence-tooltip.ui-tooltip,
body.theme-dark .licence-tooltip .ui-tooltip-text {
  background: rgba(15, 23, 42, 0.95) !important;
  color: #e2e8f0 !important;
  border-color: rgba(148, 163, 184, 0.35) !important;
}

/*
 * Mobile-only layout corrections.
 * Desktop rules intentionally remain untouched; every override is capped at 768px.
 */
@media (max-width: 768px) {
  html,
  body {
    max-width: 100%;
    overflow-x: hidden;
  }

  .app-shell,
  .app-shell * {
    box-sizing: border-box;
  }

  .app-shell {
    width: 100%;
    padding: .65rem;
    gap: .75rem;
  }

  .glass-panel {
    border-radius: .9rem;
  }

  .app-hero {
    padding: .75rem;
  }

  .app-header {
    flex-direction: row;
    align-items: center;
    gap: .75rem;
  }

  .brand {
    min-width: 0;
    flex: 1 1 auto;
    flex-direction: row;
    align-items: center;
    gap: .65rem;
  }

  .brand-logo {
    flex: 0 0 2.75rem;
    width: 2.75rem;
    height: 2.75rem;
  }

  .brand-text {
    min-width: 0;
  }

  .brand-title {
    margin: 0;
    font-size: clamp(1.05rem, 5vw, 1.4rem);
    line-height: 1.15;
    overflow-wrap: anywhere;
    hyphens: auto;
  }

  .header-actions {
    flex: 0 0 auto;
  }

  .theme-toggle {
    gap: .3rem;
    padding: .45rem .55rem;
  }

  .theme-toggle__icon {
    width: 1.35rem;
    height: 1.35rem;
  }

  .hero-weather {
    padding: .55rem;
  }

  .weather-header {
    align-items: flex-start;
    flex-direction: column;
    gap: .2rem;
    margin: 0 .1rem .4rem;
  }

  .weather-header__heading {
    width: 100%;
    justify-content: space-between;
  }

  .weather-swipe-hint {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 1.75rem;
    height: 1.75rem;
    padding: 0;
    border: 1px solid rgba(125, 211, 252, 0.2);
    border-radius: 999px;
    background: rgba(56, 189, 248, 0.1);
    color: rgba(255, 255, 255, 0.8);
    font-size: .78rem;
    line-height: 1.2;
  }

  .weather-location {
    white-space: normal;
  }

  .weather-data {
    display: flex;
    grid-template-columns: none;
    gap: .5rem;
    margin: 0;
    padding: 0 .9rem .45rem 0;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scroll-snap-type: inline mandatory;
    scroll-padding-inline: 0 .9rem;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }

  .weather-data > .weather-metric {
    flex: 0 0 clamp(17.5rem, 84vw, 24rem);
    width: clamp(17.5rem, 84vw, 24rem);
    min-width: 0;
    min-height: 7.25rem;
    padding: .55rem .65rem;
    border-radius: .75rem;
    scroll-snap-align: start;
    scroll-snap-stop: always;
  }

  .weather-data > .weather-metric--warning {
    min-height: 0;
  }

  .weather-chart-row {
    grid-template-columns: minmax(5rem, 0.72fr) minmax(0, 2fr);
    gap: .35rem;
  }

  .weather-chart__graph {
    height: 82px;
  }

  .weather-metric--wind .weather-chart-row {
    grid-template-columns: minmax(5.25rem, 0.75fr) minmax(0, 2fr);
  }

  .wind-compass {
    width: 43px;
    height: 43px;
  }

  .wind-compass__needle {
    height: 16px;
  }

  .weather-metric--moon .moon-phase-value {
    justify-content: space-between;
  }

  .weather-metric--moon .sun-icon,
  .weather-metric--moon .moon-phase-visual {
    width: 72px;
    height: 72px;
  }

  .weather-metric--moon .moon-phase-label {
    font-size: .78rem;
    overflow-wrap: anywhere;
  }

  .catch-probability-card {
    gap: .45rem;
  }

  .catch-probability-visual {
    width: min(48%, 9rem);
    flex-basis: 8.5rem;
    margin-top: .65rem;
  }

  .catch-probability-summary {
    padding: .4rem .5rem;
  }

  .catch-probability-value {
    font-size: 1.35rem;
  }

  .catch-probability-caption {
    font-size: .62rem;
    line-height: 1.25;
  }

  .catch-fish-school {
    gap: .18rem;
  }

  .app-nav {
    padding: 0;
  }

  .menu-wrapper {
    padding: .35rem;
  }

  body .main-menu.ui-megamenu .ui-menu-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .25rem;
  }

  body .main-menu.ui-megamenu .ui-menuitem-link {
    min-height: 3rem;
    gap: .45rem;
    padding: .35rem .5rem;
  }

  body .main-menu.ui-megamenu .ui-menuitem-link .ui-menuitem-icon {
    flex-basis: 1.8rem;
    width: 1.8rem;
    height: 1.8rem;
  }

  body .main-menu.ui-megamenu .ui-menuitem-link .ui-menuitem-text {
    display: -webkit-box;
    overflow: hidden;
    font-size: .7rem;
    line-height: 1.25;
    text-overflow: ellipsis;
    white-space: normal;
    overflow-wrap: anywhere;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }

  .app-toolbar,
  .app-content,
  .app-footer {
    padding: .75rem;
  }

  .app-content {
    min-width: 0;
    min-height: 0;
    overflow-wrap: anywhere;
  }

  .app-toolbar .toolbar-actions {
    display: flex;
    width: 100%;
    flex-wrap: wrap;
    gap: .5rem;
  }

  .app-toolbar .toolbar-actions .modern-action {
    flex: 1 1 10rem;
  }

  .footer {
    gap: 1rem;
  }

  .footer__links,
  .link-spacing {
    gap: .4rem .65rem;
  }

  .footer__link + .footer__link,
  .link-spacing > *:not(:last-child) {
    margin-right: 0;
    margin-left: 0;
  }

  /* PrimeFaces overlays must never be wider than the viewport. */
  body .ui-dialog {
    width: calc(100vw - 1rem) !important;
    max-width: calc(100vw - 1rem) !important;
    max-height: calc(100dvh - 1rem);
  }

  body .ui-dialog .ui-dialog-content {
    width: 100%;
    min-width: 0;
    height: auto !important;
    max-height: calc(100dvh - 4.5rem);
    padding: .75rem;
  }

  .cookie-dialog .ui-button {
    width: 100%;
  }

  .cookie-dialog .ui-dialog-content {
    padding: 1rem;
  }

  .ui-growl {
    right: .5rem !important;
    width: calc(100vw - 1rem) !important;
  }

  /* index.xhtml */
  .page-hero {
    margin-bottom: 1rem;
    padding: 1rem;
    border-radius: .9rem;
  }

  .page-hero h2 {
    font-size: 1.45rem;
    line-height: 1.2;
  }

  .page-hero p {
    font-size: .95rem;
    line-height: 1.5;
  }

  .search-panel {
    gap: .65rem;
    margin-bottom: 1rem;
    padding: .85rem;
    border-radius: .9rem;
  }

  .search-panel__label {
    gap: .5rem;
    font-size: 1rem;
  }

  .search-panel__helper {
    font-size: .82rem;
  }

  .chips-input,
  .chips-input .ui-chips-container {
    min-width: 0;
    width: 100%;
  }

  .chips-input .ui-chips-container {
    display: flex;
    height: auto;
    flex-wrap: wrap;
    gap: .3rem;
  }

  .chips-input .ui-chips-input-token {
    min-width: 0;
    flex: 1 1 9rem;
  }

  .chips-input .ui-chips-input-token input {
    min-width: 0;
    width: 100%;
    font-size: 1rem;
  }

  .chips-input .ui-chips-token {
    max-width: 100%;
  }

  .fishPreViewContainer {
    padding-inline: 0;
  }

  .fishPreViewContainer .ui-dataview-content {
    grid-template-columns: minmax(0, 1fr);
    gap: .75rem;
  }

  .fishPreViewContainer .ui-dataview-row,
  .fishPreView {
    min-width: 0;
    max-width: 100%;
  }

  .fishPreView {
    min-height: 0;
    padding: .75rem;
    gap: .6rem;
  }

  .fish-preview-desc {
    padding: .75rem;
  }

  /* fishdetail.xhtml */
  .fish-detail-shell {
    padding: 0;
    gap: .75rem;
  }

  .fish-hero {
    flex-direction: column;
    flex-wrap: nowrap;
    gap: .75rem;
  }

  .fish-hero-media,
  .fish-hero-tabs {
    flex: 1 1 auto;
    width: 100%;
    min-width: 0;
  }

  .fish-hero-media,
  .fish-hero-content,
  .fish-hero-regulation,
  .fish-regulation-panel {
    padding: .8rem;
    border-radius: .85rem;
  }

  .fish-detail-tabs .ui-tabs-nav {
    flex-wrap: nowrap;
    padding-bottom: .5rem;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scroll-snap-type: inline proximity;
    scrollbar-width: thin;
  }

  .fish-detail-tabs .ui-tabs-nav > li {
    flex: 0 0 auto;
    scroll-snap-align: start;
  }

  .fish-detail-tabs .ui-tabs-nav > li > a {
    padding: .65rem .8rem;
    white-space: nowrap;
  }

  .fish-description-header h2 {
    font-size: 1.5rem;
  }

  .fish-description-kicker {
    letter-spacing: .2em;
  }

  .fishDescriptionText,
  .fish-hero-text {
    font-size: .98rem;
    line-height: 1.65;
  }

  .regulation-list__item {
    grid-template-columns: minmax(0, 1fr);
    gap: .5rem;
  }

  .regulation-list__content {
    align-items: flex-start;
    flex-direction: column;
  }

  .regulation-chip,
  .regulation-note,
  .regulation-source-link {
    max-width: 100%;
  }

  .regulation-note {
    width: 100%;
  }

  .fish-detail-toolbar {
    width: 100%;
    justify-content: stretch;
  }

  .fish-detail-toolbar .modern-action {
    flex: 1 1 9rem;
  }

  .fishDescriptionText img,
  .fishDescriptionText video,
  .fishDescriptionText iframe,
  .news-entry__content img,
  .news-entry__content video,
  .news-entry__content iframe,
  .rental-entry__text img,
  .rental-entry__text video,
  .rental-entry__text iframe {
    max-width: 100% !important;
    height: auto !important;
  }

  .fishDescriptionText table,
  .news-entry__content table,
  .rental-entry__text table {
    display: block;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .monck-image__galleria .ui-galleria-content {
    padding: .65rem .65rem .45rem;
  }

  .monck-image__galleria .ui-galleria-caption {
    padding: .7rem;
  }

  .monck-image__galleria .ui-galleria-indicators {
    padding-inline: .65rem;
  }

  .licence-tooltip.ui-tooltip,
  .licence-tooltip .ui-tooltip-text {
    max-width: calc(100vw - 1rem);
  }

  .licence-tooltip-content {
    min-width: 0;
  }

  /* news.xhtml */
  .news-page {
    gap: .85rem;
    padding: .75rem;
    border-radius: 1rem;
  }

  .news-hero {
    grid-template-columns: minmax(0, 1fr);
    gap: .7rem;
    padding: .85rem;
  }

  .news-hero__badge {
    width: fit-content;
    padding: .5rem .7rem;
  }

  .news-hero__title {
    font-size: 1.3rem;
    line-height: 1.25;
  }

  .news-hero__subtitle {
    font-size: .95rem;
    line-height: 1.5;
  }

  body .news-accordion.ui-accordion .ui-accordion-header {
    margin-bottom: .65rem;
    border-radius: .85rem;
  }

  body .news-accordion.ui-accordion .ui-accordion-header a {
    padding: .8rem;
  }

  .news-entry__title-row {
    align-items: flex-start;
    gap: .55rem;
  }

  .news-entry__title {
    width: 100%;
    font-size: 1.1rem;
    line-height: 1.3;
  }

  .news-entry__date-chip {
    font-size: .82rem;
  }

  .news-entry__meta {
    gap: .35rem;
  }

  .news-entry__meta .news-entry__meta-chip {
    max-width: 100%;
    padding: .35rem .6rem;
    font-size: .8rem;
  }

  .news-entry__preview {
    font-size: .95rem;
    line-height: 1.55;
  }

  body .news-accordion.ui-accordion .ui-accordion-content {
    padding: .85rem;
    border-radius: .85rem;
  }

  .news-entry__content {
    gap: .85rem;
    line-height: 1.6;
  }

  .news-entry__content pre,
  .news-entry__content code {
    max-width: 100%;
    overflow-x: auto;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
  }

  .news-empty-state {
    align-items: flex-start;
    padding: .85rem;
  }

  .news-dialog.ui-dialog {
    width: calc(100vw - 1rem) !important;
    min-width: 0;
    max-width: calc(100vw - 1rem);
    height: calc(100dvh - 1rem) !important;
    min-height: 0;
    max-height: calc(100dvh - 1rem);
  }

  .news-dialog .ui-dialog-content {
    padding: .75rem;
  }

  .news-dialog__form {
    gap: .7rem;
  }

  .news-dialog__grid {
    column-gap: 0;
  }

  .news-dialog__editor .ql-editor {
    min-height: 12rem;
  }

  .news-dialog__actions {
    align-items: stretch;
    flex-direction: column;
  }

  .news-dialog__actions .ui-button {
    width: 100%;
  }

  /* exklusive-mietobjekte.xhtml */
  .rental-page {
    gap: .85rem;
    padding: .75rem;
    border-radius: 1rem;
  }

  .rental-hero {
    padding: .8rem;
  }

  .rental-hero__badge {
    max-width: 100%;
    font-size: .75rem;
    line-height: 1.3;
    overflow-wrap: anywhere;
  }

  .rental-hero__title {
    font-size: 1.35rem;
  }

  .rental-hero__subtitle {
    font-size: .95rem;
    line-height: 1.5;
  }

  body .rental-accordion.ui-accordion .ui-accordion-header a,
  body .rental-accordion.ui-accordion .ui-accordion-content {
    padding: .8rem;
  }

  .rental-entry__layout {
    grid-template-columns: minmax(0, 1fr);
    gap: .75rem;
  }

  .rental-entry__gallery--aside {
    width: 100%;
    justify-self: stretch;
    order: -1;
    padding: .5rem;
  }

  .rental-entry__text {
    font-size: .96rem;
    line-height: 1.65;
    overflow-wrap: anywhere;
  }

  .rental-entry__meta {
    align-items: stretch;
    flex-direction: column;
  }

  .rental-entry__meta-chip {
    width: 100%;
    border-radius: .75rem;
  }

  .rental-dialog.ui-dialog {
    width: calc(100vw - 1rem) !important;
    max-height: calc(100dvh - 1rem);
  }

  .rental-dialog.ui-dialog .ui-dialog-content {
    max-height: calc(100dvh - 4.5rem);
  }

  .rental-dialog__table .ui-datatable-tablewrapper {
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .rental-dialog__table table {
    min-width: 64rem;
  }

  .rental-dialog__intro {
    align-items: flex-start;
  }

  .rental-dialog__actions {
    align-items: stretch;
    flex-direction: column;
  }

  .rental-dialog__actions .ui-button {
    width: 100%;
  }

  /* feedback.xhtml */
  .feedback-page {
    gap: .85rem;
    padding: 0;
  }

  .feedback-hero {
    padding: 1rem .85rem;
  }

  .feedback-hero h1 {
    font-size: 1.55rem;
    line-height: 1.2;
  }

  .feedback-hero .feedback-intro {
    font-size: .95rem;
    line-height: 1.5;
  }

  .feedback-card .ui-panel-titlebar,
  .feedback-card .ui-panel-content {
    padding: .85rem;
  }

  .feedback-layout {
    grid-template-columns: minmax(0, 1fr);
    gap: .85rem;
  }

  .feedback-left,
  .feedback-right,
  .feedback-left .p-field,
  .feedback-right .p-field {
    min-width: 0;
    width: 100%;
  }

  .feedback-left .ui-inputtext,
  .feedback-right .ui-inputtextarea {
    width: 100%;
    max-width: 100%;
    font-size: 1rem;
  }

  .feedback-right .ui-inputtextarea {
    min-height: 12rem;
  }

  .feedback-actions {
    grid-column: 1;
    width: 100%;
    justify-self: stretch;
  }

  .feedback-actions .feedback-submit {
    width: 100%;
  }
}
@media (max-width: 420px) {
  .app-shell {
    padding: .4rem;
    gap: .55rem;
  }

  .app-hero,
  .app-toolbar,
  .app-content,
  .app-footer {
    padding: .6rem;
  }

  .brand-logo {
    flex-basis: 2.4rem;
    width: 2.4rem;
    height: 2.4rem;
  }

  .brand-title {
    font-size: 1.05rem;
  }

  .theme-toggle {
    padding-inline: .4rem;
  }

  body .main-menu.ui-megamenu .ui-menuitem-link {
    gap: .35rem;
    padding-inline: .4rem;
  }

  body .main-menu.ui-megamenu .ui-menuitem-link .ui-menuitem-icon {
    flex-basis: 1.65rem;
    width: 1.65rem;
    height: 1.65rem;
  }

  body .main-menu.ui-megamenu .ui-menuitem-link .ui-menuitem-text {
    font-size: .66rem;
  }

  .weather-data > .weather-metric {
    flex-basis: calc(100% - 1.15rem);
    width: calc(100% - 1.15rem);
  }

  .weather-chart__graph {
    height: 76px;
  }

  .weather-metric--moon .sun-icon,
  .weather-metric--moon .moon-phase-visual {
    width: 64px;
    height: 64px;
  }

  .catch-probability-visual {
    flex-basis: 7.25rem;
  }
}
.content-share {
  position: relative;
  margin-left: auto;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: .5rem;
}
.content-share__options {
  position: absolute;
  z-index: 10;
  right: 0;
  top: calc(100% + .5rem);
  min-width: 170px;
  padding: .4rem;
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.12);
}
.content-share__options[hidden] {
  display: none;
}
.content-share__options a, .content-share__options button {
  display: block;
  box-sizing: border-box;
  width: 100%;
  padding: .75rem;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: #32627f;
  font: inherit;
  text-align: left;
  text-decoration: none;
  cursor: pointer;
}
.content-share__options a:hover, .content-share__options button:hover {
  background: #f3f7fa;
}
.content-share__options a:focus-visible, .content-share__options button:focus-visible {
  outline: 2px solid #1c7fbe;
}
.content-share__status {
  color: #526575;
  font-size: .8rem;
}
.content-share__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: #f3f7fa;
  color: #32627f;
  cursor: pointer;
}
.content-share__button:hover {
  background: #e6eff5;
}
.content-share__button:focus-visible {
  outline: 3px solid #1c7fbe;
  outline-offset: 3px;
}

.fish-detail-form, .regulationsPage {
  color: var(--app-text-primary);
  text-align: left;
  line-height: 1.6;
}
.fish-detail-form a:focus-visible, .fish-detail-form summary:focus-visible, .fish-detail-form input:focus-visible, .regulationsPage a:focus-visible, .regulationsPage summary:focus-visible, .regulationsPage input:focus-visible {
  outline: 3px solid #26818b;
  outline-offset: 3px;
}

.fish-detail-shell, .regulationsPage {
  max-width: 1200px;
  margin: 0 auto;
}

.fish-detail-form .fish-detail-shell {
  display: block;
  padding: 0;
}

.fish-detail-form .fish-description-header {
  margin-bottom: 1.5rem;
  padding: .5rem 0 1.25rem;
  border-bottom: 1px solid var(--app-border);
}

.fish-detail-form .fish-description-kicker {
  letter-spacing: .03em;
  text-transform: none;
  font-style: italic;
  color: var(--app-text-secondary);
}

.fish-detail-form .fish-description-header h2 {
  font-size: clamp(1.8rem, 4vw, 2.8rem);
  line-height: 1.2;
  color: var(--app-text-primary);
}

.fish-detail-form .fish-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
  gap: 1.5rem;
  align-items: start;
}

.fish-detail-form .fish-hero-media {
  padding: .75rem;
  background: var(--app-surface);
  border-radius: 16px;
  box-shadow: none;
}

.fish-detail-form .fish-hero-media img {
  max-width: 100%;
  height: auto;
  object-fit: contain;
}

.fish-detail-form .fish-hero-sidebar {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: inherit;
}

.fish-detail-form .fish-activity-card {
  width: 100%;
  box-sizing: border-box;
  min-width: 0;
  padding: .75rem;
  background: var(--app-surface);
  border: 1px solid var(--app-border);
  border-radius: 16px;
  box-shadow: none;
  color: var(--app-text-primary);
  overflow-wrap: anywhere;
  text-align: left;
}

.fish-activity-card__heading {
  margin: 0;
  font-size: .8rem;
  line-height: 1.4;
  letter-spacing: .045em;
  text-transform: uppercase;
}

.fish-activity-card__location {
  margin: .5rem 0 1rem;
  font-size: .75rem;
  color: var(--app-text-secondary);
}

.fish-activity-card__score {
  font-size: clamp(2rem, 4vw, 2.75rem);
  line-height: 1.1;
  font-weight: 750;
  font-variant-numeric: tabular-nums;
}

.fish-activity-card__conditions {
  margin: .25rem 0 1rem;
  font-weight: 600;
}

.fish-activity-card__phase {
  display: flex;
  flex-direction: column;
  gap: .15rem;
  padding-top: .75rem;
  border-top: 1px solid var(--app-border);
}

.fish-activity-card__phase > span, .fish-activity-card__phase > small {
  font-size: .75rem;
  color: var(--app-text-secondary);
}

.fish-activity-card__phase > strong {
  font-variant-numeric: tabular-nums;
}

.fish-activity-card__factors {
  margin: .75rem 0;
  padding-left: 1rem;
  font-size: .8rem;
}

.fish-activity-card__factors li + li {
  margin-top: .35rem;
}

.fish-activity-card__note {
  margin: .75rem 0 0;
  font-size: .72rem;
  color: var(--app-text-secondary);
}

.fish-activity-card__empty {
  display: block;
  padding-bottom: .25rem;
  color: var(--app-text-secondary);
}

.fish-detail-form .fish-hero-content, .fish-detail-form .fish-hero-regulation {
  background: var(--app-surface);
  border: 1px solid var(--app-border);
  box-shadow: none;
  padding: clamp(1rem, 3vw, 2rem);
  border-radius: 16px;
  min-width: 0;
  gap: 1rem;
}

.fish-detail-form .fish-hero-text {
  display: block;
  max-width: 72ch;
  font-size: 1.025rem;
  line-height: 1.8;
  color: var(--app-text-primary);
  overflow-wrap: anywhere;
}

.fish-detail-form .fish-hero-text p:first-child {
  margin-top: 0;
}

.fish-detail-form .fish-detail-tabs {
  padding: 0;
  background: transparent;
  border: 0;
}

body .fish-detail-form .fish-detail-tabs .ui-tabs-nav {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem;
  padding: .35rem;
  margin: 0 0 1rem;
  background: var(--app-surface-muted);
  border: 1px solid var(--app-border);
  border-radius: 12px;
}

body .fish-detail-form .fish-detail-tabs .ui-tabs-nav > li {
  flex: 1 1 auto;
  margin: 0;
  border: 0;
  border-radius: 8px;
  background: transparent;
}

body .fish-detail-form .fish-detail-tabs .ui-tabs-nav > li > a {
  width: 100%;
  box-sizing: border-box;
  padding: .75rem;
  text-align: center;
  white-space: nowrap;
  color: var(--app-text-secondary);
}

body .fish-detail-form .fish-detail-tabs .ui-tabs-nav > li.ui-state-active {
  background: #176973;
}

body .fish-detail-form .fish-detail-tabs .ui-tabs-nav > li.ui-state-active > a {
  color: #fff;
}

.fish-detail-form .regulation-list__item {
  grid-template-columns: minmax(0, 1fr);
  gap: .5rem;
  padding: 1rem 0;
}

.fish-detail-form .regulation-list__state {
  color: var(--app-text-primary);
}

.fish-detail-form .regulation-list__content {
  flex-direction: row;
  align-items: center;
}

.fish-detail-form .regulation-note {
  background: var(--app-surface-muted);
  color: var(--app-text-secondary);
}

.fish-detail-form .regulation-updated {
  color: var(--app-text-secondary);
}

.regulation-guidance {
  font-size: .9rem;
  color: var(--app-text-secondary);
  border-bottom: 1px solid var(--app-border);
  padding: .75rem 0;
}

.regulation-guidance summary {
  cursor: pointer;
  padding: .35rem 0;
  font-weight: 500;
}

.regulation-guidance .regulation-disclaimer {
  margin: .75rem 0;
}

.regulation-feedback {
  text-align: right;
  font-size: .85rem;
}

.regulation-feedback i {
  display: none;
}

.state-picker {
  background: var(--app-surface);
  border: 1px solid var(--app-border);
  border-radius: 16px;
  padding: 1rem 1.25rem;
}

.state-picker summary {
  cursor: pointer;
  font-weight: 600;
  padding: .25rem 0;
}

.state-picker__links {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .5rem;
  padding-top: 1rem;
}

.state-picker__links a {
  display: flex;
  align-items: center;
  min-height: 44px;
  padding: .5rem .75rem;
  border-radius: 8px;
  color: var(--app-text-primary);
  text-decoration: none;
  overflow-wrap: anywhere;
}

.state-picker__links a:hover {
  background: var(--app-surface-muted);
  text-decoration: underline;
}

.state-picker__links a.is-current {
  background: #176973;
  color: #fff;
}

.regulationsHeadline {
  margin: 2rem 0 1.5rem;
}

.regulationsHeadline h1 {
  font-size: clamp(1.5rem, 3vw, 2.15rem);
  line-height: 1.25;
  margin: 0;
  max-width: 32ch;
}

.regulations-year {
  margin: .5rem 0 1rem;
  color: var(--app-text-secondary);
}

.regulations-search {
  display: flex;
  align-items: center;
  gap: .75rem;
  max-width: 28rem;
  padding: .7rem 1rem;
  margin-bottom: 1.25rem;
  background: var(--app-surface);
  border: 1px solid var(--app-border);
  border-radius: 12px;
}

.regulations-search input {
  min-width: 0;
  width: 100%;
  border: 0;
  background: transparent;
  color: var(--app-text-primary);
  font: inherit;
  min-height: 28px;
}

.regulations-cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  align-items: start;
}

.regulation-card {
  background: var(--app-surface);
  border: 1px solid var(--app-border);
  border-radius: 16px;
  padding: 1.25rem;
  min-width: 0;
}

.regulation-card[hidden], .regulations-no-results[hidden] {
  display: none;
}

.regulation-card h2 {
  margin: 0 0 1rem;
  font-size: 1.2rem;
  color: var(--app-text-primary);
}

.regulation-card h2 a {
  color: inherit;
  text-decoration: none;
}

.regulation-card h2 a:hover {
  text-decoration: underline;
}

.regulation-card__entry + .regulation-card__entry {
  border-top: 1px solid var(--app-border);
  margin-top: 1rem;
  padding-top: 1rem;
}

.regulation-card__facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .85rem;
  margin: 0;
}

.regulation-card__facts dt {
  font-size: .8rem;
  color: var(--app-text-secondary);
}

.regulation-card__facts dd {
  margin: .2rem 0 0;
  font-size: 1.05rem;
  font-weight: 600;
  overflow-wrap: anywhere;
}

.regulation-card__season {
  grid-column: 1 / -1;
}

.regulation-card__note {
  padding-top: 1rem;
  font-size: .9rem;
  color: var(--app-text-secondary);
  overflow-wrap: anywhere;
}

.regulation-source {
  max-width: 1200px;
  margin: 1.5rem auto 0;
  font-size: .9rem;
  text-align: left;
}

@media (max-width: 760px) {
  .fish-detail-form .fish-hero {
    grid-template-columns: minmax(0, 1fr);
    gap: 1rem;
  }

  .fish-detail-form .fish-hero-media {
    width: 100%;
    box-sizing: border-box;
  }

  .fish-detail-form .fish-hero-media img {
    max-height: 280px;
  }

  .regulations-cards {
    grid-template-columns: minmax(0, 1fr);
  }

  .state-picker__links {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .25rem;
  }

  .state-picker {
    padding: .85rem;
  }

  .regulationsHeadline {
    margin-top: 1.5rem;
  }

  .regulation-card {
    padding: 1rem;
  }
}
.regulations-intro {
  max-width: 75ch;
  margin: 1.25rem 0;
  line-height: 1.75;
  overflow-wrap: anywhere;
  color: var(--app-text-primary);
}
.regulations-intro p {
  margin: 0 0 1rem;
}
.regulations-intro h2, .regulations-intro h3, .regulations-intro h4 {
  margin: 1.5rem 0 .75rem;
  line-height: 1.3;
}
.regulations-intro a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: .15em;
}
.regulations-intro img, .regulations-intro video {
  max-width: 100%;
  height: auto;
}

@media (min-width: 1200px) {
  .fish-detail-form .fish-detail-shell,
  .regulationsPage,
  .regulation-source {
    width: 100%;
    max-width: max(1200px, 61.8vw);
    margin-left: auto;
    margin-right: auto;
  }

  .fish-detail-form .fish-hero {
    grid-template-columns: minmax(0, 0.382fr) minmax(0, 0.618fr);
    gap: clamp(1.5rem, 2vw, 3rem);
  }

  .fish-detail-form .fish-hero-text {
    max-width: 110ch;
    font-size: clamp(1.05rem, 0.7vw, 1.35rem);
  }

  .fish-detail-form .regulation-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem 2rem;
  }

  .regulations-cards {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .regulationsHeadline h1 {
    max-width: none;
  }

  .regulations-intro {
    max-width: 110ch;
  }

  .news-page {
    width: 100%;
    max-width: max(1200px, 61.8vw);
    margin-left: auto;
    margin-right: auto;
    box-sizing: border-box;
  }

  .news-layout--with-related {
    display: grid;
    grid-template-columns: minmax(0, 0.618fr) minmax(280px, 0.382fr);
    gap: clamp(2rem, 3vw, 4rem);
    align-items: start;
  }

  .news-layout .news-article {
    min-width: 0;
    width: 100%;
    max-width: none;
    margin: 0;
  }

  .news-layout .news-article__body {
    max-width: 110ch;
    font-size: clamp(1.05rem, 0.7vw, 1.35rem);
  }

  .news-layout .news-article__title {
    max-width: 45ch;
  }

  .news-layout .news-related {
    min-width: 0;
    margin: 0;
    padding: 0 0 0 1.5rem;
    border-top: 0;
    border-left: 1px solid var(--app-border);
  }
}
@media (min-width: 2600px) {
  .regulations-cards {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
.fish-gear__intro {
  margin: 0;
  color: var(--app-text-primary);
  line-height: 1.65;
}
.fish-gear__disclosure {
  margin: 0;
  color: var(--app-text-secondary);
  font-size: .85rem;
  line-height: 1.5;
}
.fish-gear__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 270px), 1fr));
  gap: 1rem;
}
.fish-gear__card {
  display: flex;
  flex-direction: column;
  gap: .85rem;
  min-width: 0;
  padding: 1.25rem;
  border: 1px solid var(--app-border);
  border-radius: 12px;
  background: var(--app-surface-muted);
}
.fish-gear__heading {
  display: flex;
  gap: .75rem;
  align-items: baseline;
}
.fish-gear__heading h3 {
  margin: 0;
  color: var(--app-text-primary);
  font-size: 1.1rem;
  line-height: 1.4;
  overflow-wrap: anywhere;
}
.fish-gear__heading > i {
  color: var(--app-text-secondary);
}
.fish-gear__category {
  color: var(--app-text-secondary);
  font-size: .8rem;
}
.fish-gear__description {
  color: var(--app-text-primary);
  font-size: .95rem;
  line-height: 1.65;
  overflow-wrap: anywhere;
  white-space: pre-line;
}
.fish-gear__offer {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  margin-top: auto;
  min-height: 44px;
  padding-top: .5rem;
  color: var(--app-text-primary);
  text-decoration: underline;
  text-underline-offset: .2em;
}
.fish-gear__offer:hover {
  text-decoration-thickness: 2px;
}
.fish-gear__offer:focus-visible {
  outline: 3px solid #26818b;
  outline-offset: 4px;
  border-radius: 4px;
}

@media (max-width: 640px) {
  .fish-gear__grid {
    grid-template-columns: minmax(0, 1fr);
  }
}
.fish-regulation-grid {
  align-items: stretch;
}

.fish-regulation-card {
  text-align: left;
}
.fish-regulation-card__state {
  margin: 0;
  color: var(--app-text-primary);
  font-size: 1.1rem;
  line-height: 1.4;
  overflow-wrap: anywhere;
}
.fish-regulation-card .regulation-list__content {
  align-items: flex-start;
  min-width: 0;
}
.fish-regulation-card .regulation-list__content + .regulation-list__content {
  border-top: 1px solid var(--app-border);
  padding-top: .85rem;
}
.fish-regulation-card .regulation-note {
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
  white-space: pre-line;
  overflow-wrap: anywhere;
  line-height: 1.65;
}

.fish-regulation-status {
  display: flex;
  align-items: center;
  gap: .5rem;
  font-size: .9rem;
  line-height: 1.5;
  color: var(--app-text-primary);
}
.fish-regulation-status__dot {
  width: .8rem;
  height: .8rem;
  flex: 0 0 .8rem;
  border-radius: 50%;
  background: #64748b;
}
.fish-regulation-status--allowed .fish-regulation-status__dot {
  background: #16803c;
}
.fish-regulation-status--closed .fish-regulation-status__dot {
  background: #dc2626;
}
.fish-regulation-status--ending .fish-regulation-status__dot {
  background: #eab308;
}

body .news-admin {
  width: 100%;
  min-width: 0;
  text-align: left;
  color: var(--app-text-primary);
}
body .news-admin__toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  align-items: center;
  margin-bottom: 1.25rem;
}
body .news-admin__toolbar > input {
  flex: 1 1 16rem;
  min-width: 0;
}
body .news-admin__list a {
  overflow-wrap: anywhere;
}
body .news-admin__status-column {
  width: 8rem;
}
body .news-admin__date-column {
  width: 11rem;
}
body .news-admin__actions-column {
  width: 8rem;
}
body .news-admin__status {
  font-size: .85rem;
  font-weight: 600;
}
body .news-admin__workspace {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  align-items: start;
  gap: 1.5rem;
}
body .news-admin__writing, body .news-admin__publishing {
  min-width: 0;
  padding: 1.5rem;
  border: 1px solid var(--app-border);
  border-radius: 16px;
  background: var(--app-surface);
}
body .news-admin__publishing h3 {
  margin: 0 0 1.5rem;
  font-size: 1.05rem;
  color: var(--app-text-primary);
}
body .news-admin__field {
  display: flex;
  flex-direction: column;
  gap: .6rem;
  margin-bottom: 1.25rem;
  min-width: 0;
}
body .news-admin__field > input {
  width: 100%;
  box-sizing: border-box;
}
body .news-admin__field small {
  color: var(--app-text-secondary);
  line-height: 1.5;
}
body .news-admin__publishing .ui-calendar, body .news-admin__publishing .ui-datepicker {
  display: flex;
  width: 100%;
  min-width: 0;
}
body .news-admin__publishing .ui-calendar input, body .news-admin__publishing .ui-datepicker input {
  flex: 1;
  width: 100%;
  min-width: 0;
}
body .news-admin__publishing .ui-datepicker-trigger {
  flex: 0 0 auto;
}
body .news-admin__content {
  margin-bottom: 0;
}
body .news-admin__content .ui-texteditor {
  width: 100%;
  min-width: 0;
}
body .news-admin__content .ql-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: .25rem;
}
body .news-admin__content .ql-container {
  height: clamp(440px, 60vh, 900px) !important;
}
body .news-admin__content .ql-editor {
  font-size: 1.05rem;
  line-height: 1.75;
  overflow-wrap: anywhere;
  white-space: pre-wrap;
}
body .news-admin__content .ql-editor img {
  max-width: 100%;
  height: auto;
}
body .news-admin__editor-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  align-items: center;
  position: sticky;
  top: 0;
  z-index: 5;
  padding: 1rem 0;
  margin-bottom: 1rem;
  background: var(--app-surface);
  border-bottom: 1px solid var(--app-border);
}
body .news-admin__editor-actions h2 {
  flex: 1;
  margin: 0;
  font-size: 1.4rem;
  color: var(--app-text-primary);
}

@media (min-width: 1800px) {
  body .news-admin__workspace {
    grid-template-columns: minmax(0, 1fr) 360px;
    gap: 2rem;
  }

  body .news-admin__writing {
    padding: 2rem;
  }
}
@media (max-width: 1000px) {
  body .news-admin__workspace {
    grid-template-columns: minmax(0, 1fr);
  }

  body .news-admin__publishing {
    max-width: none;
  }
}
@media (max-width: 640px) {
  body .news-admin__writing, body .news-admin__publishing {
    padding: 1rem;
  }

  body .news-admin__toolbar > * {
    max-width: 100%;
  }

  body .news-admin__editor-actions h2 {
    flex-basis: 100%;
  }

  body .news-admin__editor-actions > button {
    flex: 1 1 auto;
  }
}
@font-face {
  font-family: 'Source Sans 3';
  src: url("/static/fonts/source-sans-3/SourceSans3VF-Upright.ttf.woff2") format("woff2");
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
}
@font-face {
  font-family: 'Source Sans 3';
  src: url("/static/fonts/source-sans-3/SourceSans3VF-Italic.ttf.woff2") format("woff2");
  font-style: italic;
  font-weight: 200 900;
  font-display: swap;
}
body :is(.ui-widget, .p-component, button, input, select, textarea),
body .ui-widget :is(button, input, select, textarea) {
  font-family: var(--app-font-family);
}

body :is(button, .ui-button, .ui-linkbutton, .p-button,
input[type='button'], input[type='submit'], input[type='reset']) {
  border: 0 !important;
}

body :is(button, .ui-button, .ui-linkbutton, .p-button,
input[type='button'], input[type='submit'], input[type='reset']):focus-visible {
  outline: 3px solid var(--link-color) !important;
  outline-offset: 3px;
}

body :is(.glass-panel, .password-card, .fishPreView, .page-hero, .search-panel,
.news-page, .news-hero, .news-empty-state, .feedback-hero, .legal-card,
.account-card, .rental-page, .rental-hero, .regulation-card, .state-picker,
.searchResultItem .itemWrapper, .fish-detail-form .fish-hero-media,
.fish-detail-form .fish-activity-card, .fish-detail-form .fish-hero-content,
.fish-detail-form .fish-hero-regulation) {
  box-sizing: border-box;
  min-width: 0;
  padding: var(--widget-padding);
}

body :is(.glass, .glass-panel, .glassBackground, .glassDialog, .password-card,
.fishPreView, .search-panel, .news-page, .news-empty-state, .legal-card,
.account-card, .rental-page, .regulation-card, .state-picker,
.searchResultItem .itemWrapper, .fish-preview-desc) {
  background: var(--app-surface);
  backdrop-filter: none;
}

body :is(.glass-panel, .password-card, .fishPreView, .page-hero, .search-panel,
.news-page, .news-hero, .news-empty-state, .feedback-hero, .feedback-card,
.legal-card, .account-card, .rental-page, .rental-hero, .regulation-card,
.state-picker, .searchResultItem .itemWrapper, .ui-card, .ui-panel) {
  box-shadow: var(--widget-shadow);
}

body :is(.fishPreView, .searchResultItem .itemWrapper):hover {
  transform: none;
  box-shadow: var(--widget-shadow-hover);
}

body :is(.ui-card, .ui-panel) {
  padding: 0;
  background: var(--app-surface);
}

body .ui-card .ui-card-body,
body .ui-panel .ui-panel-content,
body .ui-panel .ui-panel-titlebar {
  padding: var(--widget-padding);
}

body .ui-card .ui-card-content {
  padding: 0;
}

body :is(.news-hero, .rental-hero) {
  background: #e7f5ff;
}

body .feedback-hero {
  background: #eaf5f2;
}

body.theme-dark :is(.news-hero, .rental-hero, .feedback-hero) {
  background: var(--app-surface-muted);
}

body :is(.app-hero .brand-title, .app-footer) {
  color: var(--app-text-primary);
}

body .brand-title {
  text-shadow: none;
}

body .app-nav {
  background: #1e293b;
  padding: 0;
}

body .hero-weather {
  background: #243647;
  box-shadow: none;
  border-color: var(--app-border);
}

body .weather-metric {
  background: #344454;
  box-shadow: none;
}

body.theme-dark .hero-weather {
  background: #0f172a;
}

body.theme-dark .weather-metric {
  background: #1e293b;
}

body .theme-toggle {
  background: var(--app-surface-muted);
  box-shadow: none;
}

body .theme-toggle:hover {
  background: var(--app-surface);
  box-shadow: none;
}

body :is(.app-shell, .feedback-page, .rental-page, .account-grid,
.regulations-cards, .fish-detail-form .fish-hero, .fish-detail-form .fish-hero-sidebar) {
  gap: var(--widget-gap);
}

body :is(.page-hero, .search-panel) {
  margin-bottom: var(--widget-gap);
}

body .app-content {
  min-width: 0;
}

body .fishPreViewContainer {
  padding-inline: 0;
}

body .fishPreViewContainer .ui-dataview-content {
  display: block;
  background: transparent;
}

body .fishPreViewContainer .ui-dataview-row.grid {
  width: auto;
  margin: calc(var(--widget-gap) / -2);
}

body .fishPreViewContainer .ui-dataview-column {
  min-width: 0;
  padding: calc(var(--widget-gap) / 2);
}

@media (max-width: 768px) {
  html, body {
    overflow-x: visible;
  }
}

/*# sourceMappingURL=styles.css.map */
