/* Modern industrial: deep blue + teal accents on neutral background */
:root { --mm-accent: #0d9488; --tblr-primary: #1d4ed8; --tblr-primary-rgb: 29, 78, 216; }
body { font-family: "Sarabun", "Noto Sans Thai", -apple-system, "Segoe UI", sans-serif; }
.navbar-vertical { background: #0f1e3d !important; }
.brand { display: flex; align-items: center; gap: .5rem; font-weight: 700; color: #fff !important; }
.brand i { color: #2dd4bf; font-size: 1.4rem; }
.brand-login { font-size: 1.6rem; font-weight: 700; color: var(--tblr-primary); }
.brand-login i { color: var(--mm-accent); }
.login-bg { background: linear-gradient(160deg, #eef2f7, #e0f2f1); }
[data-bs-theme="dark"] .login-bg { background: #111827; }
.topbar { border-bottom: 1px solid var(--tblr-border-color); }
.kpi .kpi-icon { width: 2.6rem; height: 2.6rem; border-radius: .6rem; display: flex; align-items: center; justify-content: center; font-size: 1.3rem; }
.kpi .kpi-value { font-size: 1.6rem; font-weight: 700; line-height: 1.1; }
.status-dot { display: inline-block; width: .55rem; height: .55rem; border-radius: 50%; background: currentColor; }
.mono { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
.topic-chip { font-family: ui-monospace, Consolas, monospace; font-size: .85em; background: var(--tblr-bg-surface-secondary); padding: .1rem .4rem; border-radius: .3rem; }
.table td, .table th { vertical-align: middle; }
.empty-row td { text-align: center; color: var(--tblr-secondary); padding: 2rem; }
.chart-box { height: 220px; position: relative; }
.chart-box svg { width: 100%; height: 100%; }
.pw-meter { height: 4px; border-radius: 2px; background: var(--tblr-border-color); overflow: hidden; }
.pw-meter > div { height: 100%; width: 0; transition: width .2s; }
