/* Analitik — disalin dari design/desain-interaktif.html (jangan ubah tanpa acuan desain) */
:root{
  --bg:#EEF0F5;--surface:#FFFFFF;--ink:#2A2B3A;--ink2:#6A6B7C;--muted:#A0A1B2;
  --line:#ECEDF3;--hair:#F2F3F8;
  --pink:#EC4E95;--pink-soft:#FBD9E8;--pink-card:#FCE4EF;
  --yellow:#F4B740;--yellow-soft:#FBE7B2;--yellow-card:#FDF1D6;
  --blue:#5FA8F5;--blue-soft:#D5E6FB;--blue-card:#E4F0FD;
  --green:#2FB888;--green-soft:#CFEEE2;
  --violet:#8B7CF0;--violet-soft:#E4DEFB;
  --shadow:0 2px 10px rgba(42,43,58,.05);--shadow-h:0 10px 28px rgba(42,43,58,.10);
  --r-card:20px;--r-btn:12px;
}
*{box-sizing:border-box}
body{margin:0;color:var(--ink);font-family:"Plus Jakarta Sans",system-ui,sans-serif;-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.45;background:var(--bg)}
a{color:var(--pink);text-decoration:none;font-weight:700}
button{font-family:inherit;cursor:pointer}
.mono{font-family:"IBM Plex Mono",monospace;font-feature-settings:"tnum" 1}
.i{width:18px;height:18px;stroke:currentColor;stroke-width:1.9;fill:none;stroke-linecap:round;stroke-linejoin:round;flex:none}.i.sm{width:15px;height:15px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow)}
@keyframes rise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes grow{from{transform:scaleY(.05);opacity:.4}to{transform:scaleY(1);opacity:1}}
@keyframes growx{from{transform:scaleX(.04);opacity:.5}to{transform:scaleX(1);opacity:1}}
@keyframes dash{from{stroke-dashoffset:900}to{stroke-dashoffset:0}}
@keyframes ring{from{stroke-dashoffset:440}}
@keyframes pop{0%{opacity:0;transform:translateY(8px) scale(.94)}60%{opacity:1;transform:translateY(0) scale(1.03)}100%{transform:scale(1)}}
.app{min-height:100vh;display:flex;flex-direction:column}
.topbar{height:68px;flex:none;display:flex;align-items:center;gap:16px;padding:0 24px;background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}
.brand{display:flex;align-items:center;gap:11px}
.brand-badge{width:38px;height:38px;border-radius:12px;background:var(--pink);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:14px;box-shadow:0 6px 16px rgba(236,78,149,.35)}
.brand b{font-weight:800;font-size:17px;letter-spacing:-.01em}
.search{flex:1;max-width:420px;display:flex;align-items:center;gap:10px;height:44px;padding:0 16px;background:var(--bg);border:1px solid var(--line);border-radius:14px;color:var(--muted)}
.search input{border:0;background:transparent;outline:none;width:100%;font:inherit;color:var(--ink)}
.tb-right{margin-left:auto;display:flex;align-items:center;gap:12px}
.iconbtn{width:42px;height:42px;border-radius:13px;border:1px solid var(--line);background:var(--surface);color:var(--ink2);display:flex;align-items:center;justify-content:center;position:relative;transition:.18s}
.iconbtn:hover{background:var(--bg)}
.iconbtn .ndot{position:absolute;top:9px;right:9px;width:8px;height:8px;border-radius:50%;background:var(--pink);border:2px solid var(--surface)}
.prof{display:flex;align-items:center;gap:10px;height:44px;padding:0 6px 0 14px;border:1px solid var(--line);border-radius:999px;background:var(--surface)}
.prof .nm{font-weight:800;font-size:13px}.prof .nm span{display:block;font-size:11px;color:var(--muted);font-weight:600}
.avatar{width:36px;height:36px;border-radius:50%;background:var(--pink);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px;flex:none}
.body{flex:1;display:flex;flex-wrap:wrap;align-items:stretch}
.sidebar{width:236px;flex:none;padding:20px 14px;display:flex;flex-direction:column;gap:22px;background:var(--surface);border-right:1px solid var(--line)}
.nav-grp{display:flex;flex-direction:column;gap:3px}
.nav-cap{font-size:10.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:4px 14px 6px}
.nav-item{display:flex;align-items:center;gap:13px;height:46px;padding:0 14px;border-radius:14px;border:0;background:transparent;color:var(--ink2);font-weight:700;font-size:14px;width:100%;text-align:left;transition:.16s}
.nav-item:hover{background:var(--bg);color:var(--ink)}
.nav-item .ico{color:var(--muted);transition:.16s}
.nav-item .count{margin-left:auto;font-family:"IBM Plex Mono",monospace;font-size:11px;color:var(--muted);font-weight:700;background:var(--bg);border-radius:999px;padding:2px 9px}
.nav-item.active{background:var(--pink-card);color:var(--ink)}
.nav-item.active .ico{color:var(--pink)}.nav-item.active .count{background:#fff;color:var(--pink)}
.side-card{margin-top:auto;border-radius:16px;padding:15px;background:var(--pink-card);display:flex;flex-direction:column;gap:3px}
.side-card b{font-size:13px;font-weight:800;color:var(--pink);display:flex;align-items:center;gap:8px}
.side-card .ld{width:9px;height:9px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px rgba(47,184,136,.18)}
.side-card span{font-size:11.5px;color:var(--ink2);font-weight:600}
.content{flex:999 1 560px;min-width:0;padding:24px 28px 40px}
.phead{display:flex;align-items:flex-end;gap:16px;margin-bottom:22px;flex-wrap:wrap}
.phead h1{margin:0;font-size:28px;font-weight:800;letter-spacing:-.02em;color:var(--ink)}
.phead p{margin:5px 0 0;color:var(--ink2);font-size:13.5px;font-weight:600}
.segctl{margin-left:auto;display:flex;gap:4px;padding:5px;border-radius:14px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow)}
.seg{height:34px;padding:0 16px;border-radius:10px;border:0;background:transparent;color:var(--ink2);font-weight:800;font-size:13px;transition:.16s}.seg:hover{color:var(--ink)}
.seg.on{background:var(--pink);color:#fff;box-shadow:0 6px 14px rgba(236,78,149,.3)}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr));gap:16px;margin-bottom:18px}
.kpi{border-radius:var(--r-card);padding:18px 19px;animation:rise .5s both;transition:.22s;position:relative;overflow:hidden}
.kpi:hover{transform:translateY(-4px);box-shadow:var(--shadow-h)}
.kpi-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.kpi .tile{width:44px;height:44px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:var(--surface);box-shadow:0 1px 4px rgba(42,43,58,.08)}
.kpi .dots{width:28px;height:28px;border-radius:9px;border:0;background:transparent;color:var(--ink2);display:flex;align-items:center;justify-content:center}.kpi .dots:hover{background:rgba(255,255,255,.6)}
.kpi .k{font-size:12.5px;color:var(--ink2);font-weight:700}
.kpi .n{font-size:30px;font-weight:800;letter-spacing:-.02em;margin-top:3px;line-height:1.05;color:var(--ink);animation:pop .6s cubic-bezier(.2,.8,.2,1) both}
.kpi .d{display:inline-flex;align-items:center;margin-top:10px;font-size:11.5px;font-weight:800;padding:3px 11px;border-radius:999px;background:rgba(255,255,255,.7);color:var(--ink2)}
.kpi.c-pink{background:var(--pink-card)}.kpi.c-pink .tile{color:var(--pink)}
.kpi.c-blue{background:var(--blue-card)}.kpi.c-blue .tile{color:#2E7CC4}
.kpi.c-yellow{background:var(--yellow-card)}.kpi.c-yellow .tile{color:#C98A12}
.kpi.c-green{background:var(--green-soft)}.kpi.c-green .tile{color:#1E8E68}
.kpi.c-violet{background:var(--violet-soft)}.kpi.c-violet .tile{color:var(--violet)}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(380px,100%),1fr));gap:16px;margin-bottom:16px}
.panel{border-radius:var(--r-card);padding:20px 22px;animation:rise .55s both}
.panel-h{display:flex;align-items:center;gap:11px;margin-bottom:16px}
.panel-h b{font-size:15.5px;font-weight:800}
.panel-h .sub{font-size:12px;color:var(--muted);margin-left:auto;font-weight:700}
.dot-leg{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:var(--ink2)}.dot-leg .cd{width:9px;height:9px;border-radius:3px}
.chart{width:100%;height:210px;display:block}
.chart .gl{stroke:var(--hair);stroke-width:1}
.chart .ax{fill:var(--muted);font-size:10px;font-family:"IBM Plex Mono",monospace}
.chart .ln{fill:none;stroke:var(--pink);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:900;animation:dash 1.5s ease both}
.chart .pt{fill:#fff;stroke:var(--pink);stroke-width:3}
.chart .tgt{fill:none;stroke:var(--blue);stroke-width:2;stroke-dasharray:4 5;stroke-linecap:round}
.bars{display:flex;flex-direction:column;gap:15px}
.bar-row{display:flex;align-items:center;gap:12px}
.bar-lab{width:100px;flex:none;font-size:12.5px;font-weight:800;display:flex;align-items:center;gap:8px}
.cd{width:10px;height:10px;border-radius:50%;flex:none}
.bar-track{flex:1;height:14px;background:var(--bg);border-radius:999px;overflow:hidden}
.bar-fill{height:100%;border-radius:999px;transform-origin:left;animation:growx 1s cubic-bezier(.2,.8,.2,1) both}
.bar-val{width:58px;flex:none;text-align:right;font-family:"IBM Plex Mono",monospace;font-size:12.5px;font-weight:700;color:var(--ink)}
.bar-val span{color:var(--muted);font-size:11px}
.donut-wrap{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.donut{position:relative;width:170px;height:170px;flex:none}
.donut svg{transform:rotate(0)}
.donut circle{animation:ring 1.3s cubic-bezier(.3,.9,.3,1) both}
.donut .ctr{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.donut .ctr .big{font-size:30px;font-weight:800;letter-spacing:-.02em}
.donut .ctr .lab{font-size:11px;font-weight:700;color:var(--muted)}
.sent-leg{flex:1;min-width:150px;display:flex;flex-direction:column;gap:12px}
.sent-leg .r{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:700}
.sent-leg .sw{width:13px;height:13px;border-radius:5px;flex:none}
.sent-leg .v{margin-left:auto;font-family:"IBM Plex Mono",monospace;font-weight:700}
.sent-note{margin-top:16px;padding-top:14px;border-top:1px solid var(--line);font-size:12.5px;color:var(--ink2);font-weight:600}
.agents{display:flex;flex-direction:column;gap:10px}
.agent{display:flex;align-items:center;gap:13px;padding:12px;border-radius:15px;background:var(--bg);transition:.18s}
.agent:hover{transform:translateX(4px);background:var(--pink-card)}
.agent .av{width:40px;height:40px;border-radius:12px;color:#fff;font-weight:800;font-size:13px;display:flex;align-items:center;justify-content:center}
.agent .nm{font-weight:800;font-size:13.5px;flex:1}.agent .nm span{display:block;font-size:11.5px;color:var(--muted);font-weight:600}
.agent .bars-mini{width:90px;flex:none;height:8px;border-radius:999px;background:var(--line);overflow:hidden}
.agent .bars-mini i{display:block;height:100%;border-radius:999px;background:var(--green)}
.agent .stat{text-align:right;width:52px;flex:none}.agent .stat .v{font-family:"IBM Plex Mono",monospace;font-weight:800;font-size:14px}.agent .stat .l{font-size:10px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.hours{display:flex;align-items:flex-end;gap:5px;height:120px}
.hr{flex:1;border-radius:7px 7px 3px 3px;background:var(--blue-soft);transform-origin:bottom;animation:grow .9s cubic-bezier(.2,.8,.2,1) both}
.hr.peak{background:var(--pink)}
.hours-x{display:flex;justify-content:space-between;font-family:"IBM Plex Mono",monospace;font-size:10px;color:var(--muted);margin-top:8px;font-weight:600}
.hours-note{margin-top:12px;font-size:12.5px;color:var(--ink2);font-weight:600}
@media (max-width:980px){.body{display:block}.sidebar{width:100%;border-right:0;border-bottom:1px solid var(--line)}.content{padding:18px 14px}}
.nav-item .ico,.kpi .tile{transition:transform .22s cubic-bezier(.2,.8,.2,1)}
.nav-item:hover .ico,.kpi:hover .tile{transform:scale(1.12) rotate(-5deg)}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
