/* ============================================================
 * REUN Dashboard Overrides v04 — cockpit shell 後 cleanup 版
 * 載入順序:tokens-v01 → cockpit-shell → 本檔(本檔最後,!important 收尾)
 * 移除過期的 .topnav / .tn-* / .m-* drawer 規則(HTML 已用 .sidebar / .main)
 * ============================================================ */

/* ===== 0. body 與字體基底 ===== */
body {
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "PingFang TC", "Noto Sans TC", system-ui, sans-serif !important;
  font-size: 14px !important;
  line-height: 1.5 !important;
  letter-spacing: 0.02em !important;
  font-feature-settings: 'tnum' 1, 'cv11' 1 !important;
  -webkit-font-smoothing: antialiased !important;
  background: var(--reun-bg) !important;
  color: var(--reun-text) !important;
}
.stat-val, .num, td.num, .bar-val, [class*="amount"] {
  font-variant-numeric: tabular-nums !important;
  letter-spacing: -0.01em !important;
}

/* ===== 1. Cards 細修(cockpit panel 質感)===== */
.card {
  background: var(--reun-surface) !important;
  border: none;
  border-radius: var(--radius-lg, 12px) !important;
  padding: 18px 20px !important;
  box-shadow: var(--shadow-sm) !important;
  transition: box-shadow 120ms ease, transform 120ms ease !important;
}
.card:hover {
  box-shadow: var(--shadow-md) !important;
  transform: translateY(-1px) !important;
}
.card h3, .card h4, .card .title {
  font-size: 13px !important;
  font-weight: 600 !important;
  letter-spacing: -0.01em !important;
  /* color: not forced — inline style color passes through */
  color: var(--reun-text);
  margin-bottom: 12px !important;
}
.muted {
  color: var(--reun-muted) !important;
  font-size: 12px !important;
  letter-spacing: 0.02em !important;
}

/* ===== 2. Grids spacing ===== */
.grid4 { gap: 12px !important; margin-bottom: 16px !important; }
.grid2 { gap: 12px !important; margin-bottom: 16px !important; }
.grid1 { margin-bottom: 16px !important; }
.hero-grid { gap: 12px !important; margin-bottom: 16px !important; }

/* ===== 3. KPI / stat — LIFF perf-hero 風 ===== */
.stat-val {
  font-size: 28px !important;
  font-weight: 600 !important;
  letter-spacing: -0.02em !important;
  margin: 4px 0 2px !important;
  font-family: inherit !important;
  /* color: intentionally NOT set — inline colors (green/red/blue) must pass through */
  line-height: 1.1 !important;
}
.stat-sub {
  font-size: 11px !important;
  color: var(--reun-muted) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  font-weight: 600 !important;
}

/* hero 大數字放更大 */
.hero-grid > .card:first-child {
  background: linear-gradient(135deg, var(--reun-tint-soft) 0%, var(--reun-surface) 60%) !important;
  border: 0.5px solid var(--reun-tint-ring) !important;
  border-radius: var(--radius-xl, 16px) !important;
  padding: 28px !important;
}
.hero-grid > .card:first-child .stat-val {
  font-size: 36px !important;
  letter-spacing: -0.04em !important;
  line-height: 1.05 !important;
  margin: 6px 0 8px !important;
}

/* ===== 4. 進度條 ===== */
.bar-track, .prog-track {
  background: var(--reun-surface-2) !important;
  border-radius: 999px !important;
  height: 6px !important;
}
.bar-fill, .prog-fill {
  background: var(--reun-tint) !important;
  border-radius: 999px !important;
  height: 100% !important;
}

/* ===== 5. Tables ===== */
table { font-size: 13px !important; }
th {
  background: var(--reun-surface) !important;
  border-bottom: 1px solid var(--reun-border) !important;
  color: var(--reun-muted) !important;
  font-size: 10px !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  padding: 10px 14px !important;
  backdrop-filter: blur(8px) !important;
}
td {
  padding: 11px 14px !important;
  border-bottom: 1px solid var(--reun-border) !important;
  color: var(--reun-text) !important;
}
tr:hover td { background: var(--reun-tint-soft) !important; }
tr:last-child td { border-bottom: none !important; }

/* ===== 6. Forms ===== */
.sinput, input[type="text"], input[type="email"], input[type="password"], input[type="number"], input[type="date"], select, textarea {
  background: var(--reun-surface) !important;
  border: 1px solid var(--reun-border) !important;
  border-radius: var(--radius-md, 10px) !important;
  padding: 10px 14px !important;
  font-size: 14px !important;
  color: var(--reun-text) !important;
  font-family: inherit !important;
  transition: border 120ms ease, box-shadow 120ms ease !important;
}
.sinput:focus, input:focus, select:focus, textarea:focus {
  outline: none !important;
  border-color: var(--reun-tint) !important;
  box-shadow: 0 0 0 3px var(--reun-tint-ring) !important;
}

/* ===== 7. Buttons ===== */
.btn-o, button[type="submit"], .btn-primary {
  background: var(--reun-tint) !important;
  color: white !important;
  border: none !important;
  border-radius: var(--radius-md, 10px) !important;
  padding: 10px 18px !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  letter-spacing: 0.02em !important;
  font-family: inherit !important;
  cursor: pointer !important;
  transition: opacity 120ms ease, transform 120ms ease !important;
  box-shadow: 0 1px 2px rgba(0, 122, 255, 0.18) !important;
}
.btn-o:hover, button[type="submit"]:hover, .btn-primary:hover {
  opacity: 0.92 !important;
  transform: translateY(-1px) !important;
}

