/* iom-console Platform section — mockup styles.
   Emulates Ant Design 6 + @iomete/ui-lib light theme. Tokens from style.md. */

:root{
  --bg:#ffffff; --bg-2:#f2eeeb; --fill-3:#f7f5f2;
  --border:#d0d0cd; --border-2:#e5e5e2;
  --text:#363636; --text-2:#5a5f66; --text-3:#858c9d;
  --ink:#202020;
  --success:#32b77f; --warning:#e8b500; --error:#e43920; --empty:#d0d0cd;
  --r-ctrl:4px; --r-card:6px;
  --sidebar-w:236px; --topbar-h:48px;
  --font:'Inter',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
}
*{box-sizing:border-box;}
html,body{margin:0;height:100%;}
body{font-family:var(--font);color:var(--text);background:var(--bg-2);font-size:14px;line-height:1.45;}
a{color:inherit;text-decoration:none;}
.muted{color:var(--text-3);}
.sec{color:var(--text-2);}

/* ---------- layout chrome ---------- */
.app{display:flex;height:100vh;overflow:hidden;}
.sidebar{width:var(--sidebar-w);flex:0 0 var(--sidebar-w);background:var(--bg);border-right:1px solid var(--border-2);
  display:flex;flex-direction:column;overflow:auto;}
.sb-top{padding:14px 16px;border-bottom:1px solid var(--border-2);display:flex;align-items:center;gap:8px;}
.sb-logo{width:22px;height:22px;border-radius:5px;background:var(--ink);color:#d3f52c;font-weight:800;
  display:grid;place-items:center;font-size:12px;}
.sb-back{font-size:12px;color:var(--text-3);display:flex;align-items:center;gap:6px;}
.sb-group{padding:14px 12px 4px;}
.sb-group h4{margin:0 0 6px;padding:0 8px;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);font-weight:600;}
.sb-item{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:var(--r-ctrl);font-size:13px;color:var(--text-2);cursor:pointer;margin-bottom:1px;}
.sb-item:hover{background:var(--fill-3);}
.sb-item.active{background:var(--bg-2);color:var(--text);font-weight:600;}
.sb-item.dim{color:var(--text-3);cursor:not-allowed;}
.sb-item .ico{width:16px;height:16px;flex:0 0 16px;}
.sb-item .soon{margin-left:auto;font-size:9px;letter-spacing:.06em;color:var(--text-3);border:1px solid var(--border);border-radius:10px;padding:1px 6px;}

.main{flex:1;display:flex;flex-direction:column;min-width:0;background:var(--bg);}
.topbar{height:var(--topbar-h);flex:0 0 var(--topbar-h);border-bottom:1px solid var(--border-2);
  background:var(--bg);display:flex;align-items:center;padding:0 24px;gap:8px;position:sticky;top:0;z-index:5;}
.crumb{font-size:13px;color:var(--text-3);display:flex;align-items:center;gap:8px;}
.crumb b{color:var(--text);font-weight:600;}
.crumb .sep{color:var(--border);}
.topbar .spacer{flex:1;}
.bell{width:18px;height:18px;color:var(--text-3);}
.content{flex:1;overflow:auto;padding:28px 32px 60px;}
.screen{display:none;}
.screen.active{display:block;}

/* ---------- page header ---------- */
.page-head{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:20px;}
.page-title{font-size:20px;font-weight:700;letter-spacing:-.01em;margin:0;}
.page-sub{font-size:13px;color:var(--text-3);margin-top:3px;}

/* ---------- buttons ---------- */
.btn{font-family:inherit;font-size:13px;border:1px solid var(--border);background:var(--bg);color:var(--text);
  padding:6px 14px;border-radius:var(--r-ctrl);cursor:pointer;display:inline-flex;align-items:center;gap:7px;line-height:1;}
