*{margin:0;padding:0;box-sizing:border-box}
:root{
  --bg:#f5f3f0;--card:#ffffff;--border:#e4e0db;
  --text:#2c2825;--text2:#6b6560;--text3:#9a9590;
  --accent:#c05a2c;--accent2:#2a7a5a;--accent3:#3a6b9f;--accent4:#8b5a8a;
  --red:#c44040;--green:#2a7a5a;--amber:#c09030;
  --shadow:0 1px 3px rgba(0,0,0,.06),0 4px 12px rgba(0,0,0,.04);
  --shadow2:0 2px 8px rgba(0,0,0,.08),0 8px 24px rgba(0,0,0,.06);
}
body{font-family:'DM Sans',sans-serif;background:var(--bg);color:var(--text);line-height:1.5}
.dashboard{max-width:1400px;margin:0 auto;padding:24px}

/* Header */
.header{text-align:center;padding:40px 20px 30px;margin-bottom:32px;position:relative}
.header::after{content:'';position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:60px;height:3px;background:var(--accent);border-radius:2px}
.header h1{font-family:'Playfair Display',serif;font-size:28px;color:var(--text);letter-spacing:-.5px;margin-bottom:6px}
.header p{color:var(--text2);font-size:14px;font-weight:500}
.header .subtitle{font-size:12px;color:var(--text3);margin-top:4px}
.header .author{font-size:11px;color:var(--accent);font-weight:600;margin-top:8px;letter-spacing:.5px;text-transform:uppercase}