/* ===== 8. Alert banner — db-dashboard 內 inline rgba() 樣式對應 ===== */
[style*="rgba(239,68,68"], [style*="rgba(239, 68, 68"],
[style*="rgba(255,59,48"], [style*="rgba(255, 59, 48"] {
  background: var(--reun-err-soft) !important;
  border: 0.5px solid rgba(255, 59, 48, 0.25) !important;
  border-radius: var(--radius-md, 10px) !important;
}
[style*="rgba(234,179,8"], [style*="rgba(234, 179, 8"],
[style*="rgba(255,149,0"], [style*="rgba(255, 149, 0"],
[style*="rgba(245,158,11"], [style*="rgba(245, 158, 11"] {
  background: var(--reun-warn-soft) !important;
  border: 0.5px solid rgba(255, 149, 0, 0.25) !important;
  border-radius: var(--radius-md, 10px) !important;
}
[style*="rgba(34,197,94"], [style*="rgba(34, 197, 94"],
[style*="rgba(52,199,89"], [style*="rgba(52, 199, 89"] {
  background: var(--reun-ok-soft) !important;
  border: 0.5px solid rgba(52, 199, 89, 0.25) !important;
  border-radius: var(--radius-md, 10px) !important;
}
[style*="rgba(59,130,246"], [style*="rgba(59, 130, 246"] {
  background: var(--reun-tint-soft) !important;
  border: 0.5px solid var(--reun-tint-ring) !important;
  border-radius: var(--radius-md, 10px) !important;
}

/* ===== 9. Section view padding(cockpit shell .view 沒 padding,加上)===== */
.view {
  padding: 24px 28px 48px !important;
  max-width: 1240px !important;
}
@media (max-width: 768px) {
  .view { padding: 16px !important; }
}

/* ===== 10. .box(login/register card)===== */
.box {
  background: var(--reun-surface) !important;
  border: 0.5px solid var(--reun-border) !important;
  border-radius: var(--radius-xl, 16px) !important;
  padding: 44px 36px !important;
  box-shadow: var(--shadow-md) !important;
}
.box h1 {
  color: var(--reun-text) !important;
  font-size: 28px !important;
  font-weight: 700 !important;
  letter-spacing: 0.16em !important;
  margin-bottom: 6px !important;
}
.box .sub {
  color: var(--reun-muted) !important;
  font-size: 12px !important;
  letter-spacing: 0.04em !important;
  margin-bottom: 32px !important;
}
.box input { background: var(--reun-bg) !important; margin-bottom: 12px !important; }
.box button { margin-top: 12px !important; height: 44px !important; font-size: 14px !important; }

/* ===== 11. h1/h2/h3 字型階層 ===== */
h1 { font-size: 26px !important; font-weight: 600 !important; letter-spacing: -0.02em !important; line-height: 1.2 !important; margin: 0 0 12px !important; }
h2 { font-size: 20px !important; font-weight: 600 !important; letter-spacing: -0.02em !important; line-height: 1.3 !important; margin: 0 0 10px !important; }
h3 { font-size: 16px !important; font-weight: 600 !important; letter-spacing: -0.01em !important; line-height: 1.4 !important; margin: 0 0 8px !important; }

/* ===== 12. 內聯 link ===== */
a:not(.nav-item):not(.tn-link):not(.btn-o):not(.dd-item) { color: var(--reun-tint) !important; }

/* ===== 13. Sidebar nav-item icon span ===== */
.sidebar .nav-item span[style*="display:inline-block"] {
  font-size: 14px !important;
  flex-shrink: 0 !important;
}

/* ===== 14. focus visible ===== */
:focus-visible {
  outline: 2px solid var(--reun-tint) !important;
  outline-offset: 2px !important;
  border-radius: var(--radius-sm, 6px) !important;
}

/* ===== 15. selection ===== */
::selection { background: var(--reun-tint-soft) !important; color: var(--reun-text) !important; }

/* ===== 16. dtable scroll wrap ===== */
.dtable {
  background: var(--reun-surface) !important;
  border-radius: var(--radius-lg, 12px) !important;
  overflow: hidden !important;
  box-shadow: var(--shadow-sm) !important;
}

/* ===== 17. code / pre ===== */
code, .mono {
  font-family: "SF Mono", ui-monospace, "Fira Code", monospace !important;
  font-size: 12px !important;
  background: var(--reun-surface-2) !important;
  padding: 2px 6px !important;
  border-radius: 4px !important;
  letter-spacing: 0 !important;
}

/* ===== 18. theme-btn(top bar 內小按鈕)===== */
.theme-btn {
  width: 30px !important; height: 30px !important;
  border: 1px solid var(--reun-border) !important;
  background: transparent !important;
  border-radius: var(--radius-sm, 6px) !important;
  cursor: pointer !important;
  font-size: 13px !important;
  display: inline-flex !important; align-items: center !important; justify-content: center !important;
}
.theme-btn:hover { background: var(--reun-surface-2) !important; }

/* ===== 19. 移動裝置 RWD ===== */
@media (max-width: 768px) {
  .grid4 { grid-template-columns: repeat(2, 1fr) !important; }
  .grid2 { grid-template-columns: 1fr !important; }
  .hero-grid { grid-template-columns: 1fr !important; }
  .stat-val { font-size: 24px !important; }
  .hero-grid > .card:first-child .stat-val { font-size: 32px !important; }
  .view { padding: 16px !important; }
}

/* ============================================================
 * Part D — db-dashboard 內容元件強制變 cockpit panel/kpi 視覺
 * ============================================================ */

/* card 強制 cockpit panel 質感 */
.card {
  padding: 22px !important;
  margin-bottom: 14px !important;
}

.card > h3:first-child,
.card > h4:first-child,
.card > .title:first-child {
  font-size: 15px !important;
  font-weight: 600 !important;
  letter-spacing: -0.01em !important;
  margin: 0 0 16px !important;
  /* color: not forced — blue inline style must pass through */
  color: var(--reun-text);
}

.card > h3.muted:first-child,
.card > .muted:first-child {
  font-size: 11px !important;
  font-weight: 600 !important;
  color: var(--reun-muted) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  margin: 0 0 12px !important;
}

/* stat-val 強制 cockpit kpi-value 級數 */
.stat-val {
  font-size: 30px !important;
  font-weight: 600 !important;
  letter-spacing: -0.03em !important;
  line-height: 1.05 !important;
  margin: 4px 0 6px !important;
}

.hero-grid > .card:first-child .stat-val {
  font-size: 40px !important;
  letter-spacing: -0.04em !important;
}

.stat-sub {
  font-size: 11px !important;
  color: var(--reun-muted) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  font-weight: 600 !important;
  display: block !important;
  margin-bottom: 8px !important;
}

