/* HeartBeat — uses the SPA tokens only */
#nxhb-wrap{--hb-ok:var(--lmm-green,#2fb36b);--hb-warn:#d99a1d;--hb-crit:var(--lmm-danger,#e5484d);--hb-line:var(--lmm-border2,var(--lmm-border))}
#nxhb-wrap *{box-sizing:border-box}
.nxhb-head-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.nxhb-period{width:auto;min-width:150px}
.nxhb-ai-chip{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:5px 9px;border:1px solid var(--hb-line);border-radius:2px;color:var(--lmm-text2)}
.nxhb-ai-chip.on{color:var(--hb-ok);border-color:var(--hb-ok)}
.nxhb-tabs{margin:4px 0 18px;overflow-x:auto;white-space:nowrap}
.nxhb-loading,.nxhb-empty{padding:48px 0;text-align:center;color:var(--lmm-text2)}
.nxhb-err{padding:14px 16px;border:1px solid var(--hb-crit);color:var(--hb-crit);border-radius:2px;margin:0 0 14px}
.nxhb-grid{display:grid;gap:14px}
.nxhb-hero{grid-template-columns:260px 1fr;align-items:stretch}
.nxhb-card{background:var(--lmm-surface);border:1px solid var(--lmm-border);border-radius:var(--lmm-radius,2px);padding:16px 18px;min-width:0}
.nxhb-card h4{margin:0 0 10px;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--lmm-text3);font-weight:700}
.nxhb-ring{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.nxhb-ring svg{width:150px;height:150px}
.nxhb-ring-n{font:800 40px var(--lmm-font-display,inherit);fill:var(--lmm-text)}
.nxhb-ring-l{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin-top:4px}
.tone-ok{color:var(--hb-ok)}.tone-good{color:var(--hb-ok)}.tone-warn{color:var(--hb-warn)}.tone-crit{color:var(--hb-crit)}
.nxhb-doms{display:grid;gap:7px;width:100%;margin-top:14px}
.nxhb-dom{display:grid;grid-template-columns:78px 1fr 28px;gap:8px;align-items:center;font-size:12px;color:var(--lmm-text2)}
.nxhb-bar{height:6px;background:var(--lmm-surface3,var(--lmm-bg));border-radius:2px;overflow:hidden}.nxhb-bar i{display:block;height:100%}
.nxhb-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.nxhb-kpi{border:1px solid var(--lmm-border);background:var(--lmm-surface2,var(--lmm-surface));padding:12px 14px;border-radius:2px;min-width:0}
.nxhb-kpi small{display:block;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--lmm-text3);font-weight:700}
.nxhb-kpi b{display:block;font:800 22px var(--lmm-font-display,inherit);letter-spacing:-.02em;margin:3px 0;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.nxhb-kpi span{font-size:12px;color:var(--lmm-text2)}
.nxhb-split{display:flex;height:12px;border-radius:2px;overflow:hidden;margin:8px 0 6px;background:var(--lmm-surface3,var(--lmm-bg))}.nxhb-split i{display:block;height:100%}
.nxhb-legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--lmm-text2)}.nxhb-legend em{display:inline-block;width:9px;height:9px;margin-right:5px;border-radius:2px;font-style:normal}
.nxhb-execs{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin:14px 0}
.nxhb-exec{cursor:pointer;display:flex;flex-direction:column;gap:8px;text-align:left;font:inherit;color:inherit;transition:border-color .15s,background .15s}
.nxhb-exec:hover{border-color:var(--lmm-green);background:var(--lmm-hover,var(--lmm-surface2))}
.nxhb-exec-top{display:flex;justify-content:space-between;align-items:center;gap:8px}
.nxhb-exec-who{display:flex;gap:10px;align-items:center;min-width:0}.nxhb-exec-ic{font-size:22px}
.nxhb-exec-who b{display:block;font-size:14px}.nxhb-exec-who span{font-size:11px;color:var(--lmm-text3);letter-spacing:.04em}
.nxhb-pill{font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:3px 7px;border-radius:2px;border:1px solid currentColor;white-space:nowrap}
.nxhb-exec-head{font:700 15px/1.3 var(--lmm-font-display,inherit);letter-spacing:-.01em}
.nxhb-exec-sum{font-size:12.5px;color:var(--lmm-text2);line-height:1.5;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.nxhb-exec-foot{font-size:11px;color:var(--lmm-text3);display:flex;justify-content:space-between;margin-top:auto}
.nxhb-two{grid-template-columns:3fr 2fr}
.nxhb-find{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;padding:11px 0;border-top:1px solid var(--lmm-border)}.nxhb-find:first-of-type{border-top:0}
.nxhb-dot{width:9px;height:9px;border-radius:50%;margin-top:6px;background:var(--hb-ok)}.nxhb-dot.warn{background:var(--hb-warn)}.nxhb-dot.crit{background:var(--hb-crit)}
.nxhb-find b{font-size:13.5px}.nxhb-find p{margin:2px 0 0;font-size:12.5px;color:var(--lmm-text2);line-height:1.45}.nxhb-find .act{color:var(--lmm-text);}
.nxhb-find .dm{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--lmm-text3);margin-left:8px;font-weight:700}
.nxhb-chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}
.nxhb-chip{font-size:12px;padding:4px 10px;border:1px solid var(--hb-line);border-radius:2px;background:none;color:var(--lmm-text2);cursor:pointer}.nxhb-chip.is-on{background:var(--lmm-green);color:var(--lmm-on-accent,#fff);border-color:var(--lmm-green)}
.nxhb-chart svg{width:100%;height:auto;display:block}.nxhb-chart text{fill:var(--lmm-text3);font-size:10px}
.nxhb-table-wrap{overflow-x:auto}
.nxhb-table-wrap table{min-width:520px}.nxhb-table-wrap td.r,.nxhb-table-wrap th.r{text-align:right;font-variant-numeric:tabular-nums}
.nxhb-sec{margin:20px 0 8px;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--lmm-text3);font-weight:700;display:flex;justify-content:space-between;align-items:center;gap:8px}
.nxhb-bar-row{display:grid;grid-template-columns:150px 1fr 70px;gap:8px;align-items:center;font-size:12.5px;margin:5px 0}
.nxhb-ctl{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:14px}
.nxhb-ctl .lmm-input{width:auto;min-width:140px}
.nxhb-checks .row{display:grid;grid-template-columns:auto 130px 1fr;gap:10px;padding:8px 0;border-top:1px solid var(--lmm-border);font-size:13px;align-items:start}.nxhb-checks .row:first-child{border-top:0}
.nxhb-checks .row small{color:var(--lmm-text3)}
/* reports */
.nxhb-types{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));margin-bottom:14px}
.nxhb-type{text-align:left;cursor:pointer;font:inherit;color:inherit;background:var(--lmm-surface);border:1px solid var(--lmm-border);border-radius:2px;padding:12px 14px}
.nxhb-type.is-on{border-color:var(--lmm-green);background:var(--lmm-hover,var(--lmm-surface2))}
.nxhb-type b{display:block;font-size:13.5px}.nxhb-type span{font-size:12px;color:var(--lmm-text2);line-height:1.4;display:block;margin-top:3px}.nxhb-type em{font-style:normal;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--lmm-text3);font-weight:700}
.nxhb-preview{margin-top:14px;border:1px solid var(--lmm-border);border-radius:2px;padding:18px;background:var(--lmm-surface);overflow-x:auto}
.nxhb-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:14px}
.nxhb-state{font-size:12px;color:var(--lmm-text2);margin-left:auto}
/* drawer */
.nxhb-overlay{position:fixed;top:0;left:0;bottom:0;right:var(--lmm-sidebar-w,240px);background:rgba(8,9,11,.55);z-index:9000;display:flex;align-items:stretch;justify-content:flex-end}
@media(max-width:768px){.nxhb-overlay{right:0}}
.nxhb-drawer{background:var(--lmm-surface);border-left:1px solid var(--hb-line);width:min(560px,100%);height:100%;display:flex;flex-direction:column;overflow:hidden;box-shadow:-28px 0 70px rgba(0,0,0,.38)}
.nxhb-drawer.is-wide{width:min(900px,100%)}
.nxhb-drawer-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:22px 28px 18px;border-bottom:1px solid var(--hb-line);background:var(--lmm-surface2,var(--lmm-surface))}
.nxhb-drawer-head h3{margin:0;font:800 21px/1.22 var(--lmm-font-display,inherit);letter-spacing:-.02em;color:var(--lmm-text);overflow-wrap:anywhere}
.nxhb-eyebrow{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--lmm-text3);font-weight:700;margin-bottom:4px}.nxhb-d-sub{font-size:12.5px;color:var(--lmm-text2);margin-top:4px}
.nxhb-drawer-close{width:32px;height:32px;flex:none;border-radius:2px;color:var(--lmm-text2);background:none;border:1px solid var(--hb-line);cursor:pointer}
.nxhb-drawer-body{padding:22px 28px 36px;overflow-y:auto;flex:1;min-height:0}
@media(max-width:600px){.nxhb-drawer-head,.nxhb-drawer-body{padding-left:18px;padding-right:18px}}
.nxhb-brief h5{margin:18px 0 6px;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--lmm-text3)}
.nxhb-brief p{font-size:13.5px;line-height:1.6;margin:0 0 9px;white-space:pre-line}
.nxhb-brief li{font-size:13px;line-height:1.5;margin:0 0 8px;list-style:none;padding-left:0}.nxhb-brief ul{margin:0;padding:0}
.nxhb-brief li small{display:block;color:var(--lmm-text2)}
.nxhb-ask{display:flex;gap:8px;margin-top:10px}.nxhb-ask .lmm-input{flex:1}
.nxhb-answer{margin-top:12px;padding:12px 14px;border:1px solid var(--lmm-border);background:var(--lmm-surface2,var(--lmm-surface));border-radius:2px;font-size:13.5px;line-height:1.55;white-space:pre-line}
.nxhb-form{display:grid;gap:12px}.nxhb-form label{display:grid;gap:4px;font-size:12px;color:var(--lmm-text2);font-weight:600}.nxhb-form .two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.nxhb-form .note{font-size:12px;color:var(--lmm-text3);line-height:1.5}
.nxhb-form .chk{display:flex;gap:8px;align-items:center;font-weight:500}
@media(max-width:860px){.nxhb-hero,.nxhb-two{grid-template-columns:1fr}.nxhb-bar-row{grid-template-columns:100px 1fr 62px}.nxhb-checks .row{grid-template-columns:auto 1fr}.nxhb-checks .row small{grid-column:2}}
.nxhb-type{display:flex;flex-direction:column;height:100%}