.btn:hover{border-color:var(--text-3);}
.btn.primary{background:var(--ink);color:#fff;border-color:var(--ink);}
.btn.primary:hover{opacity:.9;}
.btn.sm{padding:4px 10px;font-size:12px;}
.btn.link{border:none;background:none;color:#2b6cb0;padding:2px 4px;}

/* ---------- cards ---------- */
.card{background:var(--bg);border:1px solid var(--border-2);border-radius:var(--r-card);}
.card.pad{padding:12px 16px;}
.banner{display:flex;align-items:stretch;gap:0;padding:0;border-radius:var(--r-card);
  border:1px solid var(--border-2);background:var(--bg);margin-bottom:22px;overflow:hidden;}
/* status block carries a tinted accent reflecting overall health */
.banner .health{display:flex;align-items:center;gap:12px;padding:16px 22px;min-width:230px;
  border-left:3px solid var(--border);}
.banner.is-ok .health{border-left-color:var(--success);background:rgba(50,183,127,.06);}
.banner.is-warn .health{border-left-color:var(--warning);background:rgba(232,197,0,.07);}
.banner.is-err .health{border-left-color:var(--error);background:rgba(228,57,32,.06);}
.banner .health .hi{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-size:15px;flex:0 0 30px;}
.banner.is-ok .health .hi{background:rgba(50,183,127,.16);color:#1f7a55;}
.banner.is-warn .health .hi{background:rgba(232,197,0,.18);color:#8a6d00;}
.banner.is-err .health .hi{background:rgba(228,57,32,.14);color:#a52b18;}
.banner .health .ht{font-size:14px;font-weight:700;line-height:1.2;}
.banner .health .hs{font-size:11.5px;color:var(--text-3);margin-top:1px;}
/* stat segments */
.banner .stats{display:flex;align-items:center;flex:1;}
.banner .stat{display:flex;flex-direction:column;gap:3px;padding:16px 24px;}
.banner .stat .top{display:flex;align-items:center;gap:7px;}
.banner .stat .n{font-size:22px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums;}
.banner .stat .l{font-size:11px;color:var(--text-3);}
.banner .vline{width:1px;align-self:stretch;background:var(--border-2);margin:12px 0;}
.banner .stat .n.warn{color:var(--warning);} .banner .stat .n.err{color:var(--error);} .banner .stat .n.ok{color:var(--success);}
/* right side: status filter chips + firing alerts */
.banner .filterbar{display:flex;align-items:center;gap:9px;margin-left:auto;padding:0 18px;flex-wrap:wrap;}
.banner .filterbar .vline{margin:10px 2px;}
.banner .stat.firing{flex-direction:row;align-items:center;gap:9px;padding:5px 13px;border-radius:16px;
  border:1px solid var(--border);cursor:pointer;}
.banner .stat.firing:hover{border-color:var(--text-3);background:var(--fill-3);}
.banner .stat.firing .top .n{font-size:17px;}
.banner .stat.firing .l{font-size:12px;color:var(--text-3);}

/* ---------- status pill / dot ---------- */
.status{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--text-2);}
.dot{width:8px;height:8px;border-radius:50%;flex:0 0 8px;}
.dot.ok{background:var(--success);} .dot.warn{background:var(--warning);}
.dot.err{background:var(--error);} .dot.empty{background:var(--empty);}
.pill{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;padding:2px 9px;border-radius:12px;border:1px solid var(--border);}
.pill.ok{color:#1f7a55;background:rgba(50,183,127,.12);border-color:rgba(50,183,127,.3);}
.pill.warn{color:#8a6d00;background:rgba(232,197,0,.14);border-color:rgba(232,197,0,.35);}
.pill.err{color:#a52b18;background:rgba(228,57,32,.1);border-color:rgba(228,57,32,.3);}
.pill.empty{color:var(--text-3);background:var(--bg-2);border-color:var(--border);}
.badge{display:inline-flex;align-items:center;font-size:11px;color:var(--text-2);background:var(--bg-2);border-radius:4px;padding:1px 7px;}

/* ---------- status filters (Overview) ---------- */
.filters{display:flex;gap:8px;margin-bottom:18px;flex-wrap:wrap;}
.chip{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;color:var(--text-2);
  border:1px solid var(--border);background:var(--bg);border-radius:16px;padding:5px 13px;cursor:pointer;}
.chip:hover{border-color:var(--text-3);}
.chip.active{background:var(--bg-2);border-color:var(--text-3);color:var(--text);font-weight:600;}
.chip .cnt{font-size:11px;color:var(--text-3);background:var(--fill-3);border-radius:10px;padding:0 7px;min-width:18px;text-align:center;}
.chip.active .cnt{background:var(--bg);}
.svc-empty{padding:48px 20px;text-align:center;color:var(--text-3);font-size:13px;}

/* ---------- service grid (Overview) ---------- */
.svc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:16px;}
.svc-card{cursor:pointer;transition:border-color .12s;}
.svc-card:hover{border-color:var(--text-3);}
.svc-card .top{display:flex;align-items:center;justify-content:space-between;}
.svc-card .name{font-size:13px;font-weight:600;}
.bars{display:flex;align-items:flex-end;gap:2px;height:26px;margin-top:12px;}
.bars i{flex:1;height:22px;border-radius:1px;background:var(--success);display:block;}
.bars i.warn{background:var(--warning);} .bars i.err{background:var(--error);} .bars i.empty{background:var(--empty);}
.svc-foot{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:11px;color:var(--text-3);}
.svc-foot .line{flex:1;height:1px;background:var(--border-2);}
.svc-meta{display:flex;gap:18px;margin-top:13px;padding-top:11px;border-top:1px solid var(--border-2);}
.svc-meta .m{display:flex;flex-direction:column;gap:3px;flex:1;}
.svc-meta .m .k{font-size:10.5px;color:var(--text-3);text-transform:uppercase;letter-spacing:.05em;}
.svc-meta .m .v{font-size:12px;font-weight:600;}
.mini{height:5px;border-radius:3px;background:var(--bg-2);overflow:hidden;margin-top:2px;}
.mini > i{display:block;height:100%;border-radius:3px;}

/* ---------- tabs ---------- */
.tabs{display:flex;gap:2px;border-bottom:1px solid var(--border-2);margin:18px 0 22px;}
.tab{padding:9px 15px;font-size:13px;color:var(--text-2);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;}
.tab:hover{color:var(--text);}
.tab.active{color:var(--ink);font-weight:600;border-bottom-color:var(--ink);}
.tabpane{display:none;} .tabpane.active{display:block;}

/* ---------- details (GenericDetails) ---------- */
.details{display:grid;grid-template-columns:1fr 1fr;gap:0 48px;max-width:840px;}
.drow{display:grid;grid-template-columns:18px 130px 1fr;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid var(--border-2);}
.drow .ico{color:var(--text-3);}
.drow .lab{font-size:13px;color:var(--text-3);}
.drow .val{font-size:13px;font-weight:500;}

/* events */
.events{margin-top:24px;}
.events h3{font-size:14px;font-weight:600;margin:0 0 10px;}
.evt{display:flex;gap:12px;padding:9px 0;border-bottom:1px solid var(--border-2);font-size:12.5px;}
.evt .t{color:var(--text-3);white-space:nowrap;font-variant-numeric:tabular-nums;}
.evt .tag{font-size:10.5px;font-weight:600;padding:1px 7px;border-radius:4px;white-space:nowrap;}
.evt .tag.warn{color:#8a6d00;background:rgba(232,197,0,.16);}
.evt .tag.err{color:#a52b18;background:rgba(228,57,32,.12);}
.evt .tag.info{color:var(--text-2);background:var(--bg-2);}

/* ---------- metrics ---------- */
.toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;}
.toolbar h3{font-size:16px;font-weight:600;margin:0;}
.refresh{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-3);}
select.mini-sel{font-family:inherit;font-size:12px;border:1px solid var(--border);border-radius:var(--r-ctrl);padding:3px 6px;background:var(--bg);color:var(--text);}
.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
@media(max-width:1100px){.metric-grid{grid-template-columns:repeat(2,1fr);}}
.metric .ml{font-size:12px;color:var(--text-3);display:flex;align-items:center;gap:5px;}
.metric .mv{font-size:12px;color:var(--text-2);margin-top:7px;}
.prog{height:8px;border-radius:5px;background:var(--bg-2);overflow:hidden;margin-top:8px;}
.prog > i{display:block;height:100%;border-radius:5px;}
.metric .pct{font-weight:600;}

.chart-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px;}
.chart h4{font-size:13px;font-weight:600;margin:0 0 2px;}
.chart .csub{font-size:11px;color:var(--text-3);margin-bottom:10px;}
.spark{display:flex;align-items:flex-end;gap:3px;height:90px;}
.spark i{flex:1;background:#cfe0d8;border-radius:2px 2px 0 0;}
.spark.lat i{background:#e7d6c2;}
.legend{display:flex;gap:14px;margin-top:9px;font-size:11px;color:var(--text-3);}
.legend span{display:flex;align-items:center;gap:5px;}
.legend i{width:9px;height:9px;border-radius:2px;display:block;}

/* ---------- logs ---------- */
.log-tools{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap;}
.log-tools input[type=text]{font-family:inherit;font-size:12px;border:1px solid var(--border);border-radius:var(--r-ctrl);padding:5px 9px;width:240px;}
.seg{display:inline-flex;border:1px solid var(--border);border-radius:var(--r-ctrl);overflow:hidden;}
.seg button{font-family:inherit;font-size:11.5px;border:none;background:var(--bg);padding:5px 10px;cursor:pointer;color:var(--text-2);border-right:1px solid var(--border);}
.seg button:last-child{border-right:none;}
.seg button.on{background:var(--bg-2);color:var(--text);font-weight:600;}
.logpane{background:#1c1c1c;border-radius:var(--r-card);padding:14px 16px;font-family:'DM Mono',ui-monospace,Menlo,monospace;
  font-size:12px;line-height:1.7;color:#d6d6d6;max-height:360px;overflow:auto;}
.logpane .ts{color:#7a7a7a;}
.logpane .lv{font-weight:600;margin:0 8px;}
.logpane .lv.info{color:#5ab0ff;} .logpane .lv.warn{color:#e8c54a;} .logpane .lv.err{color:#ff7a7a;}
.note{display:flex;align-items:center;gap:9px;font-size:12px;color:var(--text-3);background:var(--fill-3);
  border:1px dashed var(--border);border-radius:var(--r-card);padding:10px 14px;margin-top:14px;}

/* ---------- resources form ---------- */
.form{max-width:680px;}
.callout{display:flex;gap:11px;border-left:3px solid var(--warning);background:rgba(232,197,0,.08);
  border-radius:0 var(--r-card) var(--r-card) 0;padding:12px 16px;font-size:12.5px;color:var(--text-2);margin-bottom:22px;}
.field{margin-bottom:20px;}
.field > label{display:block;font-size:13px;font-weight:500;margin-bottom:7px;}
.field .hint{font-size:11.5px;color:var(--text-3);margin-top:6px;}
.input{font-family:inherit;font-size:13px;border:1px solid var(--border);border-radius:var(--r-ctrl);padding:7px 10px;width:100%;}
.row2{display:flex;gap:16px;}
.row2 .field{flex:1;}
.igroup{display:flex;align-items:stretch;border:1px solid var(--border);border-radius:var(--r-ctrl);overflow:hidden;}
.igroup input{border:none;padding:7px 10px;font-family:inherit;font-size:13px;width:100%;outline:none;}
.igroup .addon{background:var(--fill-3);border-left:1px solid var(--border);padding:7px 11px;font-size:12px;color:var(--text-3);display:flex;align-items:center;}
.switchrow{display:flex;align-items:center;gap:10px;}
.switch{width:34px;height:19px;border-radius:11px;background:var(--border);position:relative;cursor:pointer;transition:background .15s;flex:0 0 34px;}
.switch::after{content:"";position:absolute;top:2px;left:2px;width:15px;height:15px;border-radius:50%;background:#fff;transition:left .15s;}
.switch.on{background:var(--success);} .switch.on::after{left:17px;}
.form-foot{display:flex;gap:10px;justify-content:flex-end;border-top:1px solid var(--border-2);padding-top:18px;margin-top:6px;max-width:680px;}
.audit{font-size:11.5px;color:var(--text-3);margin-top:14px;}

/* ---------- table (DataTableV2) ---------- */
.tablewrap{border:1px solid var(--border-2);border-radius:var(--r-card);overflow:hidden;}
.table-head{display:flex;align-items:center;justify-content:space-between;padding:11px 14px;border-bottom:1px solid var(--border-2);}
.table-head .title{font-size:14px;font-weight:600;}
.table-head .tools{display:flex;gap:8px;align-items:center;}
table{width:100%;border-collapse:collapse;font-size:13px;}
thead th{background:var(--fill-3);text-align:left;font-weight:600;color:var(--text-2);font-size:12px;padding:10px 14px;border-bottom:1px solid var(--border-2);}
tbody td{padding:11px 14px;border-bottom:1px solid var(--border-2);}
tbody tr:last-child td{border-bottom:none;}
tbody tr:hover{background:var(--fill-3);}
td .mono{font-family:'DM Mono',ui-monospace,monospace;font-size:12px;}

.coming{display:grid;place-items:center;text-align:center;padding:70px 20px;color:var(--text-3);}
.coming .ic{font-size:30px;margin-bottom:12px;}
.coming h3{color:var(--text-2);margin:0 0 6px;font-size:16px;}

/* ---------- drawer (Sheet / FormDrawerV2) ---------- */
/* backdrop + right slide-out used for the "New alert rule" form */
.drawer-backdrop{position:fixed;inset:0;background:rgba(32,32,32,.32);opacity:0;visibility:hidden;
  transition:opacity .2s;z-index:50;}
.drawer-backdrop.open{opacity:1;visibility:visible;}
.drawer{position:fixed;top:0;right:0;height:100%;width:440px;max-width:92vw;background:var(--bg);
  border-left:1px solid var(--border-2);box-shadow:-8px 0 28px rgba(0,0,0,.12);
  display:flex;flex-direction:column;transform:translateX(100%);transition:transform .22s ease;z-index:51;}
.drawer-backdrop.open .drawer{transform:translateX(0);}
.drawer-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;
  border-bottom:1px solid var(--border-2);flex:0 0 auto;}
.drawer-head .dtitle{font-size:16px;font-weight:600;}
.drawer-x{border:none;background:none;font-size:18px;line-height:1;color:var(--text-3);cursor:pointer;
  padding:2px 6px;border-radius:var(--r-ctrl);}
.drawer-x:hover{background:var(--fill-3);color:var(--text);}
.drawer-body{flex:1;overflow:auto;padding:20px;}
.drawer-body .form{max-width:none;}
.drawer-body .field:last-child{margin-bottom:0;}
.drawer-foot{flex:0 0 auto;display:flex;gap:10px;justify-content:flex-end;
  border-top:1px solid var(--border-2);padding:14px 20px;}
/* styled select consistent with .input */
select.input{appearance:none;-webkit-appearance:none;background:var(--bg);cursor:pointer;
  padding-right:30px;
  background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='%23858c9d' d='M0 0l5 6 5-6z'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 11px center;}
/* condition row: operator + threshold(+addon) */
.cond-row{display:flex;gap:10px;align-items:stretch;}
.cond-row select.input{flex:0 0 84px;}
.cond-row .igroup{flex:1;}
/* standalone leading addon (e.g. "max" before a rate-limit cap) */
.cond-row .addon-pre{flex:0 0 auto;border:1px solid var(--border);border-radius:var(--r-ctrl);background:var(--fill-3);padding:7px 11px;font-size:12px;color:var(--text-3);display:flex;align-items:center;}
/* required-field guard */
.field.invalid .input,.field.invalid .igroup{border-color:var(--error);}
.field.invalid .input:focus,.field.invalid .igroup input:focus{outline:none;}

/* ---------- attribution ---------- */
/* filter bar: stacked label + select, wraps like the chip row */
.attr-filters{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:16px;}
.attr-f{display:flex;flex-direction:column;gap:5px;}
.attr-f > label{font-size:11px;color:var(--text-3);text-transform:uppercase;letter-spacing:.05em;}
.attr-f select.input{width:auto;min-width:150px;}
/* compute + run row */
.attr-run{display:flex;align-items:flex-end;gap:12px;margin-bottom:18px;flex-wrap:wrap;}
.attr-run .attr-f select.input{min-width:170px;}
.attr-run-note{font-size:12px;}
/* generated SQL: details + dark code pane */
.attr-sql{border:1px solid var(--border-2);border-radius:var(--r-card);margin-bottom:24px;overflow:hidden;}
.attr-sql > summary{list-style:none;cursor:pointer;font-size:13px;font-weight:600;padding:11px 14px;background:var(--fill-3);user-select:none;}
.attr-sql > summary::-webkit-details-marker{display:none;}
.attr-sql > summary::before{content:"\25B8";color:var(--text-3);margin-right:8px;display:inline-block;font-size:11px;}
.attr-sql[open] > summary::before{content:"\25BE";}
.attr-sqlpane{border-radius:0;max-height:none;margin:0;white-space:pre;color:#d6d6d6;}
.attr-sqlpane .kw{color:#5ab0ff;} .attr-sqlpane .fn{color:#e8c54a;} .attr-sqlpane .str{color:#7ed99f;}
/* results table: inline proportion bar on the Requests cell (folds in the old bar list) */
#attr-tbody .reqcell{position:relative;display:flex;align-items:center;min-width:140px;}
#attr-tbody .reqbar{position:absolute;left:0;top:50%;transform:translateY(-50%);height:16px;border-radius:3px;background:var(--bg-2);}
#attr-tbody tr.hot .reqbar{background:rgba(228,57,32,.18);}
#attr-tbody .reqn{position:relative;font-variant-numeric:tabular-nums;padding-left:8px;}
/* guardrails: capacity reference line (resources → recommended ceiling) */
.gr-capacity{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:14px 0 0;padding:11px 15px;border:1px solid var(--border);border-radius:var(--r-card);background:var(--bg-2);font-size:12.5px;}
.gr-capacity .cap-k{color:var(--text-3);}
.gr-capacity .cap-v{font-weight:600;font-variant-numeric:tabular-nums;}
.gr-capacity .cap-sep{width:1px;height:14px;background:var(--border);}
.gr-capacity .cap-bar{flex:1 1 120px;min-width:120px;height:7px;border-radius:4px;background:var(--bg);overflow:hidden;}
.gr-capacity .cap-bar > i{display:block;height:100%;border-radius:4px;}
/* service filter in the table head */
.gr-svc-filter{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--text-3);}
.gr-svc-filter select{font-size:12px;padding:5px 26px 5px 9px;}
/* recommendation panel inside the New-limit drawer */
.rec-panel{display:flex;gap:9px;align-items:flex-start;margin-top:10px;padding:9px 11px;border-radius:var(--r-ctrl);background:rgba(43,108,176,.07);border:1px solid rgba(43,108,176,.18);font-size:12px;line-height:1.5;}
.rec-panel .rec-i{color:#2b6cb0;flex:0 0 auto;}
.rec-panel.over{background:rgba(228,57,32,.07);border-color:rgba(228,57,32,.25);}
.rec-panel.over .rec-i{color:var(--error);}
.hint.err{color:var(--error);}
/* guardrails table: breaching row tint + the "throttling X" sub-note */
#gr-tbody tr.breach{background:rgba(228,57,32,.05);}
#gr-tbody tr.breach:hover{background:rgba(228,57,32,.09);}
#gr-tbody .gr-name{font-weight:500;}
#gr-tbody .gr-note{font-size:11px;color:var(--error);margin-top:3px;}
/* results table: hot row tint + clickable service principal */
#attr-tbody tr.hot{background:rgba(228,57,32,.05);}
#attr-tbody tr.hot:hover{background:rgba(228,57,32,.09);}
#attr-tbody .pname.svc{cursor:pointer;color:#2b6cb0;}
#attr-tbody .pname.svc:hover{text-decoration:underline;}
#attr-tbody .hot-pill{margin-left:7px;}