/* grid 緊湊 */
.grid4, .grid2, .hero-grid { gap: 10px !important; margin-bottom: 14px !important; }
.grid4 > .card, .grid2 > .card, .hero-grid > .card { padding: 18px 20px !important; }

/* 進度條 .bar-row */
.bar-row { display: flex !important; align-items: center !important; gap: 12px !important; padding: 6px 0 !important; font-size: 13px !important; }
.bar-label { color: var(--reun-text-2) !important; flex: 0 0 80px !important; }
.bar-track { flex: 1 !important; }
.bar-val { font-weight: 600 !important; color: var(--reun-text) !important; min-width: 60px !important; text-align: right !important; }

/* 警示卡片 padding 收緊 */
[style*="rgba(239,68,68"], [style*="rgba(255,59,48"],
[style*="rgba(234,179,8"], [style*="rgba(255,149,0"], [style*="rgba(245,158,11"],
[style*="rgba(34,197,94"], [style*="rgba(52,199,89"],
[style*="rgba(59,130,246"] {
  padding: 12px 16px !important;
  margin-bottom: 8px !important;
  font-size: 13px !important;
  line-height: 1.5 !important;
}

/* sidebar nav 緊湊 */
.sidebar .nav-item {
  padding: 6px 12px !important;
  font-size: 12.5px !important;
  letter-spacing: 0.02em !important;
}
.sidebar .nav-section {
  padding: 12px 12px 4px !important;
  font-size: 9px !important;
  letter-spacing: 0.1em !important;
}
.sidebar .footer-info {
  margin-top: auto !important;
  padding: 14px 12px !important;
  font-size: 11px !important;
  color: var(--reun-muted) !important;
  border-top: 1px solid var(--reun-border) !important;
}
.sidebar .footer-info strong {
  color: var(--reun-text) !important;
  font-weight: 600 !important;
}

/* topbar */
.topbar {
  padding: 14px 28px !important;
  background: var(--reun-surface) !important;
  border-bottom: 1px solid var(--reun-border) !important;
  font-size: 12px !important;
  position: sticky !important;
  top: 0 !important;
  z-index: 10 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
}
.topbar .meta {
  color: var(--reun-text-2) !important;
  font-size: 12px !important;
  letter-spacing: 0.04em !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
}
.pulse-dot {
  display: inline-block !important;
  width: 6px; height: 6px !important;
  background: var(--reun-ok) !important;
  border-radius: 50% !important;
  box-shadow: 0 0 0 3px var(--reun-ok-soft) !important;
}

/* ===== Part E — inline style 大字 + mono 字體強制 override ===== */

/* 任何 inline font-family:var(--mono) 強制改 system 字 + tabular-nums */
[style*="font-family:var(--mono)"], [style*="font-family: var(--mono)"] {
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "PingFang TC", "Noto Sans TC", system-ui, sans-serif !important;
  font-variant-numeric: tabular-nums !important;
  letter-spacing: -0.02em !important;
}

/* hero 級大字(48px)→ 40px 並用 cockpit letter-spacing */
[style*="font-size:48px"], [style*="font-size: 48px"] {
  font-size: 40px !important;
  font-weight: 600 !important;
  letter-spacing: -0.04em !important;
  line-height: 1.05 !important;
}
/* secondary 大字(24px / 32px / 36px)*/
[style*="font-size:36px"][style*="font-weight:700"] {
  font-size: 32px !important;
  font-weight: 600 !important;
  letter-spacing: -0.03em !important;
}
[style*="font-size:32px"][style*="font-weight:700"] {
  font-size: 28px !important;
  font-weight: 600 !important;
  letter-spacing: -0.03em !important;
}
[style*="font-size:24px"][style*="font-weight:700"] {
  font-size: 22px !important;
  font-weight: 600 !important;
  letter-spacing: -0.02em !important;
}
[style*="font-size:28px"][style*="font-weight:700"] {
  font-size: 26px !important;
  font-weight: 600 !important;
  letter-spacing: -0.02em !important;
}
[style*="font-size:16px"][style*="font-weight:700"] {
  font-size: 16px !important;
  font-weight: 600 !important;
  letter-spacing: -0.01em !important;
}

/* hero card 內 mini stats(border-top 分隔的)— cockpit hero-mini-stats 風 */
.hero-grid > .card:first-child [style*="border-top"][style*="display:flex"] {
  margin-top: 14px !important;
  padding-top: 14px !important;
  border-top: 1px solid var(--reun-tint-ring) !important;
}

/* hero 卡片整體加 cockpit gradient + tint border */
.hero-grid > .card:first-child {
  background: linear-gradient(135deg, var(--reun-tint-soft) 0%, var(--reun-surface) 60%) !important;
  border: 0.5px solid var(--reun-tint-ring) !important;
}

/* 毛利率監控 / 風險警示 等 inline style 帶 background 的 sub-card 改 cockpit 風 */
[style*="background:var(--reun-bg)"][style*="border-radius:8px"] {
  background: var(--reun-surface-2) !important;
  padding: 12px !important;
  border: 1px solid var(--reun-border) !important;
}

/* card 內帶 emoji 的 h3.muted 視覺對齊 cockpit section-label */
.card h3.muted {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 8px !important;
  flex-wrap: wrap !important;
}
.card h3.muted > span:last-child {
  font-size: 11px !important;
  color: var(--reun-muted) !important;
  font-weight: 500 !important;
  text-transform: none !important;
  letter-spacing: 0.02em !important;
}

/* 期間 filter pills(inline style 的 <a>)*/
a[href*="mode=today"], a[href*="mode=month"], a[href*="mode=year"], a[href*="mode=all"] {
  padding: 6px 14px !important;
  border-radius: var(--radius-pill, 999px) !important;
  font-weight: 500 !important;
  border: 1px solid transparent !important;
  transition: all 120ms ease !important;
  display: inline-flex !important;
  align-items: center !important;
}
a[href*="mode="][style*="background:var(--reun-tint)"] {
  background: var(--reun-tint) !important;
  color: white !important;
}
a[href*="mode="][style*="background:var(--reun-surface)"] {
  background: transparent !important;
  color: var(--reun-text-2) !important;
  border-color: var(--reun-border) !important;
}
a[href*="mode="]:hover {
  background: var(--reun-surface-2) !important;
  color: var(--reun-text) !important;
}

