:root{
  --bg:#0d1117; --bg2:#131a24; --panel:#161d29; --border:#232c3d;
  --text:#e6edf3; --muted:#8b98a9; --accent:#3ea6ff; --accent2:#58a6ff;
  --ok:#3fb950; --warn:#d29922; --err:#f85149; --radius:10px;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-size:15px}
a{color:var(--accent2);text-decoration:none}
.topbar{display:flex;align-items:center;justify-content:space-between;padding:10px 18px;background:var(--bg2);border-bottom:1px solid var(--border);flex-wrap:wrap;gap:8px}
.brand{font-weight:600;color:var(--text)}
.brand span{color:var(--muted);font-weight:400;font-size:13px}
.topnav{display:flex;gap:16px}
.topbar-user{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--muted)}
.content{padding:18px;max-width:1200px;margin:0 auto}
.btn{background:var(--panel);border:1px solid var(--border);color:var(--text);padding:6px 12px;border-radius:8px;cursor:pointer;font-size:14px}
.btn:hover{border-color:var(--accent)}
.btn-primary{background:var(--accent);border-color:var(--accent);color:#04121f;font-weight:600}
.btn-ghost{background:transparent}
.btn-danger{border-color:var(--err);color:var(--err)}
.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin-bottom:14px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px}
.tx-card{cursor:pointer;transition:border-color .15s}
.tx-card:hover{border-color:var(--accent)}
.tx-card h3{margin:0 0 4px;font-size:18px}
.tx-card .freq{color:var(--muted);font-size:13px;margin-bottom:10px}
.badge{display:inline-block;padding:2px 8px;border-radius:20px;font-size:12px;font-weight:600}
.badge-ok{background:rgba(63,185,80,.15);color:var(--ok)}
.badge-warn{background:rgba(210,153,34,.15);color:var(--warn)}
.badge-err{background:rgba(248,81,73,.15);color:var(--err)}
.metrics{display:grid;grid-template-columns:1fr 1fr;gap:6px 14px;font-size:13px;margin-top:10px}
.metrics div span{color:var(--muted)}
.metrics b{float:right}
.section-title{font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:22px 0 8px}
table{width:100%;border-collapse:collapse;font-size:14px}
th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border)}
th{color:var(--muted);font-weight:500;font-size:12px;text-transform:uppercase}
tr:hover td{background:rgba(255,255,255,.02)}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:16px}
.tab{padding:8px 14px;cursor:pointer;color:var(--muted);border-bottom:2px solid transparent}
.tab.active{color:var(--text);border-color:var(--accent)}
.login-wrap{display:flex;align-items:center;justify-content:center;min-height:90vh}
.login-box{width:320px;padding:28px}
.login-box h2{margin-top:0}
input,select,textarea{width:100%;background:var(--bg2);border:1px solid var(--border);color:var(--text);padding:8px 10px;border-radius:8px;font-size:14px;margin-bottom:10px}
label{font-size:12px;color:var(--muted);display:block;margin-bottom:4px}
.error-msg{color:var(--err);font-size:13px;margin-top:6px;min-height:16px}
.cmd-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}
.pill{display:inline-block;padding:1px 8px;border-radius:20px;font-size:11px;background:var(--bg2);color:var(--muted);border:1px solid var(--border)}
.flex-between{display:flex;justify-content:space-between;align-items:center}
.muted{color:var(--muted)}
.sync-row{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid var(--border)}
.big-status{font-size:22px;font-weight:700;text-align:center;padding:14px}
canvas{max-width:100%}
@media(max-width:600px){.metrics{grid-template-columns:1fr}}
.config-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0 14px}.config-tab{background:var(--bg2);color:var(--muted);border:1px solid var(--border);padding:6px 10px;border-radius:7px;cursor:pointer}.config-tab.active{color:var(--text);border-color:var(--accent)}.config-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px 16px}.config-grid label{margin-bottom:0}.config-field small{display:block;color:var(--muted);margin-top:-6px;margin-bottom:6px}.rds-highlight{font-size:16px}.chart-legend{font-size:11px;color:var(--muted)}
.footer{color:var(--muted);text-align:center;padding:18px 12px 26px;font-size:12px}

/* v1.3 realtime diagnostics */
.tx-card{position:relative;overflow:hidden}.tx-card.health-warn{}
.client-health{display:flex;align-items:center;gap:8px;padding:7px 9px;border-radius:8px;margin:9px 0;font-size:12px;border:1px solid var(--border)}
.client-health>span{font-weight:800;font-size:10px;letter-spacing:.06em}.client-health>div{display:flex;gap:5px;flex-wrap:wrap}
.health-ok{border-color:rgba(63,185,80,.35);background:rgba(63,185,80,.06)}.health-ok>span{color:var(--ok)}
.health-warn{border-color:rgba(210,153,34,.45);background:rgba(210,153,34,.07)}.health-warn>span{color:var(--warn)}
.health-bad{border-color:rgba(248,81,73,.5);background:rgba(248,81,73,.08)}.health-bad>span{color:var(--err)}
.issue-chip{padding:1px 5px;border-radius:5px;background:var(--bg2)}.issue-warn{color:var(--warn)}.issue-bad{color:var(--err)}
.metric-good{color:var(--ok)}.metric-warn{color:var(--warn)!important}.metric-bad{color:var(--err)!important}
.metric-wrap{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.heartbeat-line{margin-top:9px;font-size:12px}
.config-raw{margin-top:14px;min-height:520px;resize:vertical;font-family:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;font-size:12px;line-height:1.5;white-space:pre;tab-size:2}
.pill-ok{border-color:rgba(63,185,80,.4);color:var(--ok)}.pill-warn{border-color:rgba(210,153,34,.4);color:var(--warn)}.pill-err{border-color:rgba(248,81,73,.4);color:var(--err)}
@media(max-width:760px){.dashboard-metrics{grid-template-columns:1fr}.client-health{align-items:flex-start;flex-direction:column}}

/* Settings and readable history charts */
[hidden]{display:none!important}
.check-label{display:flex;align-items:center;gap:8px;margin:10px 0 16px;font-size:14px;color:var(--text)}
.check-label input{width:auto;margin:0}
.settings-channels{align-items:start}
.settings-channels .config-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.settings-channels h3,.card h3{margin-top:0}
.password-form{max-width:460px}
.table-scroll{overflow-x:auto}
#panel-charts canvas{display:block;width:100%;height:225px;touch-action:pan-y}
.chart-summary{font-size:12px;color:var(--muted);margin:6px 0 0;line-height:1.6}
.chart-tooltip{position:absolute;z-index:2;pointer-events:none;padding:6px 8px;border:1px solid var(--border);border-radius:6px;background:var(--bg2);color:var(--text);font-size:12px;white-space:pre-line;max-width:95%}
#panel-charts .card{position:relative;min-width:0}
.tabs{overflow-x:auto}
@media(max-width:380px){.grid{grid-template-columns:minmax(0,1fr)}.content{padding:12px}}
