/* 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; }
/* Settings uses the same compact icon-button surface as every other item in
   the unified Data Hidrologi menu. The old text-only AI badge is replaced by
   a gear without changing the data-bws-menu="ai" permission hook. */
.bws-settings-menu-button .bws-ai-menu-symbol,
.bws-ai-menu-symbol { display:grid; place-items:center; width:100%; height:100%; line-height:1; }
.bws-settings-menu-button .bws-ai-menu-symbol svg { width:21px; height:21px; display:block; }
.bws-ai-mark svg { width:24px; height:24px; display:block; }
.bws-ai-empty span svg { width:42px; height:42px; display:block; }
/* Menu tiles should present only the action name/icon; retain data values,
   statuses, warnings, and result subtitles elsewhere in the workspace. */
.bws-ai-transfer-grid button > span { display:none !important; }
.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; }
}