/* The SPA's .lmm-btn-outline is a colour modifier only; give it the same box as the other buttons */
#nxhb-wrap .lmm-btn-outline{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 18px;font-family:inherit;font-size:13px;font-weight:600;border-radius:var(--lmm-radius-sm,2px);cursor:pointer;transition:border-color .15s,color .15s}
#nxhb-wrap .lmm-btn-outline.lmm-btn-sm,#nxhb-wrap .lmm-btn-ghost.lmm-btn-sm{padding:6px 14px;font-size:12px}
#nxhb-wrap .lmm-btn-outline:disabled,#nxhb-wrap .lmm-btn-primary:disabled{opacity:.5;cursor:default}

/* 502 Support */
.nxhb-sup-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;flex-wrap:wrap;margin-bottom:12px}
.nxhb-sup-sub{margin:4px 0 0;font-size:13px;color:var(--lmm-text2);max-width:560px}
.nxhb-tno{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.04em}
.nxhb-newdot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--lmm-green);vertical-align:middle}
.nxhb-sup-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:12px;color:var(--lmm-text2);margin-bottom:12px}
.nxhb-thread{display:flex;flex-direction:column;gap:12px}
.nxhb-msg{max-width:88%;display:flex;flex-direction:column;gap:3px}.nxhb-msg .who{font-size:11px;color:var(--lmm-text3);font-weight:600}
.nxhb-msg .bub{padding:10px 12px;border:1px solid var(--lmm-border);border-radius:2px;font-size:13px;line-height:1.55;white-space:pre-wrap;word-break:break-word;background:var(--lmm-surface);color:var(--lmm-text)}
.nxhb-msg.me{align-self:flex-end}.nxhb-msg.me .who{text-align:right}.nxhb-msg.me .bub{background:var(--lmm-green);border-color:var(--lmm-green);color:var(--lmm-on-accent,#fff)}
.nxhb-note{margin-top:12px;padding:10px 12px;border:1px dashed var(--lmm-border);font-size:12px;color:var(--lmm-text2)}

/* Database Manager */
.nxhb-dbtabs{margin:4px 0 16px}
.nxhb-chat{display:flex;flex-direction:column;gap:12px;max-height:380px;overflow-y:auto;padding:4px 2px 10px}
.nxhb-chat .nxhb-msg{max-width:92%}
.nxhb-prop{margin-top:8px;padding:10px 12px;border:1px solid var(--lmm-border);border-left:3px solid var(--lmm-green);background:var(--lmm-surface2,var(--lmm-surface));font-size:13px;line-height:1.5;color:var(--lmm-text)}
.nxhb-prop small{display:block;color:var(--lmm-text3);font-size:11px;letter-spacing:.06em;text-transform:uppercase}
.nxhb-prop b{font-size:15px}
.nxhb-frow{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end}
.nxhb-frow label{margin:0}
.nxhb-x{width:32px;height:34px;border:1px solid var(--hb-line,var(--lmm-border));background:none;color:var(--lmm-text2);cursor:pointer;border-radius:2px}
.nxhb-flagon{display:inline-block;padding:8px 12px;border:1px solid var(--lmm-border);font-size:13px;color:var(--lmm-text)}
.nxhb-nums{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:12px}
.nxhb-nums div{border:1px solid var(--lmm-border);padding:12px 14px;background:var(--lmm-surface2,var(--lmm-surface))}
.nxhb-nums b{display:block;font-size:24px;letter-spacing:-.02em}.nxhb-nums span{font-size:12px;color:var(--lmm-text2)}
.nxhb-h5{margin:18px 0 6px;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--lmm-text3)}
.nxhb-ul{margin:0;padding-left:18px;font-size:13px;line-height:1.55;color:var(--lmm-text)}.nxhb-ul li{margin:0 0 5px}
.nxhb-kv{display:grid;grid-template-columns:130px 1fr;gap:6px 14px;font-size:13px;margin-top:14px}.nxhb-kv span{color:var(--lmm-text3)}.nxhb-kv b{font-weight:600;overflow-wrap:anywhere}
.nxhb-det{border:1px solid var(--lmm-border);background:var(--lmm-surface);margin:0 0 8px}
.nxhb-det>summary{cursor:pointer;padding:12px 14px;font-weight:600;font-size:13.5px;color:var(--lmm-text);list-style:none}
.nxhb-det>summary::-webkit-details-marker{display:none}
.nxhb-det>summary::before{content:'▸';display:inline-block;width:16px;color:var(--lmm-text3)}
.nxhb-det[open]>summary::before{content:'▾'}
.nxhb-hbody{padding:0 16px 14px 30px;font-size:13.5px;line-height:1.6;color:var(--lmm-text)}.nxhb-hbody p{margin:0 0 9px}
.nxhb-say{margin:8px 0 10px;padding:10px 12px;border-left:3px solid var(--lmm-green);background:var(--lmm-surface2,var(--lmm-surface));font-style:italic}
.nxhb-say small{display:block;font-style:normal;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--lmm-text3);margin-bottom:3px}
.nxhb-watch{color:var(--lmm-text2)}
.nxhb-helpnav{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px;position:sticky;top:0;z-index:2;background:var(--lmm-bg,var(--lmm-surface));padding:6px 0}
.nxhb-helpcard{margin-bottom:14px}.nxhb-helpcard p{font-size:13.5px;line-height:1.6;margin:0 0 9px}
.nxhb-steps{margin:0;padding-left:20px;font-size:13.5px;line-height:1.6}.nxhb-steps li{margin:0 0 7px}
.nxhb-never{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px}.nxhb-never div{border:1px solid var(--lmm-border);padding:12px 14px}.nxhb-never p{margin:4px 0 0;color:var(--lmm-text2)}
.nxhb-two2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.nxhb-cleanlist{margin:0;padding:6px 16px 12px 34px;font-size:13px;color:var(--lmm-text2);columns:2}
@media(max-width:700px){.nxhb-two2{grid-template-columns:1fr}.nxhb-nums{grid-template-columns:1fr}.nxhb-cleanlist{columns:1}.nxhb-kv{grid-template-columns:1fr}}
/* Compliance Officer */
.nxc-list{margin:0;padding-left:18px;font-size:13.5px;line-height:1.7;color:var(--lmm-text2)}
.nxc-meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:13px;color:var(--lmm-text2)}
.nxc-detail{white-space:pre-wrap;background:var(--lmm-surface2);border:1px solid var(--lmm-border);border-radius:6px;padding:10px 12px;font-size:13px;line-height:1.55}
.nxc-steps{display:grid;gap:6px}
.nxc-step{display:flex;gap:10px;align-items:flex-start;padding:8px 10px;border:1px solid var(--lmm-border);border-radius:6px;font-size:13px;line-height:1.45;cursor:pointer;font-weight:500;color:var(--lmm-text)}
.nxc-step small{display:block;color:var(--lmm-text3);font-weight:400;margin-top:2px}
.nxc-step.is-done{opacity:.65}.nxc-step.is-done span{text-decoration:line-through}
.nxc-step input{margin-top:3px}
.nxc-log{display:grid;gap:8px;font-size:13px;max-height:240px;overflow:auto}
.nxc-src{margin-top:10px;padding-top:8px;border-top:1px solid var(--lmm-border);font-size:12px;color:var(--lmm-text2);display:grid;gap:4px}
.nxc-pass{max-height:320px;overflow:auto;font-size:12.5px;line-height:1.5}
.nxc-pass p{margin:0 0 10px}

