/* DICE-ARISE consoles — enterprise analytics layer (loaded after console.css).
   KPI cards, headline gauges, sidebar with search / collapse / command palette, polished topbar. */
:root{--acc:#138A43;--acc-bg:#E8F5EC;--kx-sh:0 1px 2px rgba(16,24,40,.05),0 2px 6px rgba(16,24,40,.05);--kx-sh2:0 14px 34px rgba(11,61,36,.16)}

/* ---------- page ---------- */
body{background:radial-gradient(1200px 600px at 100% -10%,#E9F3EC 0%,rgba(233,243,236,0) 60%),var(--bg)}
.content{gap:22px}
.card{border-radius:14px;border-color:#E4E9EE;box-shadow:var(--kx-sh)}
.card h2{letter-spacing:-.01em}
.sect{display:flex;align-items:center;gap:10px;margin:8px 0 -6px;font-size:12px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:#4B5E52}
.sect::after{content:'';flex:1;height:1px;background:linear-gradient(90deg,#D5E1D8,transparent)}

/* ---------- KPI cards ---------- */
.kxg{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}
.kx{--a:var(--acc);--ab:var(--acc-bg);position:relative;display:flex;flex-direction:column;gap:8px;min-height:150px;padding:16px 16px 14px;background:#fff;border:1px solid #E4E9EE;border-radius:14px;box-shadow:var(--kx-sh);color:var(--ink);text-decoration:none!important;overflow:hidden;
  transition:transform .18s cubic-bezier(.2,.8,.2,1),box-shadow .18s,border-color .18s;animation:kxIn .5s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--i,0)*45ms)}
.kx::before{content:'';position:absolute;left:0;top:0;right:0;height:3px;background:linear-gradient(90deg,var(--a),color-mix(in srgb,var(--a) 40%,#F5C518))}
.kx::after{content:'';position:absolute;right:-40px;top:-40px;width:120px;height:120px;border-radius:50%;background:radial-gradient(circle,var(--ab) 0%,transparent 70%);opacity:.9;pointer-events:none}
.kx-green{--a:#138A43;--ab:#E6F4EA}.kx-forest{--a:#0B3D24;--ab:#E3EDE6}.kx-yellow{--a:#C99A06;--ab:#FDF4D6}.kx-white{--a:#5B6B62;--ab:#EEF2EF}
a.kx:hover{transform:translateY(-3px);box-shadow:var(--kx-sh2);border-color:color-mix(in srgb,var(--a) 35%,#E4E9EE)}
a.kx:focus-visible{outline:3px solid #F5C518;outline-offset:2px}
.kx-wide{grid-column:span 2}
.kx-top{display:flex;align-items:center;gap:9px;position:relative;z-index:1}
.kx-ic{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;background:var(--ab);color:var(--a);flex:none}
.kx-l{font-size:13px;font-weight:700;color:#344054;line-height:1.25;flex:1;min-width:0}
.kx-st{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;padding:3px 7px;border-radius:999px;background:#EEF2EF;color:#4B5E52;white-space:nowrap}
.kx-st i{width:6px;height:6px;border-radius:50%;background:currentColor}
.kx-s-good .kx-st,.kh-good .kx-st{background:#E6F4EA;color:#0E6B45}
.kx-s-warn .kx-st,.kh-warn .kx-st{background:#FFF4D6;color:#8A5A00}
.kx-s-bad .kx-st,.kh-bad .kx-st{background:#FDECEA;color:#B42318}
.kx-s-info .kx-st,.kh-info .kx-st{background:#EAF1FF;color:#1D4ED8}
.kx-s-bad{border-color:#F6C9C3}
.kx-s-bad .kx-st i,.kh-bad .kx-st i{animation:kxPulse 1.4s infinite}
.kx-mid{display:flex;align-items:center;justify-content:space-between;gap:10px;position:relative;z-index:1}
.kx-v{font-size:32px;font-weight:800;letter-spacing:-.02em;line-height:1;color:#0B271F;font-variant-numeric:tabular-nums}
.kx-vt{font-size:22px}
.kx-ring-t{stroke:#EDF1EE}.kx-ring-v{stroke:var(--a);transition:stroke-dashoffset 1.1s cubic-bezier(.2,.8,.2,1)}
.kx-ring text{font-size:12px;font-weight:800;fill:#0B271F}
.kx-bar{height:6px;border-radius:99px;background:#EDF1EE;overflow:hidden;position:relative;z-index:1}
.kx-bar i{display:block;height:100%;width:0;border-radius:99px;background:linear-gradient(90deg,var(--a),color-mix(in srgb,var(--a) 55%,#F5C518));transition:width 1.1s cubic-bezier(.2,.8,.2,1)}
.kx-s{font-size:12px;color:#5B6676;line-height:1.4;position:relative;z-index:1}
.kx-go{margin-top:auto;display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:700;color:var(--a);opacity:.0;transform:translateY(4px);transition:opacity .18s,transform .18s;position:relative;z-index:1}
a.kx:hover .kx-go,a.kx:focus-visible .kx-go{opacity:1;transform:none}
@keyframes kxIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes kxPulse{0%{box-shadow:0 0 0 0 rgba(180,35,24,.5)}70%{box-shadow:0 0 0 7px rgba(180,35,24,0)}100%{box-shadow:0 0 0 0 rgba(180,35,24,0)}}

/* ---------- headline gauges ---------- */
.khero{background:linear-gradient(135deg,#0B3D24 0%,#0E5A35 55%,#138A43 100%);border-radius:16px;padding:18px 20px 20px;color:#fff;box-shadow:0 14px 34px rgba(11,61,36,.22);position:relative;overflow:hidden}
.khero::after{content:'';position:absolute;right:-80px;bottom:-120px;width:320px;height:320px;border-radius:50%;background:radial-gradient(circle,rgba(245,197,24,.22),transparent 65%)}
.khero-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;position:relative;z-index:1}
.khero-h h2{margin:0;font-size:15px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#E3F1E7}
.kx-live{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#F5C518}
.kx-live i{width:8px;height:8px;border-radius:50%;background:#8DC63F;animation:kxLive 1.6s infinite}
@keyframes kxLive{0%{box-shadow:0 0 0 0 rgba(141,198,63,.6)}70%{box-shadow:0 0 0 9px rgba(141,198,63,0)}100%{box-shadow:0 0 0 0 rgba(141,198,63,0)}}
.khero-g{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;position:relative;z-index:1}
.kh{display:flex;align-items:center;gap:12px;padding:12px;border-radius:12px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1);color:#fff;text-decoration:none!important;transition:background .18s,transform .18s}
a.kh:hover{background:rgba(255,255,255,.14);transform:translateY(-2px)}
.kh-g{width:96px;height:96px;flex:none}
.kh-t{fill:none;stroke:rgba(255,255,255,.14);stroke-width:12}
.kh-v{fill:none;stroke:#F5C518;stroke-width:12;stroke-linecap:round;transition:stroke-dashoffset 1.3s cubic-bezier(.2,.8,.2,1)}
.kh-good .kh-v{stroke:#8DC63F}.kh-bad .kh-v{stroke:#FF8A7A}
.kh-n{fill:#fff;font-size:24px;font-weight:800}.kh-u{fill:#BFD9C8;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.kh b{display:block;font-size:14px;margin-bottom:3px}.kh small{display:block;font-size:12px;color:#CFE3D6;line-height:1.35;margin-bottom:6px}
.kh .kx-st{background:rgba(255,255,255,.14);color:#fff}

/* ---------- sidebar ---------- */
.side .nav{padding:4px 12px 12px}
.nav a{border-radius:9px;transition:background .15s,color .15s,padding .15s}
.nav a:hover{background:rgba(255,255,255,.08);padding-left:15px}
.nav a.on{background:linear-gradient(90deg,rgba(245,197,24,.18),rgba(255,255,255,.06));box-shadow:inset 0 0 0 1px rgba(245,197,24,.18)}
.acch{border-radius:9px;transition:background .15s}
.acch:hover{background:rgba(255,255,255,.05)}
.accg.cur>.acch .gl{color:#fff}
.np-search{margin:2px 14px 10px;position:relative}
.np-search input{width:100%;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1);color:#fff;border-radius:9px;padding:8px 10px 8px 32px;font-size:13px;outline:none;transition:border-color .15s,background .15s}
.np-search input::placeholder{color:#8FB3A3}
.np-search input:focus{border-color:#F5C518;background:rgba(255,255,255,.1)}
.np-search svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:#8FB3A3}
.np-search kbd{position:absolute;right:8px;top:50%;transform:translateY(-50%);font:600 10px/1 Inter,sans-serif;color:#8FB3A3;border:1px solid rgba(255,255,255,.18);border-radius:5px;padding:3px 5px}
.nav a.np-hide,.accg.np-hide{display:none}
.nav mark{background:rgba(245,197,24,.35);color:#fff;border-radius:3px;padding:0 1px}
.np-rail{position:absolute;top:18px;right:10px;width:26px;height:26px;border-radius:7px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.06);color:#CFE3D6;display:grid;place-items:center;cursor:pointer}
.np-rail:hover{background:rgba(255,255,255,.14);color:#fff}
@media (min-width:901px){
  body.np-railed .shell{grid-template-columns:76px 1fr}
  body.np-railed .side .brand>div,body.np-railed .side .ctx,body.np-railed .np-search,body.np-railed .nav .lbl,body.np-railed .acch .gl,body.np-railed .acch .accn,body.np-railed .acch .chev,body.np-railed .side .who .me>div,body.np-railed .side .who .acts,body.np-railed .side .who select,body.np-railed .cnt{display:none}
  body.np-railed .nav a{justify-content:center;padding:10px 0}
  body.np-railed .nav a:hover{padding-left:0}
  body.np-railed .acch{justify-content:center}
  body.np-railed .accg .accb{max-height:none!important;grid-template-rows:1fr!important}
  body.np-railed .np-rail{position:static;margin:0 auto 8px}
  body.np-railed .brand{justify-content:center;padding:16px 8px 10px;flex-direction:column}
}

/* ---------- topbar ---------- */
.topbar{box-shadow:0 1px 0 rgba(16,24,40,.03)}
.np-tools{display:flex;align-items:center;gap:8px}
.np-k{display:inline-flex;align-items:center;gap:8px;border:1px solid #DCE3EA;background:#fff;border-radius:10px;padding:7px 10px;font-size:13px;color:#5B6676;cursor:pointer;transition:border-color .15s,box-shadow .15s}
.np-k:hover{border-color:#138A43;box-shadow:0 0 0 3px rgba(19,138,67,.12);color:#0B3D24}
.np-k kbd{font:600 10.5px/1 Inter,sans-serif;border:1px solid #DCE3EA;border-radius:5px;padding:3px 5px;color:#5B6676}
.np-clock{font-size:12px;color:#5B6676;font-variant-numeric:tabular-nums;display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;background:#F1F6F2}
.np-clock i{width:7px;height:7px;border-radius:50%;background:#138A43;animation:kxLive 1.8s infinite}
@media (max-width:900px){.np-k span,.np-clock{display:none}}

/* ---------- command palette ---------- */
.np-pal{position:fixed;inset:0;z-index:9000;background:rgba(11,39,31,.45);backdrop-filter:blur(3px);display:flex;align-items:flex-start;justify-content:center;padding-top:12vh;animation:npFade .15s}
.np-box{width:min(620px,92vw);background:#fff;border-radius:16px;box-shadow:0 30px 80px rgba(0,0,0,.3);overflow:hidden;animation:npPop .18s cubic-bezier(.2,.8,.2,1)}
.np-box input{width:100%;border:0;border-bottom:1px solid #EEF1F5;padding:16px 18px;font-size:16px;outline:none}
.np-list{max-height:52vh;overflow:auto;padding:6px}
.np-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;color:#0F1B2D;text-decoration:none!important;font-weight:600;font-size:14px}
.np-item small{margin-left:auto;color:#8A94A3;font-weight:600;font-size:11.5px;text-transform:uppercase;letter-spacing:.05em}
.np-item.sel,.np-item:hover{background:#E8F5EC;color:#0B3D24}
.np-item .ic{color:#138A43}
.np-foot{border-top:1px solid #EEF1F5;padding:8px 14px;font-size:11.5px;color:#8A94A3;display:flex;gap:14px}
.np-empty{padding:18px;color:#8A94A3;text-align:center}
@keyframes npFade{from{opacity:0}to{opacity:1}}
@keyframes npPop{from{opacity:0;transform:translateY(-8px) scale(.98)}to{opacity:1;transform:none}}

@media (max-width:640px){.kx-wide{grid-column:auto}.kxg{grid-template-columns:1fr 1fr}.kx{min-height:132px;padding:13px}.kx-v{font-size:24px}.kx-ring{width:46px;height:46px}.kh-g{width:76px;height:76px}}
@media (max-width:420px){.kxg{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.kx,.np-box,.np-pal{animation:none}.kx-ring-v,.kh-v,.kx-bar i{transition:none}.kx-live i,.np-clock i,.kx-s-bad .kx-st i{animation:none}}
.khero + .kxg{margin-top:14px}
/* ---------- typography: IBM Plex Sans across both consoles ---------- */
html,body,button,input,select,textarea{font-family:'IBM Plex Sans',Inter,system-ui,-apple-system,'Segoe UI',Roboto,sans-serif}
body{font-feature-settings:normal;letter-spacing:0;font-size:14.5px;line-height:1.5;color:#14231B}
h1,h2,h3,.disp{font-family:'IBM Plex Sans',Inter,system-ui,sans-serif;letter-spacing:-.01em}
b,strong,th{font-weight:600}
.kx-v,.kh-n,.rv-big,.rv-stats b,.lr-k b{font-weight:700}
table td,table th,.mono{font-variant-numeric:tabular-nums}
