/* Nexum Training Desk — portal tokens only (--lmm-*): same fonts, surfaces, radii and buttons as the rest of the portal. */
.dx-wrap { font-family: var(--lmm-font); color: var(--lmm-text); --dx-ok: #52b043; --dx-warn: #e0a030; --dx-bad: var(--lmm-danger); }
.dx-wrap [hidden] { display: none !important; }
.dx-wrap button { font-family: inherit; cursor: pointer; }
.dx-muted { color: var(--lmm-text2); font-size: 13px; }
.dx-mono { font-family: var(--lmm-mono); }
.dx-loading, .dx-empty { text-align: center; color: var(--lmm-text3); padding: 40px 16px; }
.dx-wrap .lmm-btn-outline.lmm-btn-sm, .dx-wrap .lmm-btn-sm.lmm-btn-outline, .dx-wrap .dx-btn { display: inline-flex; align-items: center; gap: 6px; padding: 7px 14px; font-size: 13px; font-weight: 600; border-radius: var(--lmm-radius-sm); border: 1px solid var(--lmm-border2); background: transparent; color: var(--lmm-text); text-decoration: none; }
.dx-wrap .lmm-btn-outline:hover { border-color: var(--lmm-green); color: var(--lmm-green); }
.dx-wrap .lmm-btn-primary { padding: 9px 18px; }
.dx-wrap .lmm-btn-primary[disabled], .dx-wrap .lmm-btn-outline[disabled] { opacity: .5; cursor: default; }
.dx-danger { color: var(--dx-bad) !important; border-color: rgba(224,82,82,.35) !important; }

/* tabs */
.dx-tabs, .dx-tabbar { display: flex; gap: 4px; margin: 16px 0 20px; border-bottom: 1px solid var(--lmm-border); flex-wrap: wrap; }
.dx-tab { padding: 10px 18px; font-size: .92rem; font-weight: 600; color: var(--lmm-text2); background: none; border: 0; border-bottom: 2px solid transparent; margin-bottom: -1px; transition: color .15s, border-color .15s; }
.dx-tab:hover { color: var(--lmm-text); }
.dx-tab.active { color: var(--lmm-green); border-bottom-color: var(--lmm-green); }
.dx-panel { display: none; } .dx-panel.active { display: block; }
.dx-sub { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 16px; }
.dx-chip { padding: 5px 12px; font-size: 12px; font-weight: 600; border-radius: 999px; background: transparent; border: 1px solid var(--lmm-border2); color: var(--lmm-text2); }
.dx-chip:hover { border-color: var(--lmm-green); color: var(--lmm-green); }
.dx-chip.on { background: var(--lmm-green-glow); border-color: var(--lmm-green-dim); color: var(--lmm-green); }

/* cards, kpis, pills */
.dx-card { background: var(--lmm-surface); border: 1px solid var(--lmm-border); border-radius: var(--lmm-radius); box-shadow: var(--lmm-shadow); padding: 20px 22px; margin-bottom: 18px; }
.dx-card h3 { font-size: 1rem; font-weight: 700; margin: 0 0 4px; }
.dx-card h4 { font-size: .76rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--lmm-text3); margin: 16px 0 6px; }
.dx-hint { font-size: .85rem; color: var(--lmm-text2); line-height: 1.45; margin: 2px 0 10px; }
.dx-kpis { display: flex; gap: 16px; margin-bottom: 20px; flex-wrap: wrap; }
.dx-kpi { flex: 1; min-width: 150px; background: var(--lmm-surface); border: 1px solid var(--lmm-border); border-radius: var(--lmm-radius); padding: 14px 18px; display: flex; flex-direction: column; gap: 4px; }
.dx-kpi-l { font-size: .76rem; color: var(--lmm-text2); text-transform: uppercase; letter-spacing: .03em; }
.dx-kpi-v { font-family: var(--lmm-mono); font-size: 1.5rem; font-weight: 600; }
.dx-kpi-s { font-size: .78rem; color: var(--lmm-text3); }
.dx-pill { display: inline-block; padding: 2px 9px; border-radius: 999px; font-size: 11px; font-weight: 700; letter-spacing: .02em; border: 1px solid var(--lmm-border2); color: var(--lmm-text2); white-space: nowrap; }
.dx-pill.gold { background: var(--lmm-green-glow); border-color: var(--lmm-green-dim); color: var(--lmm-green); }
.dx-pill.ok { background: rgba(82,176,67,.12); border-color: rgba(82,176,67,.3); color: var(--dx-ok); }
.dx-pill.bad { background: rgba(224,82,82,.1); border-color: rgba(224,82,82,.3); color: var(--dx-bad); }
.dx-pill.warn { background: rgba(224,160,48,.12); border-color: rgba(224,160,48,.3); color: var(--dx-warn); }
.dx-score { font-family: var(--lmm-mono); font-weight: 700; font-size: 15px; } .dx-score.pass { color: var(--dx-ok); } .dx-score.warn { color: var(--dx-warn); } .dx-score.bad { color: var(--dx-bad); }
.dx-bar { height: 7px; border-radius: 4px; background: var(--lmm-border); overflow: hidden; } .dx-bar > i { display: block; height: 100%; background: var(--lmm-green); border-radius: 4px; }
.dx-wrap .lmm-table-wrap { overflow-x: auto; } .dx-row { cursor: pointer; } .dx-row:hover td { background: var(--lmm-hover); }