/* support attachments */
.nxhb-att{display:flex;flex-direction:column;gap:8px;align-items:flex-start}.nxhb-att-hint{font-size:11.5px;color:var(--lmm-text3)}
.nxhb-att-list{display:flex;flex-wrap:wrap;gap:6px}.nxhb-att-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--lmm-border);background:var(--lmm-surface2);padding:3px 6px 3px 4px;font-size:12px;max-width:100%}
.nxhb-att-chip img{width:28px;height:28px;object-fit:cover}.nxhb-att-chip .ic{width:28px;text-align:center}.nxhb-att-chip .nm{max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nxhb-att-chip small{color:var(--lmm-text3)}
.nxhb-att-chip .x{border:0;background:none;cursor:pointer;font-size:16px;line-height:1;color:var(--lmm-text2);padding:0 2px}
.nxhb-form.is-drop{outline:2px dashed var(--lmm-green);outline-offset:4px}
.nxhb-files{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px;align-items:flex-start;white-space:normal}
.nxhb-fimg{display:flex;flex-direction:column;gap:3px;max-width:100%}.nxhb-fthumb{max-width:180px;max-height:130px;border:1px solid var(--lmm-border);background:var(--lmm-surface2);cursor:zoom-in;display:block}.nxhb-fthumb.big{max-width:100%;max-height:none;cursor:zoom-out}
.nxhb-fimg small{font-size:11px;opacity:.85}.nxhb-fimg small a{color:inherit;text-decoration:underline}
.nxhb-fchip{display:inline-block;border:1px solid var(--lmm-border);background:var(--lmm-surface2);color:var(--lmm-text);padding:4px 8px;font-size:12px;text-decoration:none}.nxhb-fchip small{color:var(--lmm-text3)}
.nxhb-msg.me .nxhb-fchip{color:var(--lmm-text)}
