#appView.pulse-admin { background:#fff; }
.pulse-admin .main { min-width:0; background:#fff; }
.pulse-admin .sidebar { background:#fff; }
.pulse-admin .menu button.active { background:#e7f5f4; box-shadow:none; }
#adminPulseView { --pulse-teal:#087c82; --pulse-blue:#188ac1; --pulse-coral:#fa7770; --pulse-gold:#b68b24; color:#14232a; }
.pulse-top { display:grid; grid-template-columns:minmax(0, .37fr) minmax(0, .63fr); gap:28px; align-items:stretch; }
.pulse-kpis { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.pulse-kpi { display:flex; flex-direction:column; justify-content:center; min-height:126px; border:1px solid #e2ecee; border-radius:6px; padding:18px; background:#fff; min-width:0; }
.pulse-kpi-heading { display:flex; align-items:center; gap:10px; font-size:13px; line-height:1.4; }
.pulse-icon { display:inline-flex; align-items:center; justify-content:center; width:36px; height:36px; flex:0 0 36px; background:#e4f4f3; color:var(--pulse-teal); border-radius:50%; }
.pulse-icon svg,.pulse-icon img { width:20px; height:20px; }
.pulse-kpi:nth-child(3) .pulse-icon { background:#e8f4fc; color:var(--pulse-blue); }
.pulse-kpi:nth-child(4) .pulse-icon,.pulse-kpi:nth-child(6) .pulse-icon { background:#fff0ed; color:#d65a56; }
.pulse-kpi:nth-child(5) .pulse-icon { background:#fff7dc; color:var(--pulse-gold); }
.pulse-kpi strong { display:block; margin:16px 0 4px; font-size:30px; font-weight:750; line-height:1.2; overflow-wrap:anywhere; font-variant-numeric:tabular-nums; }
.pulse-kpi small { color:#7a898f; font-size:11px; }
.pulse-chart-section { min-width:0; display:flex; flex-direction:column; padding:6px 0 0; }
.pulse-chart-heading { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; }
#adminPulseView h2 { font-size:18px; font-weight:700; margin:0; }
.pulse-legend { display:flex; gap:18px; font-size:12px; }
.pulse-dot { display:inline-block; width:8px; height:8px; border-radius:50%; margin-right:7px; background:var(--pulse-teal); }
.pulse-dot.coral { background:var(--pulse-coral); }
.pulse-dot.gold { background:var(--pulse-gold); }
.pulse-chart { position:relative; height:280px; min-width:0; margin:16px 0; flex:1; min-height:240px; }
.pulse-chart canvas { display:block; width:100%; height:100%; }
.pulse-points-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; padding:12px 0; }
.pulse-points-summary>div+div { border-left:1px solid #e1e8eb; padding-left:16px; }
.pulse-points-summary span { font-size:12px; color:#52666e; }
.pulse-points-summary strong { display:block; font-size:24px; margin-top:10px; line-height:1.2; overflow-wrap:anywhere; }
.pulse-adoption { border-top:1px solid #e1e8eb; margin-top:28px; padding-top:24px; }
.pulse-adoption-grid { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr); gap:36px; margin-top:22px; }
.pulse-adoption-row { display:grid; grid-template-columns:minmax(140px,1.1fr) minmax(60px,1fr) 88px 46px; gap:12px; align-items:center; min-height:48px; font-size:12px; }
.pulse-adoption-row progress { appearance:none; width:100%; height:12px; border:0; border-radius:4px; overflow:hidden; background:#edf1f3; }
.pulse-adoption-row progress::-webkit-progress-bar { background:#edf1f3; }
.pulse-adoption-row progress::-webkit-progress-value { background:var(--pulse-teal); border-radius:4px; }
.pulse-adoption-row progress::-moz-progress-bar { background:var(--pulse-teal); }
.pulse-adoption-row .pulse-count { color:#73848c; text-align:right; }
.pulse-adoption-row strong { text-align:right; }
.pulse-tiers { border-left:1px solid #e1e8eb; padding-left:26px; min-width:0; }
.pulse-tier-row { display:grid; grid-template-columns:82px minmax(40px,1fr) 78px; gap:12px; align-items:center; min-height:46px; font-size:12px; }
.pulse-tier-row>span:first-child { overflow-wrap:anywhere; }
.pulse-tier-track { height:12px; border-radius:4px; background:#edf1f3; overflow:hidden; }
.pulse-tier-fill { height:100%; background:var(--pulse-teal); border-radius:4px; }
.pulse-tier-row:nth-of-type(2) .pulse-tier-fill { background:#6bc9da; }
.pulse-tier-row:nth-of-type(3) .pulse-tier-fill { background:#e8ba45; }
.pulse-tier-row strong { text-align:right; }
.pulse-footer { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:1px solid #e1e8eb; margin-top:28px; padding:22px 0; gap:20px; }
.pulse-footer>div { display:flex; align-items:center; gap:14px; min-width:0; }
.pulse-footer span:not(.pulse-icon) { font-size:12px; color:#52666e; }
.pulse-footer strong { display:block; margin-top:6px; font-size:24px; }
.pulse-date { font-size:11px; color:#7a898f; text-align:right; margin:8px 0; }
.pulse-state { padding:44px 0; color:#62777e; }
.pulse-state[role=alert] { color:#ac4545; }
.pulse-state button { margin-top:16px; }
@media(max-width:1150px) { .pulse-top { grid-template-columns:minmax(0,1fr); } .pulse-kpis { grid-template-columns:repeat(3,minmax(0,1fr)); } .pulse-chart { flex:auto; height:280px; } .pulse-adoption-grid { grid-template-columns:1fr; gap:24px; } .pulse-tiers { border:0; padding-left:0; } }
@media(max-width:650px) { .pulse-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; } .pulse-kpi { padding:14px; min-height:126px; } .pulse-kpi strong { font-size:26px; } .pulse-icon { width:28px; height:28px; flex-basis:28px; } .pulse-kpi-heading { gap:8px; font-size:12px; } .pulse-points-summary { gap:10px; } .pulse-points-summary>div+div { padding-left:10px; } .pulse-points-summary strong { font-size:20px; } .pulse-adoption-row { grid-template-columns:minmax(0,1fr) 76px 42px; gap:8px; padding:8px 0; } .pulse-adoption-row progress { grid-row:2; grid-column:1/-1; } .pulse-footer { grid-template-columns:1fr; gap:20px; } .pulse-date { text-align:left; } }