/* forms */
.dx-form-row { display: flex; gap: 14px; flex-wrap: wrap; margin-bottom: 12px; } .dx-field { flex: 1; min-width: 200px; display: flex; flex-direction: column; gap: 5px; } .dx-field label { font-size: .78rem; font-weight: 600; color: var(--lmm-text2); }
.dx-field small { font-weight: 400; color: var(--lmm-text3); }
.dx-area { width: 100%; resize: vertical; line-height: 1.45; min-height: 64px; }
.dx-chk { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; cursor: pointer; }
.dx-editor { border: 1px solid var(--lmm-border2); border-radius: var(--lmm-radius-sm); background: var(--lmm-surface); }
.dx-editor-bar { display: flex; gap: 2px; padding: 6px; border-bottom: 1px solid var(--lmm-border); flex-wrap: wrap; } .dx-editor-bar button { background: none; border: 1px solid transparent; border-radius: 6px; padding: 4px 9px; font-size: 13px; color: var(--lmm-text); } .dx-editor-bar button:hover { border-color: var(--lmm-border2); }
.dx-editor-body { min-height: 180px; padding: 12px; font-size: 14.5px; line-height: 1.6; outline: none; } .dx-editor-body:focus { box-shadow: inset 0 0 0 1px var(--lmm-green-dim); }
.dx-itemrow { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border: 1px solid var(--lmm-border); border-radius: var(--lmm-radius-sm); margin-bottom: 8px; background: var(--lmm-surface); } .dx-itemrow .grow { flex: 1; min-width: 0; } .dx-itemrow .grow b { display: block; }

