/* ── DASHBOARD ── */
#dashboard{display:none}
#dashboard.active{display:block}
.dash-body{padding:2rem;max-width:1700px;margin:0 auto}

/* ── SECTION HEADER ── */
.sec-hdr{display:flex;align-items:center;gap:10px;margin:2.5rem 0 1.25rem;flex-wrap:wrap}
.sec-hdr:first-child{margin-top:0}
.sec-icon{width:32px;height:32px;background:rgba(59,130,246,.12);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0}
.sec-hdr h2{font-size:1.05rem;font-weight:600}
.sec-meta{margin-left:auto;font-size:.78rem;color:var(--t3)}
.filtered-tag{font-size:.7rem;background:rgba(245,158,11,.12);border:1px solid rgba(245,158,11,.3);color:var(--amber);padding:2px 8px;border-radius:12px;font-weight:600}

/* ── CARD ── */
.card{background:var(--card);border:1px solid var(--bdr);border-radius:var(--r);padding:1.5rem;box-shadow:var(--sh);animation:fadeUp .4s ease both;transition:background .2s,border-color .2s;overflow:hidden}
@keyframes fadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}

/* ── KPI ── */
.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(172px,1fr));gap:1rem}
.kpi-card{background:var(--card);border:1px solid var(--bdr);border-radius:var(--r);padding:1.1rem 1.35rem;box-shadow:var(--sh);animation:fadeUp .4s ease both;position:relative;overflow:hidden;transition:background .2s,border-color .2s}
.kpi-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px}
.kpi-card:nth-child(1)::before{background:linear-gradient(90deg,#3b82f6,#60a5fa)}
.kpi-card:nth-child(2)::before{background:linear-gradient(90deg,#f59e0b,#fbbf24)}
.kpi-card:nth-child(3)::before{background:linear-gradient(90deg,#10b981,#34d399)}
.kpi-card:nth-child(4)::before{background:linear-gradient(90deg,#8b5cf6,#a78bfa)}
.kpi-card:nth-child(5)::before{background:linear-gradient(90deg,#06b6d4,#22d3ee)}
.kpi-card:nth-child(6)::before{background:linear-gradient(90deg,#ef4444,#f87171)}
.kpi-card:nth-child(7)::before{background:linear-gradient(90deg,#f97316,#fb923c)}
.kpi-card:nth-child(8)::before{background:linear-gradient(90deg,#84cc16,#a3e635)}
.kpi-lbl{font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--t3);margin-bottom:.35rem}
.kpi-val{font-size:1.75rem;font-weight:800;color:var(--t1);line-height:1.1;margin-bottom:.2rem}
.kpi-val.sm{font-size:1.1rem}
.kpi-sub{font-size:.74rem;color:var(--t2)}
.kpi-ico{position:absolute;right:1rem;top:50%;transform:translateY(-50%);font-size:2rem;opacity:.35}

/* ── PARETO BANNER ── */
.pareto-banner{background:linear-gradient(135deg,rgba(59,130,246,.1),rgba(139,92,246,.1));border:1px solid rgba(59,130,246,.3);border-radius:10px;padding:1rem 1.5rem;display:flex;align-items:center;gap:1.25rem;margin-bottom:1.25rem;flex-wrap:wrap}
.pareto-num{font-size:3rem;font-weight:900;background:linear-gradient(135deg,var(--blue),var(--purple));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1}
.pareto-lbl{flex:1;min-width:200px}
.pareto-lbl p{font-size:.85rem;color:var(--t2);line-height:1.5}
.pareto-lbl p strong{color:var(--t1)}
.pareto-pills{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.5rem}

/* ── GRIDS ── */
.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(440px,1fr));gap:1.5rem}
.grid-2>*{min-width:0}
.grid-32{display:grid;grid-template-columns:2fr 1fr;gap:1.5rem}
.grid-32>*{min-width:0}
.chart-lbl{font-size:.83rem;font-weight:600;color:var(--t2);margin-bottom:.85rem}

/* ── HEATMAP ── */
.hm-scroll{overflow-x:auto;padding-bottom:.5rem}
.hm-grid{display:grid;grid-template-columns:64px repeat(24,1fr);gap:2px;min-width:680px}
.hm-cor,.hm-hl{font-size:.63rem;color:var(--t3);text-align:center;padding-bottom:4px;display:flex;align-items:flex-end;justify-content:center}
.hm-dl{font-size:.68rem;color:var(--t2);display:flex;align-items:center;justify-content:flex-end;padding-right:8px}
.hm-cell{border-radius:3px;cursor:pointer;transition:transform .15s;min-height:26px}
.hm-cell:hover{transform:scale(1.2);z-index:10}
.hm-tip{position:fixed;background:var(--bg2);border:1px solid var(--bdr);border-radius:6px;padding:6px 11px;font-size:.75rem;color:var(--t1);pointer-events:none;z-index:10000;display:none;white-space:nowrap;box-shadow:var(--sh)}

/* ── TABLE ── */
.tbl-controls{display:flex;gap:.75rem;margin-bottom:1rem;flex-wrap:wrap;align-items:center}
.search-inp{background:var(--bg);border:1px solid var(--bdr);border-radius:8px;padding:8px 14px;color:var(--t1);font-size:.85rem;flex:1;min-width:200px;outline:none;transition:border-color .2s}
.search-inp:focus{border-color:var(--blue)}
.search-inp::placeholder{color:var(--t3)}
.btn-export{background:rgba(245,158,11,.1);border:1px solid rgba(245,158,11,.3);color:var(--amber);padding:8px 16px;border-radius:8px;font-size:.83rem;cursor:pointer;transition:all .2s;white-space:nowrap}
.btn-export:hover{background:rgba(245,158,11,.2)}
.tbl-wrap{overflow-x:auto;border-radius:8px;border:1px solid var(--bdr)}
table{width:100%;border-collapse:collapse;font-size:.82rem}
th{background:var(--bg);padding:10px 13px;text-align:left;font-size:.67rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--t2);cursor:pointer;user-select:none;white-space:nowrap;position:sticky;top:0;transition:background .2s}
th:hover{color:var(--blue)}
th.asc::after{content:' ↑'}th.desc::after{content:' ↓'}
td{padding:9px 13px;border-top:1px solid var(--bdr);vertical-align:middle}
tr:hover td{background:rgba(59,130,246,.04)}
.badge{display:inline-block;padding:2px 8px;border-radius:12px;font-size:.67rem;font-weight:700;white-space:nowrap}
.b-blue{background:rgba(59,130,246,.12);color:var(--blue)}
.b-amber{background:rgba(245,158,11,.12);color:var(--amber)}
.b-green{background:rgba(16,185,129,.12);color:var(--green)}
.b-red{background:rgba(239,68,68,.12);color:var(--red)}
.b-purple{background:rgba(139,92,246,.12);color:var(--purple)}
.b-cyan{background:rgba(6,182,212,.12);color:var(--cyan)}
.b-orange{background:rgba(249,115,22,.12);color:var(--orange)}
.b-gray{background:rgba(100,116,139,.15);color:var(--t2)}
.tags-cell{display:flex;flex-wrap:wrap;gap:3px}
.tbl-pager{display:flex;align-items:center;justify-content:space-between;margin-top:.9rem;font-size:.78rem;color:var(--t2)}
.page-btns{display:flex;gap:3px}
.pg{background:var(--bg);border:1px solid var(--bdr);color:var(--t2);width:28px;height:28px;border-radius:5px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.78rem;transition:all .15s}
.pg:hover,.pg.on{background:rgba(59,130,246,.1);border-color:var(--blue);color:var(--blue)}
.pg:disabled{opacity:.3;cursor:not-allowed}

/* ── INSIGHTS ── */
.insights-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:1rem}
.ins-card{background:var(--bg2);border:1px solid var(--bdr);border-radius:10px;padding:1.1rem;display:flex;gap:.9rem;align-items:flex-start;animation:fadeUp .4s ease both;transition:border-color .2s,background .2s}
.ins-card:hover{border-color:rgba(59,130,246,.4)}
.ins-ico{width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}
.ins-blue   .ins-ico{background:rgba(59,130,246,.12)}
.ins-amber  .ins-ico{background:rgba(245,158,11,.12)}
.ins-green  .ins-ico{background:rgba(16,185,129,.12)}
.ins-red    .ins-ico{background:rgba(239,68,68,.12)}
.ins-purple .ins-ico{background:rgba(139,92,246,.12)}
.ins-cyan   .ins-ico{background:rgba(6,182,212,.12)}
.ins-orange .ins-ico{background:rgba(249,115,22,.12)}
.ins-body{flex:1}
.ins-title{font-size:.67rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--t3);margin-bottom:.25rem}
.ins-text{font-size:.86rem;color:var(--t2);line-height:1.55}
.ins-text strong{color:var(--t1)}

/* ── MISC ── */
.trend-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 12px;border-radius:20px;font-size:.75rem;font-weight:700}
.tb-up{background:rgba(239,68,68,.12);color:var(--red)}
.tb-stable{background:rgba(245,158,11,.12);color:var(--amber)}
.tb-down{background:rgba(16,185,129,.12);color:var(--green)}
.state-list{display:flex;flex-direction:column;gap:7px;margin-top:10px}
.state-row{display:flex;align-items:center;gap:7px;font-size:.75rem}
.state-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}
.state-name{min-width:28px;font-weight:700;color:var(--t1)}
.state-bar-bg{flex:1;height:4px;background:var(--bg);border-radius:2px;overflow:hidden}
.state-bar-fill{height:100%;border-radius:2px}
.state-pct{min-width:34px;text-align:right;color:var(--t3)}

/* ── RESPONSIVE ── */
@media(max-width:1100px){.grid-32{grid-template-columns:1fr}}
@media(max-width:900px){.grid-2{grid-template-columns:1fr}}
@media(max-width:640px){.dash-body{padding:1rem}.kpi-grid{grid-template-columns:repeat(2,1fr)}.hdr-badge{display:none}}

/* ── SCROLLBAR ── */
::-webkit-scrollbar{width:5px;height:5px}
::-webkit-scrollbar-track{background:var(--bg)}
::-webkit-scrollbar-thumb{background:var(--bdr);border-radius:3px}

/* ── FOOTER ── */
.dash-footer{text-align:center;padding:1.75rem;color:var(--t3);font-size:.75rem;border-top:1px solid var(--bdr);margin-top:2rem}
