/* ══ OM Group ERP — KPI Intelligence Window ═══════════════════════════════
   The traceable-KPI drill-down. One centered analytical workspace, shared by
   every Analytics KPI. Self-contained tokens: it renders in a body-level
   portal, outside .intel, so it carries its own palette rather than
   inheriting one. Same language as the Analytics Center — white surfaces,
   warm neutral ink, one accent per workspace, restrained motion. */
.kx-bg{position:fixed;inset:0;z-index:11000;display:flex;align-items:center;justify-content:center;padding:clamp(14px,3.2vh,44px);--kxInk:#1A1917;--kxInk2:#6B7068;--kxInk3:#A8A4A0;--kxLine:#EDEBE8;--kxSoft:#FCFBFA;--kxUp:#16A34A;--kxDn:#DC2626;--kxE:cubic-bezier(.16,1,.3,1)}
.kx-bg::before{content:'';position:absolute;inset:0;background:rgba(30,27,22,.20);backdrop-filter:blur(10px) saturate(112%);-webkit-backdrop-filter:blur(10px) saturate(112%);animation:kxFade .22s ease both}
@keyframes kxFade{from{opacity:0}to{opacity:1}}
@keyframes kxPop{from{opacity:0;transform:translateY(10px) scale(.975)}to{opacity:1;transform:none}}
.kx-sheet{position:relative;display:flex;flex-direction:column;width:min(1180px,74vw);height:min(80dvh,880px);max-width:100%;max-height:100%;background:#fff;border:1px solid var(--kxLine);border-radius:22px;overflow:hidden;box-shadow:0 1px 2px rgba(20,18,15,.05),0 28px 70px -20px rgba(20,18,15,.26);animation:kxPop .24s var(--kxE) both;font-family:var(--font,'Inter',system-ui,sans-serif);color:var(--kxInk)}
.kx-sheet *{-webkit-tap-highlight-color:transparent}

/* header */
.kx-hd{display:flex;align-items:flex-start;gap:14px;padding:20px 26px 16px;border-bottom:1px solid var(--kxLine);background:linear-gradient(180deg,var(--kxSoft),#fff);flex:0 0 auto}
.kx-hd-t{flex:1;min-width:0}
.kx-hd-title{font-size:22px;font-weight:800;letter-spacing:-.032em;line-height:1.15;margin-top:6px;text-wrap:pretty}
.kx-hd-sub{font-size:10.5px;font-weight:600;color:var(--kxInk3);margin-top:5px}
.kx-crumbs{display:flex;align-items:center;gap:4px;flex-wrap:wrap;padding:9px 26px;border-bottom:1px solid var(--kxLine);background:var(--kxSoft);flex:0 0 auto}
.kx-crumb{border:0;background:none;font:inherit;font-size:10.5px;font-weight:700;color:var(--kxInk2);padding:3px 7px;border-radius:7px;cursor:pointer;transition:background .2s,color .2s}
.kx-crumb:hover{background:#fff;color:var(--kxInk)}
.kx-crumb.cur{color:var(--kxA);background:color-mix(in oklab,var(--kxA) 9%,#fff);cursor:default}
.kx-crumb-sep{font-size:11px;color:var(--kxInk3)}
.kx-bd{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:20px 26px 26px;display:flex;flex-direction:column;gap:14px}
.kx-ft{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 26px;border-top:1px solid var(--kxLine);background:var(--kxSoft);font-size:10px;font-weight:600;color:var(--kxInk3)}

/* hero */
.kx-hero{display:grid;grid-template-columns:1fr 1.05fr;gap:12px}
.kx-hero-main{border:1px solid color-mix(in oklab,var(--kxA) 22%,var(--kxLine));border-radius:15px;padding:14px 16px;background:linear-gradient(165deg,color-mix(in oklab,var(--kxA) 7%,#fff),var(--kxSoft));min-width:0}
.kx-hero-k{font-size:9.5px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--kxInk3)}
.kx-hero-v{font-size:34px;font-weight:800;letter-spacing:-.04em;line-height:1.05;margin-top:7px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.kx-hero-ft{display:flex;align-items:center;gap:8px;margin-top:9px;flex-wrap:wrap}
.kx-hero-prev{font-size:10px;font-weight:600;color:var(--kxInk3)}
.kx-nocmp{font-size:10px;font-weight:600;color:var(--kxInk3)}
.kx-share{display:inline-block;font-size:10.5px;font-weight:800;padding:2px 8px;border-radius:7px;background:color-mix(in oklab,var(--kxA) 11%,#fff);color:var(--kxA)}
.kx-hero-side{border:1px solid var(--kxLine);border-radius:15px;padding:13px 15px;background:#fff;min-width:0}
.kx-formula-t{font-size:9px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--kxInk3)}
.kx-formula{font-size:11.5px;font-weight:600;line-height:1.5;color:var(--kxInk2);margin-top:6px;text-wrap:pretty}
.kx-formula-n{font-size:10.5px;line-height:1.45;color:var(--kxInk3);margin-top:7px;text-wrap:pretty}

/* verification */
.kx-verify{display:flex;gap:10px;align-items:flex-start;border:1px solid color-mix(in oklab,var(--kxUp) 26%,transparent);background:color-mix(in oklab,var(--kxUp) 5%,#fff);border-radius:13px;padding:11px 13px}
.kx-verify.warn{border-color:color-mix(in oklab,var(--kxDn) 30%,transparent);background:color-mix(in oklab,var(--kxDn) 5%,#fff)}
.kx-verify i{width:7px;height:7px;border-radius:50%;background:var(--kxUp);margin-top:5px;flex:0 0 auto}
.kx-verify>div{flex:1 1 auto;min-width:0}
.kx-verify.warn i{background:var(--kxDn)}
.kx-verify b{display:block;font-size:11px;font-weight:800;color:#15803D}
.kx-verify.warn b{color:#B91C1C}
.kx-verify span{display:block;font-size:11px;line-height:1.5;color:var(--kxInk2);margin-top:3px;text-wrap:pretty;max-width:62ch}

/* section label + cards */
.kx-sec-t{font-size:9.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--kxInk3);padding-top:3px}
.kx-card{border:1px solid var(--kxLine);border-radius:15px;background:#fff;padding:13px 15px 11px}
.kx-card-hd{display:flex;align-items:flex-start;justify-content:space-between;gap:10px 12px;margin-bottom:10px;flex-wrap:wrap}
.kx-card-hd>div:first-child{flex:1 1 240px;min-width:0}
.kx-card-t{font-size:12.5px;font-weight:800;letter-spacing:-.015em}
.kx-card-s{font-size:10px;font-weight:600;color:var(--kxInk3);margin-top:3px;text-wrap:pretty}
.kx-dimtabs{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:9px}

/* calculation */
.kx-calc{border:1px solid var(--kxLine);border-radius:13px;overflow:hidden}
.kx-calc-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:9px 13px;font-size:11.5px;font-weight:600;color:var(--kxInk2);background:#fff;border-bottom:1px solid var(--kxLine)}
.kx-calc-row:last-child{border-bottom:0}
.kx-calc-row b{font-size:12.5px;font-weight:800;color:var(--kxInk);font-variant-numeric:tabular-nums}
.kx-calc-row.tot{background:var(--kxSoft);border-top:1px solid var(--kxLine)}
.kx-calc-row.tot span{color:var(--kxInk);font-weight:800}
.kx-calc-row.tot b{color:var(--kxA);font-size:13.5px}

/* attribution */
.kx-att{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.kx-att-grp{min-width:0}
.kx-att-h{font-size:9px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;padding-bottom:6px;color:var(--kxInk3)}.kx-att-h.up{color:#15803D}
.kx-att-h.dn{color:#B91C1C}
.kx-att-row{display:grid;grid-template-columns:1fr auto;gap:2px 10px;padding:7px 9px;border:1px solid var(--kxLine);border-radius:10px;margin-bottom:6px;cursor:pointer;background:#fff;transition:border-color .22s,transform .22s var(--kxE)}
.kx-att-row:hover{border-color:color-mix(in oklab,var(--kxA) 34%,var(--kxLine));transform:translateY(-1px)}
.kx-att-row:focus-visible{outline:2px solid var(--kxA);outline-offset:1px}
.kx-att-l{font-size:11px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kx-att-row b{font-size:11.5px;font-weight:800;font-variant-numeric:tabular-nums;text-align:right}
.kx-att-row b.up{color:#15803D}
.kx-att-row b.dn{color:#B91C1C}
.kx-att-v{grid-column:1/-1;font-size:9.5px;font-weight:600;color:var(--kxInk3);font-variant-numeric:tabular-nums}

/* supporting metrics */
.kx-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px}
.kx-fact{text-align:left;font:inherit;cursor:pointer;transition:border-color .22s,transform .22s var(--kxE),box-shadow .22s}
.kx-fact:hover:not(:disabled){border-color:color-mix(in oklab,var(--kxA) 34%,var(--kxLine));transform:translateY(-2px);box-shadow:0 6px 18px rgba(20,18,15,.05)}
.kx-fact:disabled{cursor:default}
.kx-facts .dr-fact{background:var(--kxSoft);border:1px solid var(--kxLine);border-radius:11px;padding:9px 11px}
.kx-facts .dr-fact>span{display:block;font-size:9px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--kxInk3)}
.kx-facts .dr-fact b{display:block;font-size:14px;font-weight:800;margin-top:3px;letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--kxInk)}

/* source-record bar */
.kx-srcbar{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--kxLine);border-radius:13px;padding:11px 13px;background:var(--kxSoft);flex-wrap:wrap}
.kx-srcbar>div{flex:1 1 240px;min-width:0}
.kx-srcbar b{display:block;font-size:12.5px;font-weight:800}
.kx-srcbar span{display:block;font-size:10.5px;font-weight:600;color:var(--kxInk3);margin-top:2px;text-wrap:pretty}
.kx-btn{flex:0 0 auto;height:30px;padding:0 13px;border-radius:9px;border:1px solid color-mix(in oklab,var(--kxA) 30%,var(--kxLine));background:color-mix(in oklab,var(--kxA) 8%,#fff);color:var(--kxA);font:inherit;font-size:11px;font-weight:800;cursor:pointer;transition:background .22s,transform .2s var(--kxE)}
.kx-btn:hover{background:color-mix(in oklab,var(--kxA) 14%,#fff);transform:translateY(-1px)}
.kx-btn.ghost{background:#fff;color:var(--kxInk2);border-color:var(--kxLine)}
.kx-btn.ghost:hover{color:var(--kxA);border-color:color-mix(in oklab,var(--kxA) 30%,var(--kxLine))}

/* tables */
.kx-tblbox{border:1px solid var(--kxLine);border-radius:14px;overflow:hidden;background:#fff}
.kx-tbltools{display:flex;align-items:center;gap:8px;padding:9px 11px;border-bottom:1px solid var(--kxLine);background:var(--kxSoft)}
.kx-search{flex:1;min-width:0;height:28px;padding:0 10px;border-radius:8px;border:1px solid var(--kxLine);background:#fff;font:inherit;font-size:11px;color:var(--kxInk);outline:none;transition:border-color .2s}
.kx-search:focus{border-color:color-mix(in oklab,var(--kxA) 40%,var(--kxLine))}
.kx-tblcount{font-size:10px;font-weight:700;color:var(--kxInk3);white-space:nowrap}
.kx-tblwrap{overflow:auto;max-height:380px}
.kx-tbl{width:100%;min-width:520px;border-collapse:collapse;font-size:11px}
.kx-tbl th{position:sticky;top:0;z-index:1;background:var(--kxSoft);padding:8px 10px;text-align:left;font-size:9px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--kxInk3);border-bottom:1px solid var(--kxLine);cursor:pointer;white-space:nowrap}
.kx-tbl th.r,.kx-tbl td.r{text-align:right}
.kx-tbl th em{font-style:normal;color:var(--kxA)}
.kx-tbl td{padding:8px 10px;border-bottom:1px solid var(--kxLine);font-weight:600;color:var(--kxInk);font-variant-numeric:tabular-nums;white-space:nowrap;max-width:220px;overflow:hidden;text-overflow:ellipsis}
.kx-tbl tbody tr.kx-clickrow{cursor:pointer;transition:background .18s}
.kx-tbl tbody tr.kx-clickrow:hover{background:color-mix(in oklab,var(--kxA) 5%,#fff)}
.kx-tbl .kx-go{color:var(--kxInk3);font-weight:800;text-align:right;padding-right:11px}
.kx-tbl tbody tr.kx-clickrow:hover .kx-go{color:var(--kxA)}
.kx-tbl tfoot td{position:sticky;bottom:0;background:var(--kxSoft);font-weight:800;border-top:1px solid var(--kxLine);border-bottom:0;font-size:10.5px}
.kx-tblempty{padding:26px 12px;text-align:center;color:var(--kxInk3);font-weight:600;white-space:normal}
.kx-more{width:100%;border:0;border-top:1px solid var(--kxLine);background:var(--kxSoft);padding:9px;font:inherit;font-size:10.5px;font-weight:800;color:var(--kxA);cursor:pointer}
.kx-more:hover{background:color-mix(in oklab,var(--kxA) 7%,#fff)}
.kx-tbl .i-ldg-badge{display:inline-block;padding:2px 7px;border-radius:6px;background:var(--kxSoft);border:1px solid var(--kxLine);font-size:9.5px;font-weight:800;color:var(--kxInk2)}

/* record detail */
.kx-kv{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px}
.kx-kv>div{border:1px solid var(--kxLine);border-radius:11px;padding:8px 11px;background:#fff;min-width:0}
.kx-kv span{display:block;font-size:9px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--kxInk3)}
.kx-kv b{display:block;font-size:12px;font-weight:700;margin-top:3px;overflow-wrap:anywhere}
.kx-note{font-size:10.5px;line-height:1.55;color:var(--kxInk3);text-wrap:pretty}
.kx-note.sm{font-size:10px;padding-top:6px}
.kx-link{border:0;background:none;font:inherit;font-size:10.5px;font-weight:800;color:var(--kxA);cursor:pointer;padding:0 0 0 6px;white-space:nowrap}

/* zero data */
.kx-empty{display:flex;flex-direction:column;gap:6px;align-items:center;text-align:center;padding:34px 26px;border:1px dashed var(--kxLine);border-radius:15px;background:var(--kxSoft)}
.kx-empty b{font-size:13px;font-weight:800}
.kx-empty span{font-size:11.5px;color:var(--kxInk2);max-width:440px;line-height:1.55;text-wrap:pretty}

/* the KPI cards themselves — the cue that a card holds more */
.i-kpi{cursor:pointer}
.i-kpi-more{position:absolute;top:11px;right:11px;width:16px;height:16px;border-radius:5px;display:flex;align-items:center;justify-content:center;color:var(--kc,var(--iAccent));opacity:0;transform:translateX(-3px);transition:opacity .3s var(--iEase),transform .3s var(--iEase)}
.i-kpi-more svg{width:11px;height:11px}
.i-kpi:hover .i-kpi-more,.i-kpi:focus-visible .i-kpi-more{opacity:.85;transform:none}
.i-kpi:focus-visible{outline:2px solid var(--kc,var(--iAccent));outline-offset:2px}
.i-kpi[data-err="1"]{cursor:default}
.i-kpi-err{font-size:10.5px;font-weight:700;color:#B91C1C;margin-top:6px}
.i-kpi-retry{margin-top:7px;height:24px;padding:0 10px;border-radius:7px;border:1px solid var(--iLine,#EDEBE8);background:#fff;font:inherit;font-size:10px;font-weight:800;color:#B91C1C;cursor:pointer}
.i-cmp tbody tr.kx-clickrow{cursor:pointer}
.i-cmp tbody tr.kx-clickrow:hover{background:#FCFBFA}

@media (max-width:1280px){
  .kx-sheet{width:90vw;height:min(86dvh,900px)}
}
@media (max-width:1024px){
  .kx-bg{padding:clamp(10px,2vh,20px)}
  .kx-sheet{width:95vw;height:min(90dvh,940px)}
  .kx-hero{grid-template-columns:1fr}
  .kx-att{grid-template-columns:1fr}
  .kx-hd,.kx-bd,.kx-crumbs,.kx-ft{padding-left:20px;padding-right:20px}
}
@media (max-width:760px){
  .kx-bg{align-items:flex-end;justify-content:center;padding:0}
  .kx-sheet{width:100%;height:96dvh;max-height:96dvh;border-left:0;border-right:0;border-bottom:0;border-radius:20px 20px 0 0;animation:kxUp .3s var(--kxE) both;box-shadow:0 -24px 60px rgba(20,18,15,.18)}
  @keyframes kxUp{from{opacity:.4;transform:translateY(26px)}to{opacity:1;transform:none}}
  .kx-hd{padding:16px 15px 12px;padding-top:max(16px,env(safe-area-inset-top))}
  .kx-hd-title{font-size:17px}
  .kx-bd{padding:13px 15px;padding-bottom:max(26px,calc(env(safe-area-inset-bottom) + 16px))}
  .kx-crumbs,.kx-ft{padding-left:15px;padding-right:15px}
  .kx-hero-v{font-size:26px}
  .kx-tblwrap{max-height:none}
  .kx-srcbar{flex-direction:column;align-items:stretch}
  .kx-btn{width:100%}
}
@media (max-width:420px){
  .kx-facts,.kx-kv{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){
  .kx-sheet,.kx-bg::before{animation:none}
  .kx-att-row:hover,.kx-fact:hover:not(:disabled),.kx-btn:hover{transform:none}
}
@media print{.kx-bg{display:none!important}}