/* drawer */
.dx-drawer-back { position: fixed; top: 0; bottom: 0; left: 0; right: var(--lmm-sidebar-w, 240px); background: rgba(0,0,0,.35); z-index: 9998; }
.dx-drawer { position: fixed; top: 0; bottom: 0; right: var(--lmm-sidebar-w, 240px); width: min(900px, 94%); background: var(--lmm-surface); border-left: 1px solid var(--lmm-border); box-shadow: -10px 0 30px rgba(0,0,0,.18); z-index: 9999; display: flex; flex-direction: column; transform: translateX(30px); opacity: 0; transition: transform .2s, opacity .2s; }
.dx-drawer.open { transform: none; opacity: 1; }
.dx-drawer-head { display: flex; align-items: center; gap: 12px; padding: 16px 20px; border-bottom: 1px solid var(--lmm-border); } .dx-drawer-head h3 { margin: 0; font-size: 1.05rem; flex: 1; }
.dx-drawer-body { flex: 1; overflow: auto; padding: 20px; } .dx-drawer-body.flush { padding: 0; display: flex; } .dx-drawer-body iframe { flex: 1; width: 100%; border: 0; background: #fff; }
@media (max-width: 900px) { .dx-drawer-back { right: 0; } .dx-drawer { right: 0; width: 100%; } }

.dx-big { font-family: var(--lmm-mono); font-size: 2.6rem; font-weight: 700; line-height: 1; }
.dx-toast { position: fixed; bottom: 24px; left: 50%; transform: translate(-50%, 20px); opacity: 0; background: var(--lmm-surface); color: var(--lmm-text); border: 1px solid var(--lmm-green-dim); border-radius: var(--lmm-radius-sm); padding: 10px 18px; font-size: 13.5px; z-index: 10000; transition: all .25s; box-shadow: var(--lmm-shadow); } .dx-toast.open { opacity: 1; transform: translate(-50%, 0); } .dx-toast.err { border-color: var(--dx-bad); color: var(--dx-bad); }
@media (max-width: 900px) { .dx-learn, .dx-sim { grid-template-columns: 1fr; } .dx-lessons { position: static; } .dx-manual { flex-wrap: wrap; } .dx-tab { padding: 10px 12px; } }

/* DebtorIndex */
.dx-wrap { --dx-a: #52b043; --dx-b: #4a9fd8; --dx-c: #e0a030; --dx-d: #8b8b8b; }
.dx-tier { display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; border-radius: 6px; font-family: var(--lmm-mono); font-size: 12px; font-weight: 700; color: #fff; background: var(--dx-d); }
.dx-tier.A { background: var(--dx-a); } .dx-tier.B { background: var(--dx-b); } .dx-tier.C { background: var(--dx-c); } .dx-tier.D { background: var(--dx-d); } .dx-tier.none { background: transparent; border: 1px dashed var(--lmm-border2); color: var(--lmm-text3); }
.dx-pct { font-family: var(--lmm-mono); font-weight: 600; }
.dx-split { display: grid; grid-template-columns: 1.4fr 1fr; gap: 18px; align-items: start; } .dx-split.even { grid-template-columns: 1fr 1fr; } .dx-split > .dx-card { margin-bottom: 0; }
@media (max-width: 1100px) { .dx-split, .dx-split.even { grid-template-columns: 1fr; } }
.dx-toolbar { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; margin-bottom: 14px; } .dx-toolbar .grow { flex: 1; }
.dx-wrap input.lmm-input, .dx-wrap select.lmm-input { padding: 8px 12px; font-size: 13px; }
.dx-tbl { width: 100%; border-collapse: collapse; font-size: 13px; } .dx-tbl th { text-align: left; font-size: .72rem; text-transform: uppercase; letter-spacing: .04em; color: var(--lmm-text3); font-weight: 700; padding: 8px 10px; border-bottom: 1px solid var(--lmm-border); white-space: nowrap; }
.dx-tbl td { padding: 9px 10px; border-bottom: 1px solid var(--lmm-border); vertical-align: middle; } .dx-tbl tr.dx-row { cursor: pointer; } .dx-tbl tr.dx-row:hover td { background: var(--lmm-hover); } .dx-tbl td.num, .dx-tbl th.num { text-align: right; font-family: var(--lmm-mono); }
.dx-tbl .sub { display: block; font-size: 11.5px; color: var(--lmm-text3); font-family: var(--lmm-font); }
.dx-chips { display: flex; gap: 5px; flex-wrap: wrap; } .dx-r { display: inline-block; font-size: 11px; padding: 1px 7px; border-radius: 999px; border: 1px solid var(--lmm-border2); color: var(--lmm-text2); } .dx-r.up { color: var(--dx-ok); border-color: rgba(82,176,67,.35); background: rgba(82,176,67,.08); } .dx-r.dn { color: var(--dx-warn); border-color: rgba(224,160,48,.35); background: rgba(224,160,48,.08); }
.dx-hbars { display: flex; flex-direction: column; gap: 9px; } .dx-hb { display: grid; grid-template-columns: 150px 1fr 110px; gap: 10px; align-items: center; font-size: 13px; } .dx-hb .lab { color: var(--lmm-text2); } .dx-hb .val { text-align: right; font-family: var(--lmm-mono); font-size: 12.5px; }
.dx-hb .trk { height: 12px; background: var(--lmm-border); border-radius: 6px; overflow: hidden; } .dx-hb .trk > i { display: block; height: 100%; border-radius: 6px; background: var(--lmm-green); } .dx-hb.A .trk > i { background: var(--dx-a); } .dx-hb.B .trk > i { background: var(--dx-b); } .dx-hb.C .trk > i { background: var(--dx-c); } .dx-hb.D .trk > i { background: var(--dx-d); }
.dx-ring { position: relative; width: 120px; height: 120px; flex: none; } .dx-ring svg { transform: rotate(-90deg); } .dx-ring .n { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; font-family: var(--lmm-mono); font-size: 1.9rem; font-weight: 700; line-height: 1; } .dx-ring .n small { font-family: var(--lmm-font); font-size: .66rem; font-weight: 600; color: var(--lmm-text3); margin-top: 4px; letter-spacing: .05em; text-transform: uppercase; }
.dx-head { display: flex; gap: 22px; align-items: center; flex-wrap: wrap; } .dx-head h3 { font-size: 1.25rem; margin: 0 0 2px; } .dx-head .meta { color: var(--lmm-text2); font-size: 13px; }
.dx-facts { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; margin-top: 16px; } .dx-fact { background: var(--lmm-bg, transparent); border: 1px solid var(--lmm-border); border-radius: var(--lmm-radius-sm); padding: 10px 12px; } .dx-fact .l { font-size: .7rem; text-transform: uppercase; letter-spacing: .04em; color: var(--lmm-text3); } .dx-fact .v { font-family: var(--lmm-mono); font-weight: 600; font-size: 1.05rem; margin-top: 2px; } .dx-fact .s { font-size: 11.5px; color: var(--lmm-text3); }
.dx-why { list-style: none; padding: 0; margin: 0; } .dx-why li { display: flex; gap: 10px; align-items: baseline; padding: 6px 0; border-bottom: 1px solid var(--lmm-border); font-size: 13.5px; } .dx-why li:last-child { border: 0; } .dx-why .sg { font-family: var(--lmm-mono); font-weight: 700; width: 14px; } .dx-why .up .sg { color: var(--dx-ok); } .dx-why .dn .sg { color: var(--dx-warn); } .dx-why code { font-family: var(--lmm-mono); font-size: 11px; color: var(--lmm-text3); margin-left: auto; }
.dx-tl { list-style: none; padding: 0; margin: 0; max-height: 440px; overflow: auto; } .dx-tl li { display: grid; grid-template-columns: 112px 1fr; gap: 10px; padding: 7px 0; border-bottom: 1px solid var(--lmm-border); font-size: 13px; } .dx-tl .t { color: var(--lmm-text3); font-family: var(--lmm-mono); font-size: 11.5px; } .dx-tl .by { color: var(--lmm-text3); font-size: 12px; }
.dx-eff { display: grid; grid-template-columns: 1fr 110px 80px; gap: 8px; align-items: center; font-size: 12.5px; padding: 4px 0; } .dx-eff .tr { height: 8px; background: var(--lmm-border); border-radius: 4px; position: relative; } .dx-eff .tr i { position: absolute; top: 0; bottom: 0; border-radius: 4px; } .dx-eff .tr .mid { position: absolute; left: 50%; top: -2px; bottom: -2px; width: 1px; background: var(--lmm-border2); }
.dx-note { font-size: 12.5px; color: var(--lmm-text2); line-height: 1.5; background: var(--lmm-green-glow); border: 1px solid var(--lmm-green-dim); border-radius: var(--lmm-radius-sm); padding: 10px 14px; margin-bottom: 16px; } .dx-note.warn { background: rgba(224,160,48,.08); border-color: rgba(224,160,48,.35); }
.dx-agent { display: grid; grid-template-columns: 34px 1.3fr 80px 3fr 80px; gap: 12px; align-items: center; padding: 11px 6px; border-bottom: 1px solid var(--lmm-border); cursor: pointer; } .dx-agent:hover { background: var(--lmm-hover); } .dx-agent .rk { font-family: var(--lmm-mono); color: var(--lmm-text3); } .dx-agent .nm small { display: block; color: var(--lmm-text3); font-size: 11.5px; } .dx-agent .sc { font-family: var(--lmm-mono); font-weight: 700; font-size: 1.3rem; }
.dx-mini { display: flex; gap: 4px; align-items: flex-end; height: 34px; } .dx-mini i { flex: 1; background: var(--lmm-green); border-radius: 2px; opacity: .85; min-height: 3px; }
.dx-part { display: grid; grid-template-columns: 170px 1fr 46px; gap: 12px; align-items: center; padding: 7px 0; } .dx-part .d { grid-column: 1 / -1; font-size: 12px; color: var(--lmm-text3); margin-top: -4px; padding-bottom: 6px; border-bottom: 1px solid var(--lmm-border); }
.dx-prog { height: 10px; background: var(--lmm-border); border-radius: 5px; overflow: hidden; margin: 10px 0 4px; } .dx-prog > i { display: block; height: 100%; width: 0; background: var(--lmm-green); transition: width .2s; }
.dx-sec { font-size: .72rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--lmm-text3); margin: 18px 0 8px; }
.dx-bars { display: flex; align-items: flex-end; gap: 3px; height: 90px; } .dx-bars i { flex: 1; background: var(--lmm-green); border-radius: 2px 2px 0 0; min-height: 2px; opacity: .85; } .dx-bars i:hover { opacity: 1; }
.dx-axis { display: flex; justify-content: space-between; font-size: 11px; color: var(--lmm-text3); margin-top: 4px; font-family: var(--lmm-mono); }
.dx-wrap textarea.lmm-input { min-height: 60px; }
@media (max-width: 700px) { .dx-agent { grid-template-columns: 26px 1fr 60px; } .dx-agent .mini, .dx-agent .cf { display: none; } .dx-hb { grid-template-columns: 100px 1fr 80px; } .dx-part { grid-template-columns: 1fr 46px; } .dx-part .trk { grid-column: 1 / -1; order: 3; } }
.dx-actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 14px; align-items: center; }
.dx-wrap a { color: var(--lmm-green); text-decoration: none; } .dx-wrap a:hover { text-decoration: underline; }
.dx-ring .n small { font-size: .6rem; }
.dx-mini i { max-width: 26px; } .dx-mini { justify-content: flex-start; gap: 6px; }
