:root{
  /* Warm ivory palette */
  --bg:         #f9f6f0;
  --bg2:        #f2ede3;
  --bg3:        #ede5d8;
  --surface:    #ffffff;
  --surface2:   #faf8f4;
  --border:     #e5ddd0;
  --border2:    #d4c9b5;

  /* Brand */
  --ink:        #1a1208;
  --ink2:       #3d3020;
  --muted:      #7a6b52;
  --muted2:     #a8997e;
  --placeholder:#c9bba3;

  /* Alert palette — audit-specific */
  --crimson:    #9b1c1c;
  --crimson-t:  #fef2f2;
  --crimson-m:  #fca5a5;
  --amber:      #92400e;
  --amber-t:    #fffbeb;
  --amber-m:    #fcd34d;
  --gold:       #854d0e;
  --gold-t:     #fefce8;
  --teal:       #115e59;
  --teal-t:     #f0fdfa;
  --teal-m:     #5eead4;
  --slate:      #1e3a5f;
  --slate-t:    #eff6ff;
  --slate-m:    #93c5fd;
  --purple:     #4c1d95;
  --purple-t:   #f5f3ff;
  --purple-m:   #c4b5fd;
  --rose:       #9f1239;
  --rose-t:     #fff1f2;

  /* Shadows */
  --sh1: 0 1px 4px rgba(26,18,8,0.06), 0 1px 2px rgba(26,18,8,0.04);
  --sh2: 0 6px 24px rgba(26,18,8,0.08), 0 2px 8px rgba(26,18,8,0.04);
  --sh3: 0 16px 48px rgba(26,18,8,0.10), 0 4px 16px rgba(26,18,8,0.06);
  --sh-red:    0 8px 28px rgba(155,28,28,0.16);
  --sh-amber:  0 8px 28px rgba(146,64,14,0.16);
  --sh-teal:   0 8px 28px rgba(17,94,89,0.16);
  --sh-slate:  0 8px 28px rgba(30,58,95,0.16);
}

/* ── BASE ──────────────────────────────────────── */
body{
  background:var(--bg);
  font-family:'DM Sans',sans-serif;
  color:var(--ink);
  font-size:14px;
  line-height:1.55;
  min-height:100vh;
}

/* Warm noise texture overlay */
body::before{
  content:'';
  position:fixed;inset:0;z-index:0;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.035'/%3E%3C/svg%3E");
  background-size:200px 200px;
  opacity:0.6;
}

body::after{
  content:'';
  position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(ellipse 60% 45% at 5% 0%, rgba(155,28,28,0.04) 0%, transparent 55%),
    radial-gradient(ellipse 50% 40% at 95% 100%, rgba(17,94,89,0.04) 0%, transparent 55%);
}


.logo{display:flex;align-items:center;gap:13px}
.logo-mark{
  width:40px;height:40px;border-radius:12px;
  background:linear-gradient(135deg, #9b1c1c 0%, #7f1d1d 100%);
  display:flex;align-items:center;justify-content:center;
  font-size:20px;
  box-shadow:0 4px 14px rgba(155,28,28,0.3),inset 0 1px 0 rgba(255,255,255,0.15);
}
.logo-text{}
.logo-name{
 
  font-weight:700;font-size:18px;
  color:var(--ink);letter-spacing:-0.3px;line-height:1;
}
.logo-name em{color:var(--crimson);font-style:normal}
.logo-tagline{
  font-size:10px;color:var(--muted);
 
  margin-top:1px;
}

.header-right{display:flex;align-items:center;gap:10px}
.hbadge{
  display:flex;align-items:center;gap:6px;
  padding:5px 13px;border-radius:20px;
  font-size:11px;font-weight:500;
 
  border:1px solid var(--border2);
  color:var(--muted);
  background:rgba(255,255,255,0.7);
  backdrop-filter:blur(8px);
}
.hbadge.warn{
  border-color:rgba(155,28,28,0.3);
  background:rgba(254,242,242,0.8);
  color:var(--crimson);
}
.alert-dot{
  width:7px;height:7px;border-radius:50%;
  background:var(--crimson);
  box-shadow:0 0 0 2px rgba(155,28,28,0.2);
  animation:pulse 2s ease infinite;
}
@keyframes pulse{0%,100%{box-shadow:0 0 0 2px rgba(155,28,28,0.2)}50%{box-shadow:0 0 0 5px rgba(155,28,28,0.05)}}

/* ── MAIN ──────────────────────────────────────── */
main{
  position:relative;z-index:1;
  max-width:1580px;margin:0 auto;
  padding:30px 36px 60px;
}

/* ── PAGE HERO ─────────────────────────────────── */
.hero{
  margin-bottom:30px;
  display:flex;align-items:flex-end;justify-content:space-between;
  flex-wrap:wrap;gap:16px;
}
.hero-eyebrow{
 
  font-size:10px;text-transform:uppercase;letter-spacing:1.8px;
  color:var(--crimson);margin-bottom:8px;
  display:flex;align-items:center;gap:8px;
}
.hero-eyebrow::before{content:'';width:22px;height:2px;background:var(--crimson);border-radius:2px;display:block}
.hero-title{
  
  font-weight:800;font-size:34px;
  color:var(--ink);letter-spacing:-0.8px;line-height:1.05;
}
.hero-title span{color:var(--crimson)}
.hero-sub{font-size:13px;color:var(--muted);margin-top:7px;font-weight:300;max-width:540px}

.hero-stats{
  display:flex;align-items:center;gap:20px;
}
.hstat{
  text-align:right;
  padding:10px 18px;
  background:rgba(255,255,255,0.7);
  border:1px solid var(--border);
  border-radius:12px;
  box-shadow:var(--sh1);
}
.hstat-val{
  
  font-weight:800;font-size:22px;
  color:var(--crimson);line-height:1;
}
.hstat-label{font-size:10px;color:var(--muted);margin-top:3px}

/* ── ALERT BANNER ──────────────────────────────── */
.alert-banner{
  display:flex;align-items:center;gap:14px;
  background:linear-gradient(135deg,rgba(155,28,28,0.07),rgba(155,28,28,0.03));
  border:1px solid rgba(155,28,28,0.2);
  border-left:4px solid var(--crimson);
  border-radius:14px;
  padding:14px 20px;
  margin-bottom:24px;
  box-shadow:var(--sh1);
}
.banner-icon{font-size:20px}
.banner-text{}
.banner-title{font-weight:700;color:var(--crimson);font-size:13px;margin-bottom:2px}
.banner-sub{font-size:12px;color:var(--muted)}
.banner-action{
  margin-left:auto;

  font-size:10px;color:var(--crimson);
  border:1px solid rgba(155,28,28,0.3);
  border-radius:8px;padding:5px 12px;
  cursor:pointer;white-space:nowrap;
  background:rgba(255,255,255,0.6);
}

/* ── KPI STRIP ─────────────────────────────────── */
.kpi-strip{
  display:grid;grid-template-columns:repeat(6,1fr);gap:14px;
  margin-bottom:24px;
}
.kpi{
  position:relative;overflow:hidden;
  border-radius:18px;
  padding:18px 18px 14px;
  background:rgba(255,255,255,0.75);
  backdrop-filter:blur(18px) saturate(150%);
  border:1px solid rgba(255,255,255,0.9);
  border-bottom-color:var(--border);
  box-shadow:var(--sh1),inset 0 1px 0 rgba(255,255,255,0.95);
  transition:transform .22s cubic-bezier(.34,1.56,.64,1),box-shadow .22s;
  cursor:default;
}
.kpi::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;border-radius:18px 18px 0 0}
.kpi::after{content:'';position:absolute;bottom:-20px;right:-20px;width:70px;height:70px;border-radius:50%;opacity:.1;transition:opacity .3s}
.kpi:hover{transform:translateY(-3px) scale(1.01)}
.kpi:hover::after{opacity:.2}