/* 期間 filter card 內部 layout 收緊 */
.card[style*="display:flex"][style*="align-items:center"] > span:first-child {
  font-size: 11px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  color: var(--reun-muted) !important;
  font-weight: 600 !important;
}

/* card 內 第一級分隔(border-top + flex)強化 */
[style*="border-top:1px solid var(--border)"], [style*="border-top: 1px solid var(--border)"],
[style*="border-top:1px solid var(--reun-border)"] {
  border-top: 1px solid var(--reun-border) !important;
  padding-top: 14px !important;
  margin-top: 14px !important;
}

/* ===== Part F — 表格 cockpit data-table 質感 ===== */

/* table 容器(card 包 table)放大,左右滿版 */
.card > table:only-child,
.card > .dtable:only-child {
  margin: -22px !important;
  width: calc(100% + 44px) !important;
}
.card > table:first-child,
.card > .dtable:first-child {
  margin-top: -22px !important;
  margin-left: -22px !important;
  margin-right: -22px !important;
  width: calc(100% + 44px) !important;
}

/* sticky thead 加 backdrop blur(現代感)*/
table thead, table th {
  position: sticky !important;
  top: 0 !important;
  z-index: 5 !important;
}
@supports (backdrop-filter: blur(8px)) {
  table th {
    backdrop-filter: saturate(180%) blur(20px) !important;
    -webkit-backdrop-filter: saturate(180%) blur(20px) !important;
    background: rgba(255, 255, 255, 0.72) !important;
  }
  @media (prefers-color-scheme: dark) {
    table th {
      background: rgba(28, 28, 30, 0.72) !important;
    }
  }
}

/* 表格 row hover 改 cockpit 細邊 highlight */
tbody tr:hover { background: var(--reun-tint-soft) !important; }
tbody tr { transition: background 100ms ease !important; }

/* td.num 確保 tabular-nums + 右對齊 */
td.num, td[class*="amount"], td[class*="price"] {
  text-align: right !important;
  font-variant-numeric: tabular-nums !important;
  font-feature-settings: 'tnum' 1 !important;
  letter-spacing: -0.01em !important;
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "PingFang TC", system-ui, sans-serif !important;
}

/* 行末細圓角(table 在 card 滿版時最後 row 圓角)*/
tbody tr:last-child td:first-child { border-bottom-left-radius: var(--radius-lg, 12px) !important; }
tbody tr:last-child td:last-child { border-bottom-right-radius: var(--radius-lg, 12px) !important; }

/* search 框與表格之間距 */
form + table, form + .dtable {
  margin-top: 12px !important;
}

/* 篩選按鈕群 */
.search-bar, .filter-bar {
  display: flex !important;
  gap: 8px !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  margin-bottom: 12px !important;
}

/* ===== Part G — page-subtitle 細節 ===== */
.page-subtitle .pulse-dot {
  display: inline-block !important;
  width: 6px; height: 6px !important;
  background: var(--reun-ok) !important;
  border-radius: 50% !important;
  margin-right: 4px !important;
}

/* ===== Part H — form 細節 + button 細節 ===== */

/* form 內 input + label 排列(cockpit 用 grid)*/
form .form-row, form > div[style*="margin"][style*="display"] {
  display: grid !important;
  grid-template-columns: 140px 1fr !important;
  gap: 12px !important;
  align-items: center !important;
  margin-bottom: 14px !important;
}

/* form label 文字 */
form label, form > div > span:first-child {
  font-size: 13px !important;
  color: var(--reun-text-2) !important;
  font-weight: 500 !important;
}

/* 表格內 button(刪除 / 編輯)— 圖示按鈕風 */
table button, .dtable button,
table a[href*="action=delete"], table a[href*="action=edit"] {
  padding: 4px 10px !important;
  font-size: 12px !important;
  border-radius: 6px !important;
  border: 1px solid var(--reun-border) !important;
  background: transparent !important;
  color: var(--reun-text-2) !important;
  cursor: pointer !important;
  text-decoration: none !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 4px !important;
}
table button:hover, table a[href*="action="]:hover {
  background: var(--reun-surface-2) !important;
  color: var(--reun-text) !important;
}
table a[href*="action=delete"] {
  color: var(--reun-err) !important;
}
table a[href*="action=delete"]:hover {
  background: var(--reun-err-soft) !important;
  color: var(--reun-err) !important;
  border-color: rgba(255,59,48,.25) !important;
}

/* badge / pill (品牌標籤等) */
[class*="badge"], [class*="pill"], [class*="chip"] {
  display: inline-flex !important;
  align-items: center !important;
  padding: 2px 8px !important;
  border-radius: var(--radius-pill, 999px) !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  letter-spacing: 0.02em !important;
}

/* 表格搜尋 + 篩選列 */
form[method="GET"]:not([action="/db/login"]):not([action="/db/register"]) {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  flex-wrap: wrap !important;
  margin-bottom: 14px !important;
}
form[method="GET"] input[type="text"], form[method="GET"] input[type="search"] {
  flex: 1 !important;
  min-width: 200px !important;
  max-width: 320px !important;
}
form[method="GET"] select {
  min-width: 120px !important;
}

/* 提交按鈕 cockpit btn-primary */
form button[type="submit"] {
  background: var(--reun-tint) !important;
  color: white !important;
  border: none !important;
  border-radius: var(--radius-md, 10px) !important;
  padding: 9px 18px !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  cursor: pointer !important;
  transition: opacity 120ms ease !important;
  box-shadow: 0 1px 2px rgba(0,122,255,.18) !important;
}
form button[type="submit"]:hover { opacity: 0.92 !important; }

/* label tag for status / role */
[style*="background:var(--reun-tint)"][style*="color:#fff"] {
  background: var(--reun-tint) !important;
  color: white !important;
}

