:root{--frame-cyan:#cdeef6;--frame-cyan-2:#b6e6f1;--header-band:#eaf5fb;--navy:#16223a;--navy-soft:#243352;--ink-700:#3a4a63;--ink-500:#64748b;--ink-400:#94a3b8;--line:#e9eef4;--line-soft:#f1f5f9;--card:#fff;--active:#5163f6;--l1a:#3b6fe0;--l1b:#f48fb1;--l2a:#2bb6a3;--l2b:#f5b13d;--bar-green:#4eb96a;--bar-orange:#ef6f4c;--bar-blue:#5b8def;--shadow:0 1px 2px rgba(22,34,58,.04),0 6px 20px rgba(22,34,58,.06);--radius:14px}*{box-sizing:border-box}body,html{margin:0;padding:0;background:linear-gradient(135deg,var(--frame-cyan) 0,var(--frame-cyan-2) 100%);color:var(--navy);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.5}a{color:var(--active);text-decoration:none}.app-frame{max-width:1180px;margin:28px auto;background:#fff;border-radius:22px;box-shadow:0 20px 60px rgba(22,34,58,.12);overflow:hidden}.nav{display:flex;justify-content:space-between;padding:16px 32px;border-bottom:1px solid var(--line-soft)}.nav,.nav .logo{align-items:center}.nav .logo{width:34px;height:34px;border-radius:9px;background:linear-gradient(135deg,#4f6ef7,#38bdf8);display:inline-flex;justify-content:center;color:#fff;box-shadow:0 6px 14px rgba(79,110,247,.35)}.nav .links{display:flex;gap:30px;font-size:14px;font-weight:600}.nav .links a{color:var(--ink-500);padding:4px 0;transition:color .15s}.nav .links a:hover{color:var(--navy)}.nav .links a.active{color:var(--active)}.nav .avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,#cbd5e1,#94a3b8);border:2px solid #fff;box-shadow:0 0 0 1px var(--line);display:inline-flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:13px}.header-band{background:linear-gradient(180deg,var(--header-band) 0,#fff 100%);padding:28px 32px 22px}.header-band h1{margin:0;font-size:34px;font-weight:800;letter-spacing:-.02em;color:var(--navy)}.header-band .kpis{margin-top:10px;display:flex;flex-wrap:wrap;gap:8px 22px;font-size:13px;color:var(--ink-500)}.header-band .kpis b{color:var(--navy);font-weight:700}.header-band .kpis .sep{color:var(--line)}.toolbar{display:flex;align-items:center;gap:10px;margin-top:16px;flex-wrap:wrap}.btn,.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--line);background:#fff;color:var(--ink-700);padding:8px 12px;border-radius:9px;font-size:13px;font-weight:600;cursor:pointer;transition:border-color .15s,box-shadow .15s}.btn:hover,.select:hover{border-color:#c7d2fe}.btn-primary{background:var(--active);border-color:var(--active);color:#fff}.btn-primary:hover{filter:brightness(1.05)}.live-pill{margin-left:auto;display:inline-flex;align-items:center;gap:7px;background:#e9fbf1;color:#15803d;padding:6px 12px;border-radius:999px;font-weight:700;font-size:12px}.live-pill .pulse{width:7px;height:7px;border-radius:50%;background:#22c55e;animation:pulse 1.8s infinite}@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(34,197,94,.55)}70%{box-shadow:0 0 0 6px rgba(34,197,94,0)}to{box-shadow:0 0 0 0 rgba(34,197,94,0)}}.body{padding:8px 32px 34px}.grid{display:grid;grid-gap:22px;gap:22px}.row-2{grid-template-columns:1fr 1fr}.row-3{grid-template-columns:1fr 1fr 1fr}@media (max-width:940px){.row-2,.row-3{grid-template-columns:1fr}}.section-gap{margin-top:22px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px 22px}.card-head{margin-bottom:6px}.card-head h3{margin:0;font-size:16px;font-weight:700;letter-spacing:-.01em;color:var(--navy)}.legend{display:flex;gap:16px;margin-top:8px;margin-bottom:6px;flex-wrap:wrap}.legend .item{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-500);font-weight:600}.legend .dot{width:9px;height:9px;border-radius:50%}.table{width:100%;border-collapse:collapse;font-size:13px}.table th{text-align:left;font-weight:600;color:var(--ink-500);font-size:11.5px;text-transform:uppercase;letter-spacing:.03em;padding:10px 12px;border-bottom:1px solid var(--line);cursor:pointer;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none}.table th.no-sort{cursor:default}.table th .arrow{color:var(--active);margin-left:4px}.table td{padding:12px;border-bottom:1px solid var(--line-soft);color:var(--ink-700);vertical-align:middle}.table tbody tr:hover{background:#fafcff}.table tbody tr:last-child td{border-bottom:none}.mono{font-variant-numeric:tabular-nums;font-feature-settings:"tnum","tnum"}.strong{font-weight:600;color:var(--navy)}.muted{color:var(--ink-400)}.badge{display:inline-flex;align-items:center;padding:3px 9px;border-radius:999px;font-size:11.5px;font-weight:600;white-space:nowrap}.badge-group{background:#eef2ff;color:#4f56d6}.badge-completed{background:#e7f8ee;color:#15803d}.badge-missed{background:#fdecec;color:#b91c1c}.empty{text-align:center;color:var(--ink-400);padding:36px 20px;font-size:13px}.spinner{display:inline-block;width:18px;height:18px;border:2px solid var(--line);border-top-color:var(--active);border-radius:50%;animation:spin .7s linear infinite;vertical-align:middle}@keyframes spin{to{transform:rotate(1turn)}}.pager{display:flex;align-items:center;justify-content:space-between;margin-top:14px;font-size:12.5px;color:var(--ink-500)}.pager .btn{padding:6px 12px}.pager .btn:disabled{opacity:.45;cursor:not-allowed}.link-btn{background:none;border:none;color:var(--active);font-weight:600;font-size:13px;cursor:pointer;padding:0}.link-btn:hover{text-decoration:underline}.filter-note{display:flex;align-items:center;gap:10px;background:#eef2ff;color:#4f56d6;border:1px solid #dfe4ff;border-radius:10px;padding:9px 14px;font-size:13px;margin-bottom:18px}.filter-note b{font-weight:700}.filter-note .link-btn{margin-left:auto}.group-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}.group-head h3{margin:0;font-size:16px;font-weight:700;color:var(--navy)}.group-stats{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--ink-500)}.group-stats b{color:var(--navy);font-weight:700}.group-stats .sep{color:var(--line)}.recharts-default-tooltip{border-radius:9px!important;border:1px solid var(--line)!important;box-shadow:var(--shadow)!important;font-size:12.5px!important}.recharts-cartesian-axis-tick text{fill:var(--ink-400)}