.kpi.c-r::before{background:linear-gradient(90deg,#9b1c1c,#ef4444)}
.kpi.c-r::after{background:radial-gradient(circle,#ef4444,transparent 70%)}
.kpi.c-r:hover{box-shadow:var(--sh-red),inset 0 1px 0 #fff}
.kpi.c-a::before{background:linear-gradient(90deg,#92400e,#f59e0b)}
.kpi.c-a::after{background:radial-gradient(circle,#f59e0b,transparent 70%)}
.kpi.c-a:hover{box-shadow:var(--sh-amber),inset 0 1px 0 #fff}
.kpi.c-t::before{background:linear-gradient(90deg,#115e59,#2dd4bf)}
.kpi.c-t::after{background:radial-gradient(circle,#2dd4bf,transparent 70%)}
.kpi.c-t:hover{box-shadow:var(--sh-teal),inset 0 1px 0 #fff}
.kpi.c-s::before{background:linear-gradient(90deg,#1e3a5f,#60a5fa)}
.kpi.c-s::after{background:radial-gradient(circle,#60a5fa,transparent 70%)}
.kpi.c-s:hover{box-shadow:var(--sh-slate),inset 0 1px 0 #fff}
.kpi.c-p::before{background:linear-gradient(90deg,#4c1d95,#a78bfa)}
.kpi.c-p::after{background:radial-gradient(circle,#a78bfa,transparent 70%)}
.kpi.c-p:hover{box-shadow:0 8px 28px rgba(76,29,149,0.18),inset 0 1px 0 #fff}
.kpi.c-g::before{background:linear-gradient(90deg,#854d0e,#eab308)}
.kpi.c-g::after{background:radial-gradient(circle,#eab308,transparent 70%)}
.kpi.c-g:hover{box-shadow:0 8px 28px rgba(133,77,14,0.18),inset 0 1px 0 #fff}

.kpi-top{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:10px}
.kpi-icon{
  width:36px;height:36px;border-radius:11px;
  display:flex;align-items:center;justify-content:center;font-size:16px;
  box-shadow:0 2px 6px rgba(0,0,0,0.07);
}
.kpi.c-r .kpi-icon{background:linear-gradient(135deg,#fee2e2,#fef2f2)}
.kpi.c-a .kpi-icon{background:linear-gradient(135deg,#fef3c7,#fffbeb)}
.kpi.c-t .kpi-icon{background:linear-gradient(135deg,#ccfbf1,#f0fdfa)}
.kpi.c-s .kpi-icon{background:linear-gradient(135deg,#dbeafe,#eff6ff)}
.kpi.c-p .kpi-icon{background:linear-gradient(135deg,#ede9fe,#f5f3ff)}
.kpi.c-g .kpi-icon{background:linear-gradient(135deg,#fef9c3,#fefce8)}

.kpi-spark{width:50px;height:26px;opacity:.65}
.kpi-label{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.3px;font-weight:500;margin-bottom:2px}
.kpi-value{
 
  font-weight:800;font-size:27px;line-height:1.05;
  color:var(--ink);letter-spacing:-0.5px;margin-bottom:6px;
}
.kpi-footer{display:flex;align-items:center;justify-content:space-between;padding-top:9px;border-top:1px solid rgba(229,221,208,0.6)}
.kpi-trend{font-size:10.5px;font-weight:600;display:flex;align-items:center;gap:3px}
.t-bad{color:var(--crimson)}
.t-good{color:var(--teal)}
.t-warn{color:var(--amber)}
.t-flat{color:var(--muted)}
.kpi-ctx{font-size:10px;color:var(--muted2);}




/* Accent borders */


.ch{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:18px;gap:10px}
.ct{font-weight:700;font-size:15px;color:var(--ink);letter-spacing:-0.2px;line-height:1.2}
.cm{font-size:11.5px;color:var(--muted);margin-top:2px;font-weight:300}

/* ── BADGE ─────────────────────────────────────── */
.badge{
 font-size:10px;font-weight:500;
  padding:3px 10px;border-radius:8px;white-space:nowrap;
  box-shadow:0 1px 3px rgba(0,0,0,0.05);letter-spacing:.1px;
}
.bd-r{background:linear-gradient(135deg,#fee2e2,#fef2f2);color:var(--crimson) !important;border:1px solid rgba(155,28,28,0.15) !important}
.bd-a{background:linear-gradient(135deg,#fef3c7,#fffbeb);color:var(--amber) !important;border:1px solid rgba(146,64,14,0.15) !important}
.bd-t{background:linear-gradient(135deg,#ccfbf1,#f0fdfa);color:var(--teal) !important;border:1px solid rgba(17,94,89,0.15) !important}
.bd-s{background:linear-gradient(135deg,#dbeafe,#eff6ff);color:var(--slate) !important;border:1px solid rgba(30,58,95,0.15) !important}
.bd-p{background:linear-gradient(135deg,#ede9fe,#f5f3ff);color:var(--purple) !important;border:1px solid rgba(76,29,149,0.15) !important}
.bd-g{background:linear-gradient(135deg,#fef9c3,#fefce8);color:var(--gold) !important;border:1px solid rgba(133,77,14,0.15) !important}

canvas{display:block;width:100%!important}

/* ── TABLE ─────────────────────────────────────── */
.tw{overflow-x:auto;border-radius:10px}
.tw::-webkit-scrollbar{height:4px}
.tw::-webkit-scrollbar-track{background:var(--bg2);border-radius:3px}
.tw::-webkit-scrollbar-thumb{background:var(--border2);border-radius:3px}
table{width:100%;border-collapse:separate;border-spacing:0}
thead th{
 font-size:9px;text-transform:uppercase;
  letter-spacing:1px;color:var(--muted2);font-weight:500;
  padding:9px 13px;text-align:left;
  border-bottom:1.5px solid var(--border);white-space:nowrap;
  background:linear-gradient(180deg,var(--surface2),transparent);
}
thead th:first-child{border-radius:9px 0 0 0}
thead th:last-child{border-radius:0 9px 0 0}
tbody td{
  padding:10px 13px;border-bottom:1px solid rgba(229,221,208,0.55);
  color:var(--ink2);font-size:12.5px;vertical-align:middle;
  transition:background .12s;
}
tbody tr:last-child td{border-bottom:none}
tbody tr:hover td{background:rgba(242,237,227,0.4)}
td.b{font-weight:600;color:var(--ink)}
td.m{font-size:11.5px}
td.red{color:var(--crimson);font-weight:600}
td.teal{color:var(--teal);font-weight:600}
td.amb{color:var(--amber);font-weight:600}

/* ── STATUS PILL ───────────────────────────────── */
.pill{
  display:inline-flex;align-items:center;gap:3px;
  padding:3px 10px;border-radius:20px;
  font-size:10px;font-weight:700;
  
  box-shadow:0 1px 3px rgba(0,0,0,0.06);
}
.pill-r{background:linear-gradient(135deg,#fee2e2,#fef2f2);color:var(--crimson);border:1px solid rgba(155,28,28,0.15)}
.pill-a{background:linear-gradient(135deg,#fef3c7,#fffbeb);color:var(--amber);border:1px solid rgba(146,64,14,0.15)}
.pill-g{background:linear-gradient(135deg,#ccfbf1,#f0fdfa);color:var(--teal);border:1px solid rgba(17,94,89,0.15)}
.pill-s{background:linear-gradient(135deg,#dbeafe,#eff6ff);color:var(--slate);border:1px solid rgba(30,58,95,0.15)}

/* ── SEVERITY RANK ─────────────────────────────── */
.sev-item{display:flex;align-items:flex-start;gap:14px;padding:12px 0;border-bottom:1px solid rgba(229,221,208,0.55);transition:background .12s}
.sev-item:last-child{border-bottom:none}
.sev-item:hover{background:rgba(242,237,227,0.4);margin:0 -8px;padding-left:8px;padding-right:8px;border-radius:8px}
.sev-rank{
  font-size:21px;font-weight:800;
  color:var(--placeholder);width:28px;flex-shrink:0;line-height:1.1
}
.sev-body{flex:1}
.sev-title{font-size:12.5px;color:var(--ink);font-weight:600;margin-bottom:3px;line-height:1.3}
.sev-meta{font-size:10.5px;color:var(--muted);}
.sev-right{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0}
.sev-count{font-size:18px;font-weight:800;color:var(--crimson)}
.sev-pct{font-size:10px;color:var(--muted)}

/* ── RISK METER ────────────────────────────────── */
.risk-meter{margin:10px 0}
.risk-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid rgba(229,221,208,0.5)}
.risk-row:last-child{border-bottom:none}
.risk-label{font-size:12px;color:var(--ink2);font-weight:500;width:140px;flex-shrink:0}
.risk-track{flex:1;height:9px;background:var(--bg3);border-radius:10px;overflow:hidden;box-shadow:inset 0 1px 2px rgba(26,18,8,0.06)}
.risk-fill{height:100%;border-radius:10px;transition:width 1s cubic-bezier(.34,1.2,.64,1)}
.risk-val{font-size:11px;color:var(--ink);font-weight:500;width:44px;text-align:right}
.risk-badge{width:36px;text-align:center}

/* ── REVENUE TABLE ─────────────────────────────── */
.rev-item{
  display:flex;align-items:center;justify-content:space-between;
  padding:11px 14px;border-radius:10px;
  background:rgba(255,255,255,0.5);border:1px solid var(--border);
  margin-bottom:8px;gap:10px;
  transition:box-shadow .15s,transform .15s;
}
.rev-item:hover{box-shadow:var(--sh2);transform:translateX(2px)}
.rev-item:last-child{margin-bottom:0}
.rev-label{font-size:12.5px;color:var(--ink);font-weight:600;flex:1}
.rev-sub{font-size:10.5px;color:var(--muted);margin-top:1px}
.rev-val{
  font-size:20px;font-weight:800;
  color:var(--crimson);white-space:nowrap;
}
.rev-delta{font-size:10px;color:var(--muted);text-align:right}

/* ── TIMELINE ──────────────────────────────────── */
.tl-item{display:flex;gap:14px;padding-bottom:18px;position:relative}
.tl-item::before{content:'';position:absolute;left:15px;top:30px;bottom:0;width:1px;background:var(--border2)}
.tl-item:last-child{padding-bottom:0}
.tl-item:last-child::before{display:none}
.tl-dot{width:32px;height:32px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0;box-shadow:var(--sh1)}
.tl-body{flex:1}
.tl-title{font-size:12.5px;color:var(--ink);font-weight:600;margin-bottom:3px}
.tl-meta{font-size:11px;color:var(--muted);margin-bottom:4px}
.tl-desc{font-size:11.5px;color:var(--ink2);line-height:1.45}
.tl-impact{
  display:inline-block;margin-top:5px;
  font-size:10px;
  padding:2px 9px;border-radius:6px;font-weight:500;
}

/* ── DONUT LEGEND ──────────────────────────────── */
.dl{display:flex;flex-direction:column;gap:9px;margin-top:14px}
.dl-row{display:flex;align-items:center;justify-content:space-between;gap:10px}
.dl-left{display:flex;align-items:center;gap:9px}
.dl-dot{width:10px;height:10px;border-radius:3px;flex-shrink:0;box-shadow:0 1px 3px rgba(0,0,0,0.1)}
.dl-name{font-size:12px;color:var(--ink2);font-weight:500}
.dl-right{display:flex;align-items:center;gap:9px}
.dl-pct{font-size:12px;color:var(--ink);font-weight:600;min-width:36px;text-align:right}
.dl-track{width:70px;height:4px;background:var(--border);border-radius:3px;overflow:hidden}
.dl-fill{height:100%;border-radius:3px;transition:width .8s cubic-bezier(.34,1.2,.64,1)}

/* ── COMPLIANCE GAUGE ──────────────────────────── */
.gauge-wrap{display:flex;flex-direction:column;align-items:center;padding:8px 0}
.gauge-ring{position:relative;width:140px;height:140px;margin:0 auto 12px}
.gauge-ring svg{transform:rotate(-90deg)}
.gauge-center{
  position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;
}
.gauge-val{font-size:26px;font-weight:800;color:var(--crimson);line-height:1}
.gauge-lbl{font-size:10px;color:var(--muted);margin-top:2px}
.gauge-items{display:flex;flex-direction:column;gap:7px;width:100%}
.gi{display:flex;align-items:center;justify-content:space-between;font-size:11.5px}
.gi-name{color:var(--ink2);font-weight:500}
.gi-val{font-size:11px;font-weight:500}

/* ── HEATMAP ───────────────────────────────────── */
.hm-grid{display:grid;grid-template-columns:90px repeat(12,1fr);gap:4px;min-width:560px}
.hm-h{font-size:9px;color:var(--muted2);display:flex;align-items:center;justify-content:center;padding-bottom:2px}
.hm-yl{font-size:10px;color:var(--muted);display:flex;align-items:center;justify-content:flex-end;padding-right:10px;font-weight:500}
.hm-cell{
  height:30px;border-radius:7px;
  display:flex;align-items:center;justify-content:center;
  font-size:8.5px;cursor:pointer;
  border:1px solid rgba(255,255,255,0.3);
  transition:transform .15s cubic-bezier(.34,1.56,.64,1),box-shadow .15s;
}
.hm-cell:hover{transform:scale(1.14);z-index:5;box-shadow:0 6px 18px rgba(155,28,28,0.2)}
.hm-leg{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:10px;color:var(--muted2)}
.hm-sw-wrap{display:flex;gap:3px}
.hm-sw{width:20px;height:8px;border-radius:3px;border:1px solid rgba(255,255,255,0.2)}

/* ── WATERFALL CHART ───────────────────────────── */
.wf-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid rgba(229,221,208,0.5)}
.wf-row:last-child{border-bottom:none}
.wf-label{font-size:11.5px;color:var(--ink2);font-weight:500;width:160px;flex-shrink:0;line-height:1.3}
.wf-track{flex:1;height:24px;background:var(--bg3);border-radius:6px;overflow:visible;position:relative}
.wf-bar{height:100%;border-radius:6px;display:flex;align-items:center;justify-content:flex-end;padding-right:8px;transition:width 1s cubic-bezier(.34,1.2,.64,1);position:relative}
.wf-bar-val{font-size:10px;font-weight:600;white-space:nowrap;position:absolute;right:-44px;color:var(--ink)}
.wf-impact{font-size:10px;color:var(--muted);width:70px;text-align:right}

/* ── ALERT LIST ────────────────────────────────── */
.al-item{
  display:flex;align-items:flex-start;gap:12px;
  padding:12px 14px;border-radius:10px;
  margin-bottom:8px;
  border:1px solid;
  transition:box-shadow .15s;
}
.al-item:last-child{margin-bottom:0}
.al-item:hover{box-shadow:var(--sh2)}
.al-item.sev-h{background:rgba(254,242,242,0.7);border-color:rgba(155,28,28,0.2)}
.al-item.sev-m{background:rgba(255,251,235,0.7);border-color:rgba(146,64,14,0.2)}
.al-item.sev-l{background:rgba(240,253,250,0.7);border-color:rgba(17,94,89,0.2)}
.al-ico{font-size:16px;flex-shrink:0;margin-top:1px}
.al-body{flex:1}
.al-title{font-size:12.5px;font-weight:600;margin-bottom:2px}
.sev-h .al-title{color:var(--crimson)}
.sev-m .al-title{color:var(--amber)}
.sev-l .al-title{color:var(--teal)}
.al-detail{font-size:11px;color:var(--muted);line-height:1.4}
.al-right{text-align:right;flex-shrink:0}
.al-count{font-size:18px;font-weight:800}
.sev-h .al-count{color:var(--crimson)}
.sev-m .al-count{color:var(--amber)}
.sev-l .al-count{color:var(--teal)}
.al-unit{font-size:9px;color:var(--muted);}

/* ── PROGRESS CARDS ────────────────────────────── */
.prog-card{
  padding:14px 16px;border-radius:12px;
  background:rgba(255,255,255,0.55);
  border:1px solid var(--border);
  margin-bottom:10px;
}
.prog-card:last-child{margin-bottom:0}
.prog-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.prog-title{font-size:12px;color:var(--ink);font-weight:600}
.prog-val{font-size:12px;font-weight:600}
.prog-track{height:8px;background:var(--bg3);border-radius:10px;overflow:hidden;box-shadow:inset 0 1px 2px rgba(26,18,8,0.05)}
.prog-fill{height:100%;border-radius:10px;transition:width 1s cubic-bezier(.34,1.2,.64,1)}
.prog-sub{font-size:10.5px;color:var(--muted);margin-top:5px;}

/* ── FOOTER ────────────────────────────────────── */
footer{
  border-top:1px solid var(--border);
  padding:22px 36px;
  display:flex;align-items:center;justify-content:space-between;
  flex-wrap:wrap;gap:10px;
  background:rgba(249,246,240,0.85);
  backdrop-filter:blur(12px);
  position:relative;z-index:1;
}
.fl{font-size:14px;font-weight:700;color:var(--ink)}
.fl em{color:var(--crimson);font-style:normal}
.fm{font-size:11px;color:var(--muted2);}


/* ── ANIMATIONS ────────────────────────────────── */
@keyframes fadeUp{from{opacity:0;transform:translateY(20px) scale(.98)}to{opacity:1;transform:none}}
.kpi{animation:fadeUp .45s cubic-bezier(.34,1.2,.64,1) both}
.kpi:nth-child(1){animation-delay:.04s}.kpi:nth-child(2){animation-delay:.09s}
.kpi:nth-child(3){animation-delay:.14s}.kpi:nth-child(4){animation-delay:.19s}
.kpi:nth-child(5){animation-delay:.24s}.kpi:nth-child(6){animation-delay:.30s}
.card{animation:fadeUp .5s cubic-bezier(.34,1.2,.64,1) both;animation-delay:.12s}
.row .card:nth-child(2){animation-delay:.20s}
.row .card:nth-child(3){animation-delay:.28s}