@font-face{font-family:"JetBrains Mono";src:url("./fonts/jetbrains-mono.woff2") format("woff2");font-weight:400 700;font-display:swap}
@font-face{font-family:"Work Sans";src:url("./fonts/work-sans.woff2") format("woff2");font-weight:400 700;font-display:swap}
/* ---- Design tokens: spacing 4/8/12/16/24/32, radius 10/14, one shadow system ---- */
:root{
  --s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--r:14px;--r-sm:10px;
  --font:"Work Sans",system-ui,sans-serif;--mono:"JetBrains Mono",ui-monospace,monospace;
  --fs-xs:12px;--fs-sm:13px;--fs:15px;--fs-md:17px;--fs-lg:21px;--fs-xl:28px;--fs-2xl:40px;
}
[data-theme=dark]{
  --bg:#20242d;--surface:#242a34;--raised:#2b323e;--inset:#1b2028;--text:#f8fafc;--text-2:#c4cedb;--text-3:#98a6b8;--line:#3b4553;
  --sh-dark:#12161c;--sh-light:#384252;--accent:#72b0ff;--accent-2:#4e91ee;
  --ok:#42e2ad;--warn:#ffc45e;--err:#ff7c8f;--crit:#ff5572;--info:#70c7ff;
}
[data-theme=light]{
  --bg:#f0f3f7;--surface:#f4f6f9;--raised:#ffffff;--inset:#e3e8ef;--text:#111827;--text-2:#354154;--text-3:#586579;--line:#c5cdd8;
  --sh-dark:#c3cad4;--sh-light:#ffffff;--accent:#175fc7;--accent-2:#104c9f;
  --ok:#087a55;--warn:#945b08;--err:#bd2942;--crit:#95142b;--info:#126ca9;
}
[data-accent=teal]{--accent:#22c3b0;--accent-2:#169a8a}
[data-accent=violet]{--accent:#9b7bff;--accent-2:#7a5ae6}
[data-accent=amber]{--accent:#f0a33a;--accent-2:#c9821d}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--text);font:400 var(--fs)/1.5 var(--font);-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit;color:inherit}
a{color:var(--accent);text-decoration:none}
.num,.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
svg.i{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
/* neumorphic primitives */
.raised{background:var(--raised);border:1px solid color-mix(in oklab,var(--line) 78%,transparent);border-radius:var(--r);box-shadow:6px 6px 14px var(--sh-dark),-6px -6px 14px var(--sh-light)}
.inset{background:var(--inset);border-radius:var(--r-sm);box-shadow:inset 3px 3px 7px var(--sh-dark),inset -3px -3px 7px var(--sh-light)}
/* ---- shell ---- */
.app{display:grid;grid-template-columns:260px 1fr;min-height:100vh}
.app.collapsed{grid-template-columns:76px 1fr}
.sidebar{position:sticky;top:0;height:100vh;overflow-y:auto;padding:var(--s4) var(--s3);background:var(--surface);border-right:1px solid var(--line);z-index:30}
.brand{display:flex;align-items:center;gap:var(--s3);padding:var(--s2) var(--s2) var(--s4)}
.brand .logo{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;color:var(--accent)}
.brand b{font:700 var(--fs-sm)/1.2 var(--mono);letter-spacing:.08em}.brand small{display:block;color:var(--text-3);font-size:var(--fs-xs)}
.nav-group{margin-top:var(--s4)}
.nav-group h6{margin:0 0 var(--s2);padding:0 var(--s3);font:600 11px/1 var(--mono);letter-spacing:.14em;color:var(--text-3)}
.nav-item{display:flex;align-items:center;gap:var(--s3);width:100%;padding:10px var(--s3);border:0;background:none;border-radius:var(--r-sm);color:var(--text-2);cursor:pointer;text-align:left;font-size:var(--fs-sm);font-weight:500}
.nav-item:hover{color:var(--text);background:var(--raised)}
.nav-item.on{color:var(--accent);background:var(--inset);box-shadow:inset 3px 3px 7px var(--sh-dark),inset -3px -3px 7px var(--sh-light)}
.nav-item .badge{margin-left:auto}
.app.collapsed .nav-group h6,.app.collapsed .nav-item span,.app.collapsed .brand div,.app.collapsed .nav-item .badge{display:none}
.app.collapsed .nav-item{justify-content:center}
.main{min-width:0;display:flex;flex-direction:column}
.topbar{position:sticky;top:0;z-index:20;display:grid;grid-template-columns:minmax(170px,1fr) minmax(200px,420px) auto;align-items:center;gap:var(--s4);padding:var(--s3) var(--s5);background:color-mix(in oklab,var(--bg) 88%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.tb-left{display:flex;align-items:center;gap:var(--s3);min-width:0}
.tb-left .title{min-width:0}.tb-left h1{margin:0;font-size:var(--fs-md);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.crumbs{display:flex;gap:6px;font-size:var(--fs-xs);color:var(--text-3);white-space:nowrap;overflow:hidden}.crumbs a{color:var(--text-3)}.crumbs a:hover{color:var(--accent)}
.tb-right{display:flex;align-items:center;justify-content:flex-end;gap:var(--s2)}
.icon-btn{width:38px;height:38px;display:grid;place-items:center;border:0;border-radius:12px;background:var(--raised);color:var(--text-2);cursor:pointer;box-shadow:4px 4px 9px var(--sh-dark),-4px -4px 9px var(--sh-light);position:relative}
.icon-btn:hover{color:var(--accent);filter:brightness(1.12)}.icon-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.icon-btn:active{box-shadow:inset 3px 3px 6px var(--sh-dark),inset -3px -3px 6px var(--sh-light)}
.icon-btn .dot{position:absolute;top:6px;right:6px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--err);color:#fff;font:700 10px/16px var(--mono)}
.search{display:flex;align-items:center;gap:var(--s2);padding:0 var(--s3);height:40px}
.search input{flex:1;min-width:0;border:0;background:none;outline:none;font-size:var(--fs-sm)}
.search kbd{font:500 11px var(--mono);color:var(--text-3);border:1px solid var(--line);border-radius:6px;padding:1px 6px}
.sys{display:flex;align-items:center;gap:var(--s2);padding:0 var(--s3);height:38px;font-size:var(--fs-xs);font-weight:600;white-space:nowrap;border-radius:12px}
.live{display:flex;align-items:center;gap:6px;font:700 11px var(--mono);letter-spacing:.08em;padding:0 var(--s3);height:38px;border-radius:12px;white-space:nowrap}
.live i,.sys i,.st i{width:8px;height:8px;border-radius:50%;background:currentColor;display:inline-block;flex:none}
.live.on{color:var(--ok)}.live.on i{animation:pulse 1.6s infinite}.live.off{color:var(--warn)}.live.lost{color:var(--err)}
@keyframes pulse{0%{box-shadow:0 0 0 0 color-mix(in oklab,var(--ok) 70%,transparent)}70%{box-shadow:0 0 0 7px transparent}100%{box-shadow:0 0 0 0 transparent}}
.conn{position:fixed;left:50%;bottom:var(--s5);transform:translateX(-50%);z-index:60;padding:10px var(--s4);border-radius:12px;font-size:var(--fs-sm);font-weight:600}
.conn.lost{color:var(--err)}.conn.ok{color:var(--ok)}
.content{padding:var(--s5);max-width:1500px;width:100%;margin:0 auto}
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--s4);margin-bottom:var(--s5);flex-wrap:wrap}
.page-head h2{margin:0;font-size:var(--fs-xl);font-weight:600;letter-spacing:-.01em}
.page-head p{margin:var(--s1) 0 0;color:var(--text-2);font-size:var(--fs-sm);max-width:720px}
.meta{display:flex;align-items:center;gap:var(--s3);font-size:var(--fs-xs);color:var(--text-3);font-family:var(--mono)}
/* ---- grid & cards ---- */
.grid{display:grid;gap:var(--s4)}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}.g6{grid-template-columns:repeat(6,minmax(0,1fr))}
.span2{grid-column:span 2}.span3{grid-column:span 3}
.card{padding:var(--s5);min-width:0}
.card h3{margin:0 0 var(--s4);font-size:var(--fs-sm);font-weight:600;color:var(--text-2);letter-spacing:.02em;display:flex;align-items:center;gap:var(--s2);justify-content:space-between}
.section-title{margin:var(--s6) 0 var(--s3);font:600 11px/1 var(--mono);letter-spacing:.14em;color:var(--text-3);text-transform:uppercase}
.kpi{padding:var(--s4) var(--s5);display:flex;flex-direction:column;gap:var(--s2);min-width:0}
.kpi .top{display:flex;align-items:center;justify-content:space-between;gap:var(--s2)}
.kpi .lbl{font-size:var(--fs-sm);color:var(--text-2);font-weight:500}
.kpi .ic{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;color:var(--accent)}
.kpi .val{font:600 var(--fs-xl)/1.1 var(--mono)}
.kpi .row{display:flex;align-items:center;justify-content:space-between;gap:var(--s2);font-size:var(--fs-xs);color:var(--text-3)}
.chg{font:600 var(--fs-xs) var(--mono)}.chg.up{color:var(--ok)}.chg.down{color:var(--err)}.chg.flat{color:var(--text-3)}
.kpi .link{font-size:var(--fs-xs);font-weight:600}
.mini{display:flex;flex-direction:column;gap:2px;padding:var(--s4)}.mini b{font:600 var(--fs-lg) var(--mono)}.mini span{font-size:var(--fs-xs);color:var(--text-2)}
.nodata{color:var(--text-3);font:500 var(--fs-sm) var(--font)}
/* health */
.health{display:grid;grid-template-columns:auto 1fr;gap:var(--s6);align-items:center}
.ring{--p:0;width:170px;height:170px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--hc,var(--ok)) calc(var(--p)*1%),var(--inset) 0);box-shadow:6px 6px 14px var(--sh-dark),-6px -6px 14px var(--sh-light)}
.ring>div{width:132px;height:132px;border-radius:50%;background:var(--raised);display:grid;place-items:center;text-align:center;box-shadow:inset 4px 4px 9px var(--sh-dark),inset -4px -4px 9px var(--sh-light)}
.ring b{font:700 var(--fs-xl) var(--mono)}.ring small{display:block;font-size:var(--fs-xs);color:var(--text-3)}
.comp{display:grid;gap:var(--s2)}
.comp a{display:grid;grid-template-columns:120px 1fr 90px;align-items:center;gap:var(--s3);padding:var(--s2) var(--s3);border-radius:var(--r-sm);color:var(--text)}
.comp a:hover{background:var(--inset)}
.bar{height:8px;border-radius:5px;background:var(--inset);box-shadow:inset 2px 2px 4px var(--sh-dark),inset -2px -2px 4px var(--sh-light);overflow:hidden}.bar i{display:block;height:100%;border-radius:5px;background:var(--ok)}
.bar.warn i{background:var(--warn)}.bar.err i{background:var(--err)}
/* status badges (one system) */
.st{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font:600 11px/1.6 var(--mono);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;background:color-mix(in oklab,currentColor 13%,transparent)}
.st.ok{color:var(--ok)}.st.warn{color:var(--warn)}.st.err{color:var(--err)}.st.crit{color:var(--crit)}.st.info{color:var(--info)}.st.mute{color:var(--text-3)}
.badge{min-width:22px;padding:1px 7px;border-radius:999px;background:var(--err);color:#fff;font:700 11px/18px var(--mono);text-align:center}
/* tables */
.tbl-wrap{overflow-x:auto;border-radius:var(--r-sm)}
table.tbl{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}
.tbl th{text-align:left;font:600 11px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);padding:var(--s3);border-bottom:1px solid var(--line);white-space:nowrap}
.tbl td{padding:var(--s3);border-bottom:1px solid var(--line);vertical-align:middle;white-space:nowrap}
.tbl td.wrap{white-space:normal;word-break:break-word;min-width:260px}
.tbl tr.click{cursor:pointer}.tbl tr.click:hover td{background:var(--inset)}
.tbl tr:last-child td{border-bottom:0}
.who b{display:block;font-weight:600}.who small{color:var(--text-3);font-family:var(--mono);font-size:var(--fs-xs)}
/* toolbars */
.toolbar{display:flex;flex-wrap:wrap;gap:var(--s2);align-items:center;margin-bottom:var(--s4)}
.field{display:flex;flex-direction:column;gap:4px;font-size:var(--fs-xs);color:var(--text-3)}
.input,.select,textarea.input{height:40px;padding:0 var(--s3);border:0;outline:none;min-width:140px;background:var(--inset);border-radius:var(--r-sm);box-shadow:inset 3px 3px 7px var(--sh-dark),inset -3px -3px 7px var(--sh-light);font-size:var(--fs-sm)}
textarea.input{height:auto;min-height:110px;padding:var(--s3);width:100%;resize:vertical}
.input:focus,.select:focus{box-shadow:inset 3px 3px 7px var(--sh-dark),inset -3px -3px 7px var(--sh-light),0 0 0 2px color-mix(in oklab,var(--accent) 55%,transparent)}
.btn{height:40px;padding:0 var(--s4);border:0;border-radius:var(--r-sm);background:var(--raised);color:var(--text);font-size:var(--fs-sm);font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:var(--s2);box-shadow:4px 4px 9px var(--sh-dark),-4px -4px 9px var(--sh-light)}
.btn:hover{color:var(--accent);filter:brightness(1.08)}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn:active{box-shadow:inset 3px 3px 6px var(--sh-dark),inset -3px -3px 6px var(--sh-light)}
.btn.primary{background:var(--accent);color:#fff}.btn.primary:hover{background:var(--accent-2);color:#fff}
.btn.danger{color:var(--err)}.btn.sm{height:32px;padding:0 var(--s3);font-size:var(--fs-xs)}
.btn[disabled]{opacity:.5;cursor:not-allowed}
.seg{display:inline-flex;padding:4px;gap:4px}.seg button{border:0;background:none;padding:6px 12px;border-radius:8px;font:600 var(--fs-xs) var(--mono);color:var(--text-2);cursor:pointer}
.seg button.on{background:var(--raised);color:var(--accent);box-shadow:3px 3px 7px var(--sh-dark),-3px -3px 7px var(--sh-light)}
.tabs{display:flex;gap:var(--s2);flex-wrap:wrap;margin-bottom:var(--s4)}
.pager{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);margin-top:var(--s4);font-size:var(--fs-xs);color:var(--text-3)}
/* feed */
.feed{display:flex;flex-direction:column}
.feed .ev{display:grid;grid-template-columns:76px 10px 1fr auto;gap:var(--s3);align-items:center;padding:10px var(--s2);border-bottom:1px solid var(--line);font-size:var(--fs-sm)}
.feed .ev:last-child{border-bottom:0}
.feed time{font:500 var(--fs-xs) var(--mono);color:var(--text-3)}
.feed .dotc{width:8px;height:8px;border-radius:50%;background:var(--info)}.feed .ok .dotc{background:var(--ok)}.feed .error .dotc{background:var(--err)}.feed .warning .dotc{background:var(--warn)}
.feed .ev small{color:var(--text-3);font-size:var(--fs-xs)}
.feed .ev.new{animation:flash 1.2s}
@keyframes flash{from{background:color-mix(in oklab,var(--accent) 18%,transparent)}to{background:transparent}}
/* charts */
.chart{width:100%;height:180px;display:block}.chart.sm{height:120px}
.chart .grid-l{stroke:var(--line);stroke-width:1}
.chart .ln{fill:none;stroke:var(--accent);stroke-width:2}.chart .ar{fill:color-mix(in oklab,var(--accent) 16%,transparent)}
.chart .ln2{fill:none;stroke:var(--ok);stroke-width:2}.chart .ln3{fill:none;stroke:var(--err);stroke-width:2}
.chart .bx{fill:var(--accent)}.chart .bx.err{fill:var(--err)}
.chart text{fill:var(--text-3);font:10px var(--mono)}
.legend{display:flex;gap:var(--s4);font-size:var(--fs-xs);color:var(--text-3);margin-top:var(--s2)}.legend i{display:inline-block;width:10px;height:3px;border-radius:2px;margin-right:6px;vertical-align:middle}
.spark{width:100%;height:34px;display:block}.spark path{fill:none;stroke:var(--accent);stroke-width:1.6}
/* kv */
.kv{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--s3)}
.kv>div{padding:var(--s3)}.kv span{display:block;font-size:var(--fs-xs);color:var(--text-3);margin-bottom:2px}.kv b{font:600 var(--fs) var(--mono);word-break:break-word}
/* tree */
.tree ul{list-style:none;margin:0;padding-left:var(--s5);border-left:1px dashed var(--line)}
.tree>ul{border:0;padding:0}
.tree li{margin:var(--s2) 0}
.tree .node{display:inline-flex;align-items:center;gap:var(--s2);padding:6px var(--s3);border-radius:var(--r-sm);font-size:var(--fs-sm)}
.tree a.node{color:var(--text)}.tree a.node:hover{background:var(--inset)}
.tree .mk{font:700 var(--fs-sm) var(--mono)}.tree .ok .mk{color:var(--ok)}.tree .warn .mk{color:var(--warn)}.tree .bad .mk{color:var(--err)}
.tree .note{color:var(--err);font-size:var(--fs-xs)}
/* states */
.skel{border-radius:var(--r);background:linear-gradient(90deg,var(--inset) 0,var(--raised) 50%,var(--inset) 100%);background-size:200% 100%;animation:sk 1.3s infinite}
@keyframes sk{to{background-position:-200% 0}}
.empty,.errbox{padding:var(--s6) var(--s5);text-align:center}
.empty b,.errbox b{display:block;font-size:var(--fs-md);margin-bottom:var(--s1)}
.empty p,.errbox p{margin:0 auto var(--s3);color:var(--text-2);font-size:var(--fs-sm);max-width:480px}
.errbox b{color:var(--err)}
.loading-ind{display:inline-flex;align-items:center;gap:var(--s2);font-size:var(--fs-xs);color:var(--text-3)}
.spinner{width:14px;height:14px;border-radius:50%;border:2px solid var(--line);border-top-color:var(--accent);animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
/* overlays */
.menu-pop{position:absolute;top:48px;right:0;width:340px;max-height:70vh;overflow:auto;padding:var(--s3);z-index:50}
.menu-pop .it{display:block;padding:10px var(--s3);border-radius:var(--r-sm);color:var(--text);font-size:var(--fs-sm)}.menu-pop .it:hover{background:var(--inset)}
.menu-pop .it small{display:block;color:var(--text-3);font-size:var(--fs-xs)}
.search-pop{position:absolute;top:46px;left:0;right:0;max-height:70vh;overflow:auto;padding:var(--s3);z-index:50}
.search-pop h6{margin:var(--s3) var(--s2) var(--s1);font:600 11px var(--mono);letter-spacing:.12em;color:var(--text-3);text-transform:uppercase}
.toast{position:fixed;right:var(--s5);bottom:var(--s5);z-index:70;padding:var(--s3) var(--s4);font-size:var(--fs-sm);font-weight:600;max-width:360px}
.toast.bad{color:var(--err)}
.backdrop{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:25;display:none}
dialog{border:0;padding:0;background:transparent;color:var(--text)}
dialog::backdrop{background:rgba(0,0,0,.5)}
dialog .box{padding:var(--s5);width:min(460px,92vw)}
dialog .box h3{margin:0 0 var(--s2)}dialog .box p{color:var(--text-2);margin:0 0 var(--s4)}
.actions{display:flex;gap:var(--s2);justify-content:flex-end;flex-wrap:wrap}
.check{display:inline-flex;align-items:center;gap:var(--s2);font-size:var(--fs-sm);cursor:pointer}
.check input{width:18px;height:18px;accent-color:var(--accent)}
pre.log{margin:0;white-space:pre-wrap;word-break:break-word;font:12px/1.6 var(--mono);color:var(--text-2);padding:var(--s3);max-height:360px;overflow:auto}
.lvl-DEBUG{color:var(--text-3)}.lvl-INFO{color:var(--info)}.lvl-WARNING{color:var(--warn)}.lvl-ERROR{color:var(--err)}.lvl-CRITICAL{color:var(--crit)}
.denied{max-width:440px;margin:18vh auto;padding:var(--s6);text-align:center}
/* ---- responsive ---- */
@media (max-width:1200px){.g6{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:1024px){ /* tablet: collapsible sidebar */
  .app{grid-template-columns:76px 1fr}.app .nav-group h6,.app .nav-item span,.app .brand div,.app .nav-item .badge{display:none}.app .nav-item{justify-content:center}
  .app.expanded{grid-template-columns:260px 1fr}.app.expanded .nav-group h6,.app.expanded .brand div{display:block}.app.expanded .nav-item span{display:inline}.app.expanded .nav-item{justify-content:flex-start}
  .topbar{grid-template-columns:auto 1fr auto}.sys span,.live span.t{display:none}
  .g3{grid-template-columns:repeat(2,minmax(0,1fr))}.span3{grid-column:span 2}
}
@media (max-width:720px){ /* mobile: sidebar becomes drawer, tables become cards */
  .app,.app.collapsed,.app.expanded{grid-template-columns:1fr}
  .sidebar{position:fixed;inset:0 auto 0 0;width:280px;transform:translateX(-100%);transition:transform .2s}
  .app.drawer .sidebar{transform:none}.app.drawer .backdrop{display:block}
  .app .nav-group h6,.app .brand div{display:block}.app .nav-item span{display:inline}.app .nav-item{justify-content:flex-start}.app .nav-item .badge{display:inline-block}
  .topbar{grid-template-columns:auto 1fr auto;padding:var(--s2) var(--s3);gap:var(--s2)}
  .topbar .crumbs{display:none}.tb-center{grid-column:1/-1;grid-row:2}
  .tb-right .sys,.tb-right .prof{display:none}
  .content{padding:var(--s4) var(--s3)}
  .g2,.g3{grid-template-columns:minmax(0,1fr)}.g4,.g6{grid-template-columns:repeat(2,minmax(0,1fr))}.kpi{padding:var(--s3)}.kpi .val{font-size:var(--fs-lg)}.kpi .row{flex-wrap:wrap}.span2,.span3{grid-column:auto}
  .health{grid-template-columns:1fr;justify-items:center}.comp{width:100%}.comp a{grid-template-columns:90px 1fr 70px}
  .page-head h2{font-size:var(--fs-lg)}
  table.tbl.cards thead{display:none}
  table.tbl.cards tr{display:block;padding:var(--s3);margin-bottom:var(--s3);border-radius:var(--r-sm);background:var(--inset)}
  table.tbl.cards td{display:flex;justify-content:space-between;gap:var(--s3);padding:6px 0;border:0;white-space:normal;text-align:right}
  table.tbl.cards td::before{content:attr(data-l);font:600 11px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);text-align:left}
  table.tbl.cards td.wrap{min-width:0}
  .feed .ev{grid-template-columns:64px 8px 1fr}.feed .ev .st{display:none}
  .menu-pop{position:fixed;left:var(--s3);right:var(--s3);top:110px;width:auto}
}

.spark-ph{height:34px}

/* RTL (Arabic) */
[dir=rtl] body{font-family:"Work Sans",Tahoma,"Segoe UI",sans-serif}
[dir=rtl] .sidebar{border-right:0;border-left:1px solid var(--line)}
[dir=rtl] .nav-item,[dir=rtl] .tbl th,[dir=rtl] table.tbl.cards td::before{text-align:right}
[dir=rtl] .nav-item .badge{margin-left:0;margin-right:auto}
[dir=rtl] .tree ul{padding-left:0;padding-right:var(--s5);border-left:0;border-right:1px dashed var(--line)}
[dir=rtl] .menu-pop{right:auto;left:0}
[dir=rtl] .toast{right:auto;left:var(--s5)}
[dir=rtl] .legend i{margin-right:0;margin-left:6px}
[dir=rtl] .kpi .v,[dir=rtl] .mono,[dir=rtl] input{direction:ltr;unicode-bidi:isolate}
[dir=rtl] .tbl th,[dir=rtl] .eyebrow{letter-spacing:0}
@media (max-width:900px){[dir=rtl] .sidebar{inset:0 0 0 auto;transform:translateX(100%)}}
