:root{
  --gcd-green:#18864b;--gcd-amber:#d99218;--gcd-red:#c62828;--gcd-grey:#80868b;--gcd-blue:#1f5fbf;
  --gcd-ink:#172033;--gcd-muted:#64748b;--gcd-soft-blue:#eef4ff;--gcd-soft-green:#edf8f2;--gcd-soft-amber:#fff8e6;--gcd-soft-red:#fff0f0;
}
.v2285-hero{border:0;box-shadow:0 18px 45px rgba(15,23,42,.08);background:linear-gradient(135deg,#ffffff 0%,#f7f9ff 100%)}
.v2285-chart-shell{position:relative;width:100%;height:var(--v2285-chart-height,280px);min-height:220px;max-height:420px}
.v2285-chart-shell canvas,.v2282-chart-box canvas,.v2283-chart-wrap canvas,.card-body>canvas{width:100%!important;height:100%!important;max-height:420px}
.v2282-chart-box,.v2283-chart-wrap,.chart-box{position:relative;min-height:260px;height:280px;max-height:420px}
.v2282-chart-box-sm{min-height:220px;height:240px}
.card-elev .card-header{font-weight:700;color:#172033;background:linear-gradient(180deg,#fff,#fbfcff);border-bottom:1px solid rgba(148,163,184,.24)}
.v2285-insight,.v2285-chart-note{border-left:4px solid var(--gcd-blue);background:#f8fbff;border-radius:12px;padding:12px 14px;color:#334155;font-size:.92rem;line-height:1.45}
.v2285-insight.rag-green{border-color:var(--gcd-green);background:var(--gcd-soft-green)}
.v2285-insight.rag-amber{border-color:var(--gcd-amber);background:var(--gcd-soft-amber)}
.v2285-insight.rag-red{border-color:var(--gcd-red);background:var(--gcd-soft-red)}
.v2285-progress-stack{display:grid;gap:10px;margin-top:12px}
.v2285-progress-row{display:grid;grid-template-columns:110px 1fr 70px;align-items:center;gap:10px;font-size:.88rem;color:#334155}
.v2285-progress-track{height:10px;border-radius:999px;background:#edf2f7;overflow:hidden;box-shadow:inset 0 0 0 1px rgba(15,23,42,.06)}
.v2285-progress-fill{height:100%;border-radius:999px;background:var(--gcd-blue)}
.v2285-progress-fill.green{background:var(--gcd-green)}.v2285-progress-fill.amber{background:var(--gcd-amber)}.v2285-progress-fill.red{background:var(--gcd-red)}.v2285-progress-fill.grey{background:var(--gcd-grey)}
.v2285-rag-legend{display:flex;gap:10px;flex-wrap:wrap;align-items:center;color:#475569;font-size:.85rem}
.rag-dot{display:inline-block;width:10px;height:10px;border-radius:999px;margin-right:4px;vertical-align:middle}.rag-dot.green{background:var(--gcd-green)}.rag-dot.amber{background:var(--gcd-amber)}.rag-dot.red{background:var(--gcd-red)}.rag-dot.grey{background:var(--gcd-grey)}.rag-dot.blue{background:var(--gcd-blue)}
.v2285-standard-list{display:grid;gap:12px}.v2285-standard-list>div{display:grid;grid-template-columns:18px 90px 1fr;gap:8px;align-items:start;border:1px solid #eef2f7;border-radius:12px;padding:10px 12px}.v2285-standard-list small{color:#64748b}
.v2285-timeline-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.v2285-timeline-card{border-radius:16px;border:1px solid #e5eaf3;background:#fff;padding:14px}.v2285-timeline-card strong{font-size:1.35rem;display:block}.v2285-timeline-card span{color:#64748b;font-size:.86rem}.v2285-timeline-card.green{border-color:rgba(24,134,75,.25);background:var(--gcd-soft-green)}.v2285-timeline-card.amber{border-color:rgba(217,146,24,.28);background:var(--gcd-soft-amber)}.v2285-timeline-card.blue{border-color:rgba(31,95,191,.22);background:var(--gcd-soft-blue)}
.v2285-chart-empty{display:flex;align-items:center;justify-content:center;min-height:180px;border:1px dashed #cbd5e1;border-radius:16px;color:#64748b;background:#f8fafc;text-align:center;padding:18px}
.theme-dark .v2285-insight{background:#111827;color:#dbeafe}.theme-dark .card-elev .card-header{background:#111827;color:#e5eefc}.theme-dark .v2285-timeline-card,.theme-dark .v2285-standard-list>div{background:#111827;border-color:#243041}.theme-dark .v2285-chart-empty{background:#0f172a;border-color:#334155;color:#94a3b8}
@media (max-width: 768px){
  .v2285-chart-shell,.v2282-chart-box,.v2283-chart-wrap,.chart-box{height:240px;min-height:220px;max-height:300px}
  .v2285-progress-row{grid-template-columns:1fr;gap:5px}.v2285-progress-row .text-end{text-align:left!important}
  .v2285-timeline-cards{grid-template-columns:1fr}.card-header{gap:8px;flex-wrap:wrap}.v2285-standard-list>div{grid-template-columns:18px 1fr}
}