/* Navigation */
.nav{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;margin-bottom:32px;padding:0 8px}
.nav button{
  padding:8px 16px;border:1.5px solid var(--border);background:var(--card);
  border-radius:8px;font-family:'DM Sans',sans-serif;font-size:12px;font-weight:600;
  color:var(--text2);cursor:pointer;transition:all .2s;white-space:nowrap
}
.nav button:hover{border-color:var(--accent);color:var(--accent)}
.nav button.active{background:var(--accent);color:#fff;border-color:var(--accent)}

/* Page */
.page{display:none}
.page.active{display:block}

/* Grid */
.grid{display:grid;gap:16px;margin-bottom:20px}
.grid-4{grid-template-columns:repeat(4,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-2{grid-template-columns:repeat(2,1fr)}

/* Cards */
.card{
  background:var(--card);border-radius:12px;padding:20px;
  border:1px solid var(--border);box-shadow:var(--shadow);
  transition:box-shadow .2s
}
.card:hover{box-shadow:var(--shadow2)}
.card-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.8px;color:var(--text3);margin-bottom:8px}
.card-value{font-size:32px;font-weight:700;color:var(--text);line-height:1.1}
.card-value.accent{color:var(--accent)}
.card-value.green{color:var(--green)}
.card-value.red{color:var(--red)}
.card-value.amber{color:var(--amber)}
.card-sub{font-size:12px;color:var(--text2);margin-top:4px}
.card h3{font-size:14px;font-weight:700;margin-bottom:14px;color:var(--text)}

/* Bar chart */
.bar-row{display:flex;align-items:center;margin-bottom:10px;gap:10px}
.bar-label{font-size:12px;font-weight:500;color:var(--text2);width:160px;min-width:160px;text-align:right;flex-shrink:0}
.bar-track{flex:1;height:24px;background:#f0ece8;border-radius:6px;overflow:visible;position:relative}
.bar-fill{height:100%;border-radius:6px;transition:width .6s ease;display:flex;align-items:center;padding-right:8px;position:relative;min-width:0}
.bar-fill span{font-size:10px;font-weight:700;color:#fff;white-space:nowrap}
.bar-fill.small span{color:var(--text);position:absolute;left:calc(100% + 6px)}
.bar-count{font-size:12px;font-weight:600;color:var(--text);min-width:32px}

/* Tooltip on cards */
.card{position:relative}
.card[data-tip]{cursor:help}
.card[data-tip]::before{content:'ⓘ';position:absolute;top:10px;right:12px;font-size:13px;color:var(--text3);opacity:.6;transition:opacity .2s}
.card[data-tip]:hover::before{opacity:1;color:var(--accent)}
.card[data-tip]::after{
  content:attr(data-tip);position:absolute;top:100%;left:50%;transform:translateX(-50%);
  background:var(--text);color:#fff;font-size:11px;font-weight:500;line-height:1.5;
  padding:8px 12px;border-radius:8px;white-space:normal;width:260px;text-align:center;
  opacity:0;pointer-events:none;transition:opacity .2s;z-index:100;margin-top:6px;
  box-shadow:0 4px 16px rgba(0,0,0,.2)
}
.card[data-tip]:hover::after{opacity:1}

/* Donut */
.donut-wrap{display:flex;align-items:center;gap:20px;justify-content:center}
.donut{position:relative;width:130px;height:130px}
.donut svg{width:100%;height:100%;transform:rotate(-90deg)}
.donut-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center}
.donut-center .val{font-size:22px;font-weight:700}
.donut-center .lbl{font-size:10px;color:var(--text3)}
.donut-legend{display:flex;flex-direction:column;gap:6px}
.legend-item{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text2)}
.legend-dot{width:10px;height:10px;border-radius:3px;flex-shrink:0}

/* Stacked bar */
.stacked-bar{display:flex;height:32px;border-radius:8px;overflow:hidden;margin:8px 0}
.stacked-seg{display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:#fff;transition:width .6s}

/* Severity table */
.sev-table{width:100%;border-collapse:separate;border-spacing:0}
.sev-table th{font-size:11px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.5px;padding:8px 12px;text-align:left;border-bottom:2px solid var(--border)}
.sev-table td{padding:8px 12px;font-size:13px;border-bottom:1px solid #f0ece8}
.sev-table tr:last-child td{border-bottom:none}
.badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600}
.badge-up{background:#fde8e8;color:var(--red)}
.badge-down{background:#e6f5ed;color:var(--green)}
.badge-same{background:#f0ece8;color:var(--text3)}

/* Arrow indicators */
.arrow{font-size:14px;font-weight:700}
.arrow.up{color:var(--red)}
.arrow.down{color:var(--green)}
.arrow.same{color:var(--text3)}

/* Infection strip */
.inf-strip{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:10px}
.inf-item{text-align:center;padding:10px 16px;border-radius:8px;background:#f8f6f3;min-width:90px}
.inf-item .num{font-size:24px;font-weight:700}
.inf-item .lbl{font-size:10px;color:var(--text3);font-weight:600;text-transform:uppercase;letter-spacing:.5px}

/* Overview table */
.overview-table{width:100%;border-collapse:separate;border-spacing:0;font-size:12px}
.overview-table th{background:#f8f6f3;padding:10px 12px;text-align:left;font-weight:600;color:var(--text2);border-bottom:2px solid var(--border);font-size:11px;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}
.overview-table td{padding:10px 12px;border-bottom:1px solid #f0ece8;white-space:nowrap}
.overview-table tr:hover td{background:#faf9f7}
.overview-table .total-row td{font-weight:700;border-top:2px solid var(--border);background:#f8f6f3}

/* Hospital title */
.hosp-title{font-family:'Playfair Display',serif;font-size:22px;margin-bottom:4px}
.hosp-sub{font-size:12px;color:var(--text3);margin-bottom:24px}

/* Insights */
.insight-box{background:linear-gradient(135deg,#fef8f4,#fdf5ee);border:1px solid #f0dfd0;border-radius:10px;padding:14px 18px;margin-top:12px}
.insight-box p{font-size:12px;color:var(--text2);line-height:1.6}
.insight-box strong{color:var(--accent)}

/* No data */
.no-data{text-align:center;padding:60px;color:var(--text3);font-size:14px}

/* Footer */
.footer{text-align:center;padding:24px;margin-top:20px;color:var(--text3);font-size:11px;border-top:1px solid var(--border)}

@media(max-width:900px){
  .grid-4{grid-template-columns:repeat(2,1fr)}
  .grid-3{grid-template-columns:1fr 1fr}
  .grid-2{grid-template-columns:1fr}
}
@media(max-width:600px){
  .grid-4,.grid-3{grid-template-columns:1fr}
  .nav button{font-size:11px;padding:6px 10px}
}