/* page-head 大標題 */
.page-head { margin-bottom: 24px !important; }
.page-title {
  font-size: 26px !important;
  font-weight: 600 !important;
  letter-spacing: -0.02em !important;
  color: var(--reun-text) !important;
  margin: 0 0 6px !important;
}
.page-subtitle {
  font-size: 13px !important;
  color: var(--reun-text-2) !important;
  margin: 0 !important;
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
}

/* ============================================================
 * Part I — bar-row cockpit 細線 + info-item + 細節補完 v10
 * ============================================================ */

/* bar-row cockpit 細線風 */
.bar-row { display:flex!important; align-items:center!important; gap:12px!important; padding:5px 0!important; font-size:13px!important; }
.bar-label { flex:0 0 120px!important; color:var(--reun-text-2)!important; font-size:12.5px!important; white-space:nowrap!important; overflow:hidden!important; text-overflow:ellipsis!important; }
.bar-track { flex:1!important; height:6px!important; background:var(--reun-surface-2)!important; border-radius:999px!important; overflow:hidden!important; }
.bar-fill { height:100%!important; border-radius:999px!important; transition:width 0.4s ease!important; min-width:4px!important; font-size:0!important; color:transparent!important; padding:0!important; }
.bar-val { flex:0 0 auto!important; min-width:80px!important; text-align:right!important; font-weight:600!important; font-size:12.5px!important; color:var(--reun-text)!important; font-variant-numeric:tabular-nums!important; letter-spacing:-0.01em!important; white-space:nowrap!important; }
.prog-track { height:8px!important; background:var(--reun-surface-2)!important; border-radius:999px!important; overflow:hidden!important; margin:6px 0!important; }
.prog-fill { height:100%!important; border-radius:999px!important; transition:width 0.4s ease!important; font-size:0!important; color:transparent!important; padding:0!important; min-width:4px!important; }

/* .info-item / .info-label */
.info-item { display:flex!important; align-items:baseline!important; gap:12px!important; padding:8px 0!important; border-bottom:1px solid var(--reun-border)!important; font-size:13px!important; }
.info-item:last-child { border-bottom:none!important; }
.info-label { flex:0 0 120px!important; font-size:12px!important; color:var(--reun-muted)!important; font-weight:500!important; letter-spacing:0.02em!important; }

/* page-head bottom border */
.page-head { padding-bottom:20px!important; border-bottom:1px solid var(--reun-border)!important; margin-bottom:20px!important; }

/* empty state cards */
.card[style*=text-align:center], .card[style*=text-align: center] { padding:48px 24px!important; }

/* scrollbar */
::-webkit-scrollbar { width:5px; height:5px; }
::-webkit-scrollbar-track { background:transparent; }
::-webkit-scrollbar-thumb { background:var(--reun-border); border-radius:4px; }
::-webkit-scrollbar-thumb:hover { background:var(--reun-border-strong); }

/* badge */
.badge { display:inline-flex!important; align-items:center!important; padding:2px 8px!important; border-radius:999px!important; font-size:10px!important; font-weight:600!important; letter-spacing:0.04em!important; text-transform:uppercase!important; background:var(--reun-surface-2)!important; color:var(--reun-muted)!important; border:1px solid var(--reun-border)!important; }

/* view max-width 寬螢幕 */
.view { max-width:1400px!important; }

/* mobile: sidebar hidden */
@media (max-width:768px) {
  .layout { grid-template-columns:1fr!important; }
  .sidebar { display:none!important; }
}

/* ============================================================
 * Part J — 修正 .main 雙重 padding + topbar sticky 修正 v10.1
 * ============================================================ */

/* .main 的 cockpit-shell padding 清掉 — topbar 跟 .view 各自自帶 padding */
.main {
  padding: 0 !important;
  max-width: none !important;
}

/* topbar 要 edge-to-edge(自帶 28px side padding,sticky top:0) */
.topbar {
  padding: 12px 28px !important;
  position: sticky !important;
  top: 0 !important;
  z-index: 30 !important;
  backdrop-filter: saturate(180%) blur(20px) !important;
  -webkit-backdrop-filter: saturate(180%) blur(20px) !important;
  background: rgba(255,255,255,0.88) !important;
  border-bottom: 1px solid var(--reun-border) !important;
}
@media (prefers-color-scheme: dark) {
  .topbar {
    background: rgba(28,28,30,0.88) !important;
  }
}

/* .view: 頁面主內容 padding */
.view {
  padding: 24px 28px 60px !important;
  max-width: 1400px !important;
  width: 100% !important;
  box-sizing: border-box !important;
}
@media (max-width: 768px) {
  .view { padding: 16px 16px 48px !important; }
}

/* ============================================================
 * Part K — bar-fill color via CSS custom property v10.2
 * ============================================================ */

/* bar-fill 用 CSS 自訂屬性傳色,讓 !important 也能動態換色 */
.bar-fill {
  background: var(--bar-color, var(--reun-tint)) !important;
}
.prog-fill {
  background: var(--bar-color, var(--reun-tint)) !important;
}


/* ============================================================
 * Part K — Hero panel(B0 reference section 2026-05-07)
 * 對應 db-dashboard render_dashboard() 的 Row 1
 * 直接套 cockpit-shell .panel + .kpi 結構,本檔只補 Hero variant 細節
 * ============================================================ */

/* Hero panel container */
.hero-panel {
  padding: 24px 28px 26px !important;
  margin-bottom: 18px !important;
}
.hero-panel .panel-head {
  margin-bottom: 18px !important;
  padding-bottom: 12px !important;
  border-bottom: 0.5px solid var(--reun-border) !important;
}
.hero-panel .panel-title {
  font-size: 15px !important;
  font-weight: 600 !important;
  letter-spacing: -0.01em !important;
  color: var(--reun-text) !important;
  margin: 0 !important;
}
.hero-panel .panel-meta {
  font-size: 11.5px !important;
  color: var(--reun-muted) !important;
  font-variant-numeric: tabular-nums !important;
}

/* Hero KPI grid — 2 columns desktop, 1 column mobile */
.hero-kpi-grid {
  gap: 14px !important;
}
@media (max-width: 768px) {
  .kpi-grid.cols-2.hero-kpi-grid {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }
}

