:root{
  --ink:#142332;
  --muted:#5b6b7a;
  --line:#d8e3ec;
  --line-strong:#c6d4df;
  --panel:#ffffff;
  --panel-soft:#fbfdff;
  --navy:#0f4c75;
  --blue:#1d6f9f;
  --ice:#eaf5fb;
  --teal:#2a9d8f;
  --amber:#c47f16;
  --red:#b23b3b;
  --green:#1f7a4d;
  --shadow:0 10px 28px rgba(15,76,117,.08);
  --shadow-strong:0 18px 44px rgba(15,76,117,.12);
  --radius:16px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--ink);
  background:
    radial-gradient(circle at top left,rgba(29,111,159,.09),transparent 30rem),
    linear-gradient(180deg,#f7fbfe 0%,#eef4f8 100%);
  line-height:1.45;
}
img,svg{max-width:100%;display:block}
a{color:var(--navy);text-decoration:none}
a:hover{text-decoration:underline}
.wrap{max-width:1240px;margin:0 auto;padding:24px 22px 48px}
.hero{
  background:linear-gradient(135deg,#123b5a 0%,#0f4c75 56%,#256f84 100%);
  color:#fff;
  border-radius:24px;
  padding:24px 28px 20px;
  box-shadow:var(--shadow-strong);
  position:relative;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.08);
}
.hero:before{
  content:"";
  position:absolute;
  inset:-80px -120px auto auto;
  width:360px;
  height:360px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.14);
  pointer-events:none;
}
.hero:after{
  content:"";
  position:absolute;
  inset:auto auto -220px -180px;
  width:420px;
  height:420px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.09);
  pointer-events:none;
}
.hero small{
  letter-spacing:.12em;
  text-transform:uppercase;
  opacity:.84;
  font-weight:800;
  font-size:.74rem;
}
h1{
  margin:.42rem 0 .34rem;
  font-size:clamp(1.9rem,3.8vw,3.2rem);
  line-height:1.03;
  letter-spacing:-.02em;
}
.subtitle{
  font-size:.98rem;
  max-width:820px;
  opacity:.93;
  margin:0 0 .58rem;
}
.hero-purpose{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-top:4px;
  padding:8px 12px;
  border-radius:999px;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.16);
  font-size:.85rem;
  font-weight:850;
  letter-spacing:.01em;
}
.hero-row{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
  margin-top:14px;
}
.hero-primary-actions{margin-top:16px}
.hero-utility-actions{margin-top:10px}
.pill{
  border:1px solid rgba(255,255,255,.22);
  background:rgba(255,255,255,.1);
  color:#fff;
  border-radius:999px;
  padding:8px 12px;
  font-weight:750;
  font-size:.88rem;
  backdrop-filter:blur(8px);
}
.pill-button{
  appearance:none;
  cursor:pointer;
  transition:transform .15s ease,background .15s ease,border-color .15s ease,box-shadow .15s ease,color .15s ease;
}
.pill-button:hover,
.pill-button:focus-visible{
  transform:translateY(-1px);
  background:rgba(255,255,255,.2);
  border-color:rgba(255,255,255,.42);
  box-shadow:0 10px 24px rgba(0,0,0,.16);
  outline:none;
}
.pill-button.active{
  background:#fff;
  color:var(--navy);
  border-color:#fff;
  box-shadow:0 10px 22px rgba(0,0,0,.12);
}
.flyout{
  display:none;
  position:relative;
  margin-top:14px;
  max-width:760px;
  background:rgba(255,255,255,.98);
  color:var(--ink);
  border:1px solid rgba(255,255,255,.3);
  border-left:4px solid var(--teal);
  border-radius:18px;
  padding:16px 18px 14px;
  box-shadow:0 20px 44px rgba(6,24,38,.18);
}
.flyout.open{display:block}
.flyout-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.flyout-kicker{
  font-size:.71rem;
  text-transform:uppercase;
  letter-spacing:.1em;
  font-weight:900;
  color:var(--muted);
  margin-bottom:4px;
}
.flyout h3{margin:0;font-size:1.05rem;color:var(--navy);letter-spacing:-.01em}
.flyout p{margin:.62rem 0 .7rem;color:#304151;font-size:.96rem}
.flyout ul{
  margin:0;
  padding-left:18px;
  color:#304151;
  display:grid;
  gap:6px;
}
.flyout li{line-height:1.35}
.flyout-close{
  border:0;
  background:#edf4f8;
  color:var(--navy);
  border-radius:999px;
  width:30px;
  height:30px;
  cursor:pointer;
  display:grid;
  place-items:center;
  font-weight:900;
  line-height:1;
  transition:background .15s ease,transform .15s ease;
}
.flyout-close:hover,.flyout-close:focus-visible{background:#dfeaf1;transform:scale(1.03);outline:none}
.note{
  margin-top:12px;
  padding:12px 14px;
  border-radius:14px;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.15);
  backdrop-filter:blur(6px);
  font-size:.92rem;
  line-height:1.38;
}
#eventBanner{background:rgba(255,255,255,.17);margin-top:10px}
.download-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  border-radius:12px;padding:10px 14px;font-weight:800;font-size:.92rem;
  background:#fff;color:var(--navy);border:1px solid #fff;box-shadow:0 8px 18px rgba(0,0,0,.12)
}
.btn:hover{text-decoration:none;filter:brightness(.98)}
.btn.secondary{background:transparent;color:#fff;border-color:rgba(255,255,255,.35);box-shadow:none}
.btn.secondary:hover{background:rgba(255,255,255,.1)}
.toolbar,.grid,.timeline{display:grid;gap:16px}
.toolbar{
  grid-template-columns:repeat(4,minmax(0,1fr));
  margin-top:18px;
  background:rgba(255,255,255,.78);
  border:1px solid var(--line);
  border-radius:20px;
  padding:16px;
  box-shadow:var(--shadow);
  backdrop-filter:blur(8px);
}
.control{display:flex;flex-direction:column;gap:7px;min-width:0}
.control label{
  font-size:.72rem;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-weight:900;
  color:var(--muted);
}
select{
  width:100%;
  border:1px solid var(--line-strong);
  border-radius:12px;
  background:#fff;
  padding:11px 12px;
  color:var(--ink);
  font-weight:700;
  font-size:.95rem;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.6);
}
select:focus{outline:2px solid rgba(29,111,159,.22);outline-offset:2px}
.grid.kpis{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:16px}
.card{
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:18px;
}
.kpi{padding:16px 16px 14px;position:relative;overflow:hidden}
.kpi:before{
  content:"";
  position:absolute;
  inset:0 auto auto 0;
  width:100%;
  height:4px;
  background:linear-gradient(90deg,var(--navy),var(--teal));
  opacity:.85;
}
.kpi .title{
  color:var(--muted);
  font-size:.76rem;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-weight:900;
  margin-bottom:8px;
}
.kpi .value{font-size:1.9rem;line-height:1;font-weight:900;letter-spacing:-.03em;color:var(--ink)}
.kpi .target{margin-top:8px;color:var(--muted);font-size:.84rem;font-weight:700}
.kpi .delta{margin-top:7px;font-size:.88rem;font-weight:800}
.good{color:var(--green)}
.warn{color:var(--amber)}
.grid.main{grid-template-columns:1.45fr .95fr;margin-top:16px;align-items:stretch}
.grid.two{grid-template-columns:1fr 1fr;margin-top:16px;align-items:stretch}
.section-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}
.section-title h2{margin:0;font-size:1.1rem;line-height:1.2;letter-spacing:-.02em}
.hint{color:var(--muted);font-size:.9rem;margin-top:4px}
.chart{
  width:100%;
  min-height:280px;
  background:linear-gradient(180deg,#fff,#fbfdff);
  border:1px solid #e4ecf2;
  border-radius:16px;
  padding:12px;
}
.legend{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  margin-top:10px;
  color:var(--muted);
  font-size:.88rem;
  font-weight:650;
}
.legend span{display:inline-flex;align-items:center;gap:7px}
.dot{width:10px;height:10px;border-radius:999px;display:inline-block}
.metric-list{display:grid;gap:10px}
.interpretation-lead{
  padding:15px 16px 14px;
  border:1px solid #dbe7ef;
  border-radius:16px;
  background:linear-gradient(180deg,#fff,#f8fcfe);
  box-shadow:0 8px 18px rgba(15,76,117,.06);
  margin-bottom:12px;
}
.interpretation-lead h3{
  margin:.35rem 0 .28rem;
  font-size:1.2rem;
  line-height:1.14;
  letter-spacing:-.02em;
  color:var(--ink);
}
.interpretation-lead p{margin:0;color:var(--muted);font-weight:700;font-size:.94rem;line-height:1.4}
.interp-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.interp-item{
  padding:12px 12px 11px;
  border:1px solid #e5edf3;
  border-radius:14px;
  background:linear-gradient(180deg,#fff,#fbfdff);
}
.interp-item span{
  display:block;
  color:var(--muted);
  font-size:.72rem;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-weight:900;
}
.interp-item strong{display:block;margin-top:6px;font-size:.95rem;line-height:1.38}
.metric-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:12px 12px;
  border:1px solid #e5edf3;
  border-radius:14px;
  background:linear-gradient(180deg,#fff,#fbfdff);
}
.metric-row strong{font-size:.98rem}
.metric-row small{color:var(--muted);font-size:.86rem;line-height:1.35}
.metric-row .good,.metric-row .warn{white-space:nowrap;font-weight:900}
#actionTable,#caseTable{width:100%;border-collapse:separate;border-spacing:0 10px;min-width:980px}
#actionTable th,#caseTable th{
  position:sticky;top:0;z-index:1;
  background:#f7fafc;
  color:var(--muted);
  font-size:.7rem;
  letter-spacing:.09em;
  text-transform:uppercase;
  text-align:left;
  padding:10px 12px;
  border-bottom:0;
}
#actionTable td,#caseTable td{
  vertical-align:top;
  padding:13px 12px;
  border-top:1px solid #edf2f6;
  border-bottom:1px solid #edf2f6;
  background:#fff;
  font-size:.9rem;
  line-height:1.34;
}
#actionTable tbody tr:hover td,#caseTable tbody tr:hover td{background:#f8fcff}
#actionTable tbody tr td:first-child,#caseTable tbody tr td:first-child{border-left:1px solid #edf2f6;border-top-left-radius:14px;border-bottom-left-radius:14px}
#actionTable tbody tr td:last-child,#caseTable tbody tr td:last-child{border-right:1px solid #edf2f6;border-top-right-radius:14px;border-bottom-right-radius:14px}
#actionTable tbody tr:last-child td,#caseTable tbody tr:last-child td{border-bottom:1px solid #edf2f6}
.status{
  display:inline-flex;
  align-items:center;
  padding:5px 10px;
  border-radius:999px;
  background:#edf6fb;
  color:var(--navy);
  font-weight:800;
  font-size:.8rem;
  white-space:nowrap;
}
.status.risk-high{background:#faecec;color:var(--red)}
.status.risk-medium{background:#fff4e6;color:#8e5a00}
.timeline{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:16px}
.phase{
  background:var(--panel-soft);
  border:1px solid var(--line);
  border-radius:18px;
  padding:18px;
  box-shadow:var(--shadow);
}
.phase h3{margin:0 0 8px;font-size:1rem;letter-spacing:-.01em}
.phase ul{margin:0;padding-left:18px;color:#304151;display:grid;gap:7px}
.phase li{line-height:1.38}
.footer{
  margin-top:18px;
  color:var(--muted);
  text-align:center;
  font-size:.88rem;
  padding:6px 0 2px;
}
#lineChart svg,#barChart svg,#coverageChart svg{width:100%;height:100%}
.gridline{stroke:#e3ebf1;stroke-width:1}
.axis{stroke:#97aab9;stroke-width:1.2}
.line{fill:none;stroke:var(--blue);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.area{fill:rgba(29,111,159,.12)}
.bar{rx:5;ry:5}
text{font-family:inherit}
.smallcaps{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;font-weight:900;color:var(--muted)}
@media (max-width:1100px){
  .toolbar,.grid.kpis,.grid.main,.grid.two,.timeline{grid-template-columns:1fr 1fr}
  .grid.main{grid-template-columns:1fr}
}
@media (max-width:760px){
  .wrap{padding:14px 12px 32px}
  .hero{padding:22px 18px 18px;border-radius:20px}
  .toolbar,.grid.kpis,.grid.main,.grid.two,.timeline{grid-template-columns:1fr}
  .toolbar{padding:13px}
  .card{padding:14px}
  .chart{min-height:240px;padding:10px}
  .metric-row{align-items:flex-start;flex-direction:column}
  .interp-grid{grid-template-columns:1fr}
  #actionTable,#caseTable{min-width:840px}
}
