/* BWS_RATING_CURVE_FRONTEND_V1 */
:root{
  --bws-rc-primary: var(--bws-theme-primary, #0f766e);
  --bws-rc-ink: var(--bws-theme-text, #173042);
  --bws-rc-muted: var(--bws-theme-muted, #64748b);
  --bws-rc-card: var(--bws-theme-surface, #ffffff);
  --bws-rc-line: color-mix(in srgb, var(--bws-rc-primary) 16%, #dbe5ec);
}
/* Search and Menu are the permanent bottom row. The admin feature list is
   removed from normal grid flow and anchored above Search, so any number of
   admin buttons cannot push, cover, or appear beside the Search control. */
.bws-unified-menu{
  width: 97px;
  grid-template-columns: 44px 44px;
  grid-template-rows: 44px auto;
  justify-items: stretch;
  align-items: end;
  overflow: visible;
}
.bws-unified-menu > .bws-menu-items{
  position: absolute;
  left: 0;
  right: auto;
  top: auto;
  bottom: calc(100% + 9px);
  z-index: 2;
  grid-column: auto;
  grid-row: auto;
  justify-self: auto;
  transform-origin: left bottom;
}
.bws-unified-menu > .bws-public-search{
  grid-column: 1;
  grid-row: 1;
}
.bws-unified-menu > .bws-menu-toggle{
  grid-column: 2;
  grid-row: 1;
}
.bws-unified-menu > .bws-menu-logout-dock{
  grid-column: 1;
  grid-row: 2;
  width: 44px;
  min-height: 44px;
}
.bws-menu-logout-dock[hidden]{ display: none !important; }
.bws-menu-logout-dock > button.bws-menu-logout{
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid rgba(185, 28, 28, .28);
  border-radius: 12px;
  color: #b91c1c;
  background: rgba(255, 255, 255, .97);
  box-shadow: 0 7px 22px rgba(4, 28, 44, .17);
  cursor: pointer;
}
.bws-menu-logout-dock > button.bws-menu-logout:hover,
.bws-menu-logout-dock > button.bws-menu-logout:focus-visible{
  color: #fff;
  border-color: #b91c1c;
  background: #b91c1c;
}
.bws-menu-logout-dock > button.bws-menu-logout svg{
  width: 21px;
  height: 21px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.bws-rc-modal[hidden]{ display: none !important; }
.bws-rc-modal{ position: fixed; inset: 0; z-index: 12000; display: grid; place-items: center; padding: 18px; background: rgb(8 24 38 / .56); backdrop-filter: blur(5px); }
.bws-rc-dialog{ width: min(1180px, 100%); max-height: min(92vh, 900px); overflow: hidden; display: flex; flex-direction: column; color: var(--bws-rc-ink); background: var(--bws-rc-card); border: 1px solid rgb(255 255 255 / .35); border-radius: 20px; box-shadow: 0 25px 80px rgb(3 20 35 / .35); }
.bws-rc-head{ display:flex; align-items:center; justify-content:space-between; gap:16px; padding:18px 22px; background: linear-gradient(135deg, color-mix(in srgb, var(--bws-rc-primary) 94%, #063047), var(--bws-theme-primary-dark, #155e75)); color:#fff; }
.bws-rc-head h2{ margin:0; font-size:1.2rem; letter-spacing:.01em; }
.bws-rc-head p{ margin:4px 0 0; opacity:.82; font-size:.8rem; }
.bws-rc-close{ width:34px; height:34px; border:0; border-radius:50%; color:#fff; background:rgb(255 255 255 / .16); font-size:1.5rem; cursor:pointer; }
.bws-rc-body{ overflow:auto; padding:18px; }
.bws-rc-controls{ display:grid; grid-template-columns: minmax(180px, 1fr) minmax(150px, .7fr) auto auto; gap:10px; align-items:end; padding:14px; border:1px solid var(--bws-rc-line); border-radius:14px; background: color-mix(in srgb, var(--bws-rc-primary) 5%, var(--bws-rc-card)); }
.bws-rc-field{ display:grid; gap:5px; font-size:.75rem; font-weight:700; color:var(--bws-rc-muted); }
.bws-rc-field select,
.bws-rc-field input{ min-height:38px; padding:7px 10px; border:1px solid #cbd5e1; border-radius:9px; color:var(--bws-rc-ink); background:var(--bws-rc-card); }
.bws-rc-actions{ display:flex; flex-wrap:wrap; gap:8px; }
.bws-rc-btn{ min-height:38px; border:1px solid var(--bws-rc-line); border-radius:9px; padding:8px 13px; cursor:pointer; font-weight:700; color:var(--bws-rc-primary); background:var(--bws-rc-card); }
.bws-rc-btn.primary{ color:#fff; border-color:var(--bws-rc-primary); background:var(--bws-rc-primary); }
.bws-rc-btn:disabled{ opacity:.5; cursor:not-allowed; }
.bws-rc-status{ min-height:22px; margin:10px 2px; font-size:.82rem; color:var(--bws-rc-muted); }
.bws-rc-status.error{ color:#b42318; }
.bws-rc-status.success{ color:#087443; }
.bws-rc-cache{ display:grid; gap:6px; margin:9px 2px 2px; color:var(--bws-rc-muted); font-size:.74rem; }
.bws-rc-progress{ height:5px; overflow:hidden; border-radius:999px; background:color-mix(in srgb, var(--bws-rc-primary) 12%, #e2e8f0); }
.bws-rc-progress span{ display:block; width:0; height:100%; border-radius:inherit; background:var(--bws-rc-primary); transition:width .25s ease; }
.bws-rc-progress.active span{ background:linear-gradient(90deg, var(--bws-rc-primary), #38bdf8, var(--bws-rc-primary)); background-size:180% 100%; animation:bwsRcProgress 1.4s linear infinite; }
@keyframes bwsRcProgress { from{ background-position:0 0; } to{ background-position:180% 0; } }
.bws-rc-grid{ display:grid; grid-template-columns:minmax(270px, 340px) minmax(0, 1fr); gap:14px; margin-top:10px; }
.bws-rc-card{ border:1px solid var(--bws-rc-line); border-radius:14px; background:var(--bws-rc-card); }
.bws-rc-card h3{ margin:0; padding:12px 14px; border-bottom:1px solid var(--bws-rc-line); font-size:.9rem; }
.bws-rc-sources{ max-height:420px; overflow:auto; padding:10px; }
.bws-rc-source{ display:grid; grid-template-columns:18px 1fr; gap:8px; padding:8px; border-radius:9px; font-size:.76rem; cursor:pointer; }
.bws-rc-source:hover{ background: color-mix(in srgb, var(--bws-rc-primary) 8%, transparent); }
.bws-rc-source small{ display:block; color:var(--bws-rc-muted); margin-top:2px; }
.bws-rc-source-tools{ display:flex; gap:6px; padding:9px 10px; border-bottom:1px solid var(--bws-rc-line); }
.bws-rc-mini{ border:0; border-radius:7px; padding:5px 8px; color:var(--bws-rc-primary); background:color-mix(in srgb, var(--bws-rc-primary) 9%, transparent); cursor:pointer; font-size:.72rem; }
.bws-rc-output{ min-width:0; }
.bws-rc-metrics{ display:grid; grid-template-columns:repeat(4, minmax(80px,1fr)); gap:8px; padding:12px 14px; }
.bws-rc-metric{ padding:9px; border-radius:10px; background:color-mix(in srgb, var(--bws-rc-primary) 7%, transparent); }
.bws-rc-metric strong{ display:block; font-size:1.05rem; color:var(--bws-rc-primary); }
.bws-rc-metric span{ color:var(--bws-rc-muted); font-size:.7rem; }
.bws-rc-equation{ margin:0 14px 12px; padding:11px 12px; border-radius:9px; background:#0d2535; color:#e6fffb; font:600 .84rem ui-monospace, SFMono-Regular, Menlo, monospace; overflow:auto; }
.bws-rc-chart{ min-height:310px; padding:6px 12px 12px; }
.bws-rc-chart svg{ width:100%; height:300px; display:block; }
.bws-rc-legend{ display:flex; gap:14px; justify-content:center; font-size:.72rem; color:var(--bws-rc-muted); }
.bws-rc-dot{ display:inline-block; width:9px; height:9px; border-radius:50%; background:#f97316; margin-right:5px; }
.bws-rc-line-key{ display:inline-block; width:18px; height:3px; vertical-align:middle; background:var(--bws-rc-primary); margin-right:5px; }
.bws-rc-segments,
.bws-rc-warnings{ margin:0 14px 12px; font-size:.76rem; }
.bws-rc-segments table{ width:100%; border-collapse:collapse; }
.bws-rc-segments th,
.bws-rc-segments td{ padding:6px 7px; border-bottom:1px solid var(--bws-rc-line); text-align:left; }
.bws-rc-warning{ margin:5px 0; padding:7px 9px; border-radius:7px; color:#8a3b12; background:#fff4e8; }
.bws-rc-export{ display:flex; flex-wrap:wrap; gap:7px; padding:0 14px 14px; }
.bws-rc-menu-icon{ display:grid; place-items:center; line-height:1; font-size:18px; }
.bws-dm-modal[hidden]{ display:none !important; }
.bws-dm-modal{ position:fixed; inset:0; z-index:12001; display:grid; place-items:center; padding:18px; background:rgb(8 24 38 / .56); backdrop-filter:blur(5px); }
.bws-dm-dialog{ width:min(1120px,100%); max-height:min(92vh,900px); overflow:hidden; display:flex; flex-direction:column; color:var(--bws-rc-ink); background:var(--bws-rc-card); border:1px solid rgb(255 255 255 / .35); border-radius:20px; box-shadow:0 25px 80px rgb(3 20 35 / .35); }
.bws-dm-head{ display:flex; align-items:center; justify-content:space-between; gap:16px; padding:18px 22px; color:#fff; background:linear-gradient(135deg, color-mix(in srgb, var(--bws-rc-primary) 94%, #063047), var(--bws-theme-primary-dark, #155e75)); }
.bws-dm-head h2{ margin:0; font-size:1.2rem; letter-spacing:.01em; }
.bws-dm-close{ width:34px; height:34px; border:0; border-radius:50%; color:#fff; background:rgb(255 255 255 / .16); font-size:1.5rem; cursor:pointer; }
.bws-dm-body{ overflow:auto; padding:18px; }
.bws-dm-toolbar{ display:flex; align-items:end; gap:10px; padding:14px; border:1px solid var(--bws-rc-line); border-radius:14px; background:color-mix(in srgb, var(--bws-rc-primary) 5%, var(--bws-rc-card)); }
.bws-dm-toolbar label{ min-width:0; flex:1; display:grid; gap:5px; color:var(--bws-rc-muted); font-size:.75rem; font-weight:700; }
.bws-dm-toolbar select{ min-height:38px; padding:7px 10px; border:1px solid #cbd5e1; border-radius:9px; color:var(--bws-rc-ink); background:var(--bws-rc-card); }
.bws-dm-btn{ min-height:38px; border:1px solid var(--bws-rc-line); border-radius:9px; padding:8px 13px; cursor:pointer; font-weight:700; color:var(--bws-rc-primary); background:var(--bws-rc-card); }
.bws-dm-btn:disabled{ opacity:.5; cursor:not-allowed; }
.bws-dm-status{ min-height:22px; margin:10px 2px; color:var(--bws-rc-muted); font-size:.82rem; }
.bws-dm-status.error{ color:#b42318; }
.bws-dm-status.success{ color:#087443; }
.bws-dm-list-label{ margin:12px 2px 7px; color:var(--bws-rc-muted); font-size:.76rem; font-weight:700; }
.bws-dm-river-list{ display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:8px; max-height:190px; overflow:auto; }
.bws-dm-river-item{ min-width:0; display:grid; gap:3px; padding:10px 11px; border:1px solid var(--bws-rc-line); border-radius:10px; text-align:left; color:var(--bws-rc-ink); background:var(--bws-rc-card); cursor:pointer; }
.bws-dm-river-item:hover,
.bws-dm-river-item.selected{ color:var(--bws-rc-primary); border-color:var(--bws-rc-primary); background:color-mix(in srgb, var(--bws-rc-primary) 8%, var(--bws-rc-card)); }
.bws-dm-river-item b{ overflow:hidden; font-size:.78rem; text-overflow:ellipsis; white-space:nowrap; }
.bws-dm-river-item small{ overflow:hidden; color:var(--bws-rc-muted); font-size:.69rem; text-overflow:ellipsis; white-space:nowrap; }
.bws-dm-stats{ display:grid; grid-template-columns:repeat(7,minmax(90px,1fr)); gap:8px; margin-top:12px; }
.bws-dm-stats article{ min-width:0; padding:9px; border-radius:10px; background:color-mix(in srgb, var(--bws-rc-primary) 7%, transparent); }
.bws-dm-stats span{ display:block; overflow:hidden; color:var(--bws-rc-muted); font-size:.68rem; text-overflow:ellipsis; white-space:nowrap; }
.bws-dm-stats strong{ display:block; margin-top:4px; overflow:hidden; color:var(--bws-rc-primary); font-size:.86rem; text-overflow:ellipsis; white-space:nowrap; }
.bws-dm-chart{ min-height:290px; margin-top:12px; padding:6px 12px 12px; border:1px solid var(--bws-rc-line); border-radius:14px; }
.bws-dm-chart svg{ width:100%; height:280px; display:block; }
.bws-dm-empty{ min-height:280px; display:grid; place-items:center; color:var(--bws-rc-muted); font-size:.82rem; }
.bws-dm-table-wrap{ max-height:390px; overflow:auto; margin-top:12px; border:1px solid var(--bws-rc-line); border-radius:14px; }
.bws-dm-table-wrap table{ width:100%; border-collapse:collapse; font-size:.76rem; }
.bws-dm-table-wrap th,
.bws-dm-table-wrap td{ padding:8px 10px; border-bottom:1px solid var(--bws-rc-line); text-align:left; white-space:nowrap; }
.bws-dm-table-wrap th{ position:sticky; top:0; z-index:1; color:var(--bws-rc-ink); background:var(--bws-rc-card); }
.bws-dm-menu-icon{ display:grid; place-items:center; line-height:1; }
.bws-dm-menu-icon svg{ width:21px; height:21px; display:block; }
@media (max-width: 800px) {
  .bws-unified-menu{ width:91px; grid-template-columns:42px 42px; grid-template-rows:42px auto; gap:7px; }
  .bws-unified-menu > .bws-menu-items{
    position: absolute;
    left: 0;
    right: auto;
    top: auto;
    bottom: calc(100% + 7px);
    width: 189px;
    max-width: 189px;
    max-height: 0;
    overflow: hidden;
    grid-column: auto;
    grid-row: auto;
    grid-template-columns: repeat(4, 42px);
    transform: translateY(8px);
  }
  .bws-unified-menu.is-open > .bws-menu-items{
    max-width: 189px;
    max-height: 460px;
    overflow: visible;
    transform: translateY(0);
  }
  .bws-unified-menu > .bws-public-search{ grid-column:1; grid-row:1; }
  .bws-unified-menu > .bws-menu-toggle{ grid-column:2; grid-row:1; }
  .bws-unified-menu > .bws-menu-logout-dock{ grid-column:1; grid-row:2; width:42px; min-height:42px; }
  .bws-menu-logout-dock > button.bws-menu-logout{ width:42px; height:42px; }
  .bws-rc-modal{ padding:0; place-items:stretch; }
  .bws-rc-dialog{ max-height:none; border-radius:0; }
  .bws-rc-controls{ grid-template-columns:1fr 1fr; }
  .bws-rc-grid{ grid-template-columns:1fr; }
  .bws-rc-sources{ max-height:220px; }
  .bws-rc-metrics{ grid-template-columns:repeat(2,1fr); }
  .bws-dm-modal{ padding:0; place-items:stretch; }
  .bws-dm-dialog{ max-height:none; border-radius:0; }
  .bws-dm-toolbar{ display:grid; grid-template-columns:minmax(0,1fr) auto; }
  .bws-dm-river-list{ grid-template-columns:repeat(2,minmax(0,1fr)); max-height:180px; }
  .bws-dm-stats{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .bws-dm-chart{ min-height:250px; padding:4px 5px 8px; }
  .bws-dm-chart svg{ height:240px; }
}