/* Left: Hero KPI card(big revenue) */
.hero-kpi-card {
  padding: 26px 28px !important;
  background: linear-gradient(180deg, var(--reun-tint-soft) 0%, var(--reun-surface) 55%) !important;
  border: 0.5px solid var(--reun-tint-ring) !important;
  cursor: default !important;
  display: flex !important;
  flex-direction: column !important;
}
.hero-kpi-card:hover {
  transform: none !important;
  box-shadow: var(--shadow-sm) !important;
}
.hero-kpi-card .kpi-label {
  margin-bottom: 8px !important;
}
.hero-value {
  font-size: 44px;
  font-weight: 600;
  letter-spacing: -0.04em;
  font-variant-numeric: tabular-nums;
  color: var(--reun-text);
  line-height: 1.0;
  margin: 4px 0 18px;
}
@media (max-width: 768px) {
  .hero-value { font-size: 34px; }
}

/* Hero secondary stats(毛利 / 毛利率) */
.hero-stats {
  display: flex;
  gap: 32px;
  padding-top: 14px;
  border-top: 0.5px solid var(--reun-border);
  margin-top: auto;
}
.hero-stat-val {
  font-size: 22px;
  font-weight: 600;
  letter-spacing: -0.02em;
  line-height: 1.1;
  font-variant-numeric: tabular-nums;
  color: var(--reun-text);
}
.hero-stat-lbl {
  font-size: 11.5px;
  color: var(--reun-text-2);
  margin-top: 4px;
  display: flex;
  align-items: center;
  gap: 6px;
}

/* Status text + chip utilities(可在其他 render_* 重用) */
.text-ok   { color: var(--reun-ok)   !important; }
.text-warn { color: var(--reun-warn) !important; }
.text-err  { color: var(--reun-err)  !important; }
.text-tint { color: var(--reun-tint) !important; }

.chip {
  display: inline-flex;
  align-items: center;
  padding: 1px 7px;
  font-size: 10px;
  font-weight: 600;
  border-radius: 4px;
  letter-spacing: 0.04em;
  text-transform: none;
  line-height: 1.5;
}
.chip-ok   { background: var(--reun-ok-soft);   color: var(--reun-ok); }
.chip-warn { background: var(--reun-warn-soft); color: var(--reun-warn); }
.chip-err  { background: var(--reun-err-soft);  color: var(--reun-err); }
.chip-tint { background: var(--reun-tint-soft); color: var(--reun-tint); }

/* Right column: vertical stack of 2 compact KPIs */
.hero-stack {
  display: flex;
  flex-direction: column;
  gap: 12px;
  height: 100%;
}
.hero-stack > .kpi {
  flex: 1;
  cursor: default;
  display: flex;
  align-items: center;
}
.hero-stack > .kpi:hover {
  transform: none !important;
}
.hero-stack-kpi {
  padding: 18px 20px !important;
}

/* Compact KPI inner split row(left:value+label, right:meta) */
.kpi-row-split {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  width: 100%;
}
.kpi-row-split > div:first-child .kpi-value {
  font-size: 28px !important;
  font-weight: 600 !important;
  letter-spacing: -0.02em !important;
  line-height: 1.0 !important;
  margin-bottom: 4px !important;
  color: var(--reun-text) !important;
}
.kpi-row-split > div:first-child .kpi-label {
  margin-top: 0 !important;
}
.kpi-side {
  font-size: 11.5px;
  color: var(--reun-text-2);
  text-align: right;
  line-height: 1.55;
  font-variant-numeric: tabular-nums;
  flex-shrink: 0;
}

/* Mobile: compact KPI stack rows(left/right 不分,改 stacked) */
@media (max-width: 480px) {
  .hero-stack > .kpi { padding: 14px 16px !important; }
  .kpi-row-split { flex-direction: column; align-items: flex-start; gap: 8px; }
  .kpi-side { text-align: left; }
}


/* ============================================================
 * Part L — Alert banners(B0 v2 cockpit pattern 2026-05-07)
 * 取代舊 inline-style 彩色塊。5 種變體:danger / warn / good / money / fire
 * cockpit-shell.css .alert-banner 預設紅色,本檔補變體 + 收斂尺寸
 * ============================================================ */

.alert-banner {
  padding: 10px 14px !important;
  margin-bottom: 6px !important;
  border-radius: 8px !important;
  font-size: 13px !important;
  line-height: 1.4 !important;
  display: flex !important;
  gap: 10px !important;
  align-items: flex-start !important;
  background: var(--reun-surface-2) !important;
  border: 0.5px solid var(--reun-border) !important;
}
.alert-banner .alert-icon {
  width: 18px;
  height: 18px;
  font-size: 14px;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 1px;
  color: inherit !important;
}
.alert-banner .alert-text { flex: 1; min-width: 0; }
.alert-banner .alert-title {
  font-size: 13px;
  font-weight: 600;
  color: var(--reun-text);
  line-height: 1.45;
}
.alert-banner .alert-desc {
  font-size: 12px;
  color: var(--reun-text-2);
  line-height: 1.5;
  margin-top: 2px;
}

/* 5 種變體 — soft 底色 + 細邊框 */
.alert-banner.alert-danger {
  background: var(--reun-err-soft) !important;
  border-color: rgba(255, 59, 48, 0.30) !important;
}
.alert-banner.alert-danger .alert-title { color: var(--reun-err); }

.alert-banner.alert-warn {
  background: var(--reun-warn-soft) !important;
  border-color: rgba(255, 149, 0, 0.30) !important;
}
.alert-banner.alert-warn .alert-title { color: var(--reun-warn); }

.alert-banner.alert-good {
  background: var(--reun-ok-soft) !important;
  border-color: rgba(52, 199, 89, 0.30) !important;
}
.alert-banner.alert-good .alert-title { color: var(--reun-ok); }

.alert-banner.alert-money {
  background: var(--reun-tint-soft) !important;
  border-color: rgba(0, 122, 255, 0.30) !important;
}
.alert-banner.alert-money .alert-title { color: var(--reun-tint); }

.alert-banner.alert-fire {
  background: rgba(255, 149, 0, 0.10) !important;
  border-color: rgba(255, 149, 0, 0.30) !important;
}
.alert-banner.alert-fire .alert-title { color: var(--reun-warn); }

/* 今日營運建議 panel container */
.daily-tips-panel {
  padding: 18px 22px 16px !important;
  margin-bottom: 18px !important;
}
.daily-tips-panel .panel-head {
  margin-bottom: 14px !important;
  padding-bottom: 10px !important;
  border-bottom: 0.5px solid var(--reun-border) !important;
}
.daily-tips-panel .panel-title {
  font-size: 14px !important;
  font-weight: 600 !important;
  color: var(--reun-text) !important;
}

/* ============================================================
 * Part M — 主卡視覺強化(B0 v2 2026-05-07)
 * 漸層 0.08 → 0.14 整卡帶藍 / 邊框 0.5px → 1px / 大字 44 → 50px
 * ============================================================ */

.hero-kpi-card {
  background: linear-gradient(180deg, rgba(0, 122, 255, 0.14) 0%, rgba(0, 122, 255, 0.03) 100%) !important;
  border: 1px solid rgba(0, 122, 255, 0.28) !important;
}
.hero-value {
  font-size: 50px !important;
  letter-spacing: -0.04em !important;
}
@media (max-width: 768px) {
  .hero-value { font-size: 38px !important; }
}

/* ============================================================
 * Part L — 期間 pill buttons · grid3 · sub-mini-card · typography fine-tuning v11
 * ============================================================ */

/* Period filter pill links (filter bar) — add padding so they look like buttons */
.card a[style*="border-radius:6px"],
.card a[style*="border-radius: 6px"] {
  padding: 5px 12px !important;
  display: inline-flex !important;
  align-items: center !important;
  font-weight: 500 !important;
  transition: opacity 120ms ease !important;
  white-space: nowrap !important;
  text-decoration: none !important;
}
.card a[style*="border-radius:6px"]:hover,
.card a[style*="border-radius: 6px"]:hover {
  opacity: 0.85 !important;
}

/* .grid3 — 3-column layout (used in some render functions) */
.grid3 {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 12px !important;
  margin-bottom: 16px !important;
}
@media (max-width: 900px) {
  .grid3 { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 480px) {
  .grid3 { grid-template-columns: 1fr !important; }
}

/* Sub-mini-cards inside .card (used in margin monitor and others) */
/* Targets divs with background:var(--reun-bg) + border-radius:8px inline style */
.card [style*="background:var(--reun-bg)"][style*="border-radius:8px"],
.card [style*="background: var(--reun-bg)"][style*="border-radius:8px"] {
  background: var(--reun-surface-2) !important;
  border-radius: var(--radius-md, 10px) !important;
  padding: 12px 14px !important;
  border: 0.5px solid var(--reun-border) !important;
}

/* Inline muted-label divs inside cards */
.card [style*="color:var(--reun-muted)"][style*="font-size:11px"],
.card [style*="color: var(--reun-muted)"][style*="font-size:11px"] {
  font-size: 10.5px !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  margin-bottom: 4px !important;
}

/* Inline large numbers inside sub-cards (font-size:16/18px + font-weight:700) */
.card [style*="font-size:16px"][style*="font-weight:700"],
.card [style*="font-size:18px"][style*="font-weight:700"] {
  font-size: 22px !important;
  font-weight: 600 !important;
  letter-spacing: -0.02em !important;
  line-height: 1.1 !important;
  font-variant-numeric: tabular-nums !important;
}

/* Card filter bar (period selector card) — match panel look */
.card[style*="display:flex"][style*="align-items:center"][style*="gap:12px"] {
  padding: 12px 18px !important;
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  flex-wrap: wrap !important;
}

/* Select inside filter card — tighten padding */
.card select {
  padding: 6px 10px !important;
  font-size: 13px !important;
}

/* Margin monitor progress bar gauge */
.card [style*="position:relative"][style*="height:24px"] {
  border-radius: var(--radius-pill) !important;
  overflow: hidden !important;
}

/* h3.muted section header (e.g. "📊 毛利率監控") */
h3.muted, .card > h3.muted:first-child {
  font-size: 12px !important;
  font-weight: 700 !important;
  color: var(--reun-muted) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  margin: 0 0 14px !important;
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
}
h3.muted > span,
.card > h3.muted:first-child > span {
  font-size: 11px !important;
  color: var(--reun-text-2) !important;
  font-weight: 500 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  margin-left: auto !important;
}

/* Page title (h1.page-title) — match cockpit 26px tight */
.page-title {
  font-size: 26px !important;
  font-weight: 600 !important;
  letter-spacing: -0.02em !important;
  line-height: 1.2 !important;
}


/* ============================================================
 * Part N — Margin monitor panel(B1 2026-05-07)
 * 對應 db-dashboard render_dashboard() 的 margin_monitor 段
 * ============================================================ */

.margin-monitor-panel {
  padding: 18px 22px 16px !important;
  margin-bottom: 14px !important;
}
.margin-monitor-panel .panel-head {
  margin-bottom: 16px !important;
  padding-bottom: 10px !important;
  border-bottom: 0.5px solid var(--reun-border) !important;
}
.margin-monitor-panel .panel-title {
  font-size: 14px !important;
}

.margin-monitor-body {
  display: flex;
  gap: 24px;
  flex-wrap: wrap;
  align-items: center;
}

/* 進度條 — 左半 */
.margin-progress {
  flex: 1;
  min-width: 240px;
}
.margin-progress-track {
  position: relative;
  height: 22px;
  background: var(--reun-surface-2);
  border-radius: 11px;
  overflow: hidden;
  border: 0.5px solid var(--reun-border);
}
.margin-progress-zone {
  position: absolute;
  top: 0;
  height: 100%;
  background: rgba(52, 199, 89, 0.14);
  border-left: 1.5px dashed var(--reun-ok);
  border-right: 1.5px dashed var(--reun-ok);
}
.margin-progress-fill {
  position: relative;
  height: 100%;
  border-radius: 11px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  font-weight: 600;
  color: #fff;
  min-width: 50px;
  font-variant-numeric: tabular-nums;
}
.margin-progress-ok   { background: var(--reun-ok); }
.margin-progress-warn { background: var(--reun-warn); }
.margin-progress-err  { background: var(--reun-err); }

.margin-progress-scale {
  display: flex;
  justify-content: space-between;
  font-size: 11px;
  color: var(--reun-text-2);
  margin-top: 6px;
  font-variant-numeric: tabular-nums;
}

/* 右半 3 個小 KPI — 用 .kpi.compact 自帶 */
.margin-stats-grid {
  flex: 1.5;
  min-width: 320px;
  gap: 8px !important;
}
@media (max-width: 768px) {
  .margin-monitor-body { flex-direction: column; align-items: stretch; }
  .margin-stats-grid { min-width: 0; }
}

.stat-mini {
  padding: 12px 14px !important;
  text-align: center;
  background: var(--reun-surface-2) !important;
  border: 0.5px solid var(--reun-border) !important;
  cursor: default !important;
}
.stat-mini:hover { transform: none !important; box-shadow: var(--shadow-sm) !important; }
.stat-mini .kpi-label {
  font-size: 10px !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  color: var(--reun-muted) !important;
  margin-bottom: 6px !important;
  display: block !important;
}
.stat-mini .kpi-value {
  font-size: 18px !important;
  font-weight: 600 !important;
  letter-spacing: -0.01em !important;
  font-variant-numeric: tabular-nums !important;
  line-height: 1.1 !important;
  margin-bottom: 0 !important;
}

/* ============================================================
 * Part O — Risk alerts panel(B1 2026-05-07)
 * 風險警示 panel — alert-banner pattern 已在 Part L,本檔只補 panel container
 * ============================================================ */

.risk-alerts-panel {
  padding: 18px 22px 16px !important;
  margin-bottom: 14px !important;
}
.risk-alerts-panel .panel-head {
  margin-bottom: 14px !important;
  padding-bottom: 10px !important;
  border-bottom: 0.5px solid var(--reun-border) !important;
}
.risk-alerts-panel .panel-title {
  font-size: 14px !important;
}

/* ============================================================
 * Part M — inline KPI values · flow bars · brand tags v11.1
 * ============================================================ */

/* Inline KPI values (font-size:28px or 24px + font-weight:700 inside .card) */
.card [style*="font-size:28px"][style*="font-weight:700"],
.card [style*="font-size:24px"][style*="font-weight:700"] {
  font-size: 28px !important;
  font-weight: 600 !important;
  letter-spacing: -0.03em !important;
  line-height: 1.05 !important;
  font-variant-numeric: tabular-nums !important;
  margin-bottom: 2px !important;
}

/* auto-grid cards (KOL overview KPI grid) */
.card[style*="text-align:center"] {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  padding: 18px 16px !important;
}

/* Flow progress bars: fat 20px bars thin to cockpit 6px */
.card [style*="height:20px"][style*="border-radius:4px"] {
  height: 6px !important;
  border-radius: 999px !important;
}
.card [style*="height:20px"][style*="border-radius:4px"] > div {
  height: 6px !important;
  font-size: 0 !important;
  color: transparent !important;
  display: block !important;
}

/* Tips/alert items inside card */
.card [style*="background:rgba"] {
  padding: 10px 14px !important;
  margin-bottom: 8px !important;
}
.card [style*="background:rgba"]:last-child {
  margin-bottom: 0 !important;
}

/* Table th — tighten to Linear style */
th {
  font-size: 10.5px !important;
  font-weight: 600 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  color: var(--reun-muted) !important;
  background: var(--reun-bg) !important;
  padding: 8px 14px !important;
}
td {
  font-size: 13px !important;
  padding: 10px 14px !important;
}
td.num {
  font-variant-numeric: tabular-nums !important;
  font-weight: 500 !important;
  letter-spacing: -0.01em !important;
}

/* ============================================================
 * Part N — alert-banner variants (danger/warn/good) + inner elements v11.2
 * ============================================================ */

/* Base alert-banner (already in cockpit-shell, but extend) */
.alert-banner {
  display: flex !important;
  align-items: flex-start !important;
  gap: 12px !important;
  padding: 12px 14px !important;
  border-radius: var(--radius-md, 10px) !important;
  margin-bottom: 8px !important;
  background: var(--reun-surface-2) !important;
  border: 0.5px solid var(--reun-border) !important;
}
.alert-banner:last-child {
  margin-bottom: 0 !important;
}

/* danger / warn / good variants */
.alert-banner.alert-danger {
  background: var(--reun-err-soft) !important;
  border-color: rgba(255, 59, 48, 0.2) !important;
}
.alert-banner.alert-warn {
  background: var(--reun-warn-soft) !important;
  border-color: rgba(255, 149, 0, 0.2) !important;
}
.alert-banner.alert-good {
  background: var(--reun-ok-soft) !important;
  border-color: rgba(52, 199, 89, 0.2) !important;
}
.alert-banner.alert-info {
  background: var(--reun-tint-soft) !important;
  border-color: var(--reun-tint-ring) !important;
}

/* inner icon */
.alert-banner .alert-icon,
.alert-banner .icon {
  font-size: 18px !important;
  flex-shrink: 0 !important;
  line-height: 1.3 !important;
  margin-top: 1px !important;
}

/* inner text block */
.alert-banner .alert-text,
.alert-banner .txt {
  flex: 1 !important;
  min-width: 0 !important;
}

/* title line */
.alert-banner .alert-title {
  font-size: 13px !important;
  font-weight: 600 !important;
  color: var(--reun-text) !important;
  margin-bottom: 3px !important;
}
.alert-banner.alert-danger .alert-title { color: var(--reun-err) !important; }
.alert-banner.alert-warn .alert-title { color: var(--reun-warn) !important; }
.alert-banner.alert-good .alert-title { color: var(--reun-ok) !important; }

/* description line */
.alert-banner .alert-desc,
.alert-banner .txt {
  font-size: 12.5px !important;
  color: var(--reun-text-2) !important;
  line-height: 1.5 !important;
}

/* risk-alerts-panel inside dashboard */
.risk-alerts-panel {
  margin-bottom: 14px !important;
}

/* panel inside .view — remove extra margin if already has bottom */
.panel + .panel { margin-top: 14px !important; }
