:root{
  --primary:#d91f26;
  --secondary:#12a150;
  --accent:#0f766e;
  --dark:#17324d;
  --muted:#64748b;
  --border:#dbe3ee;
  --bg:#f3f7fb;
  --card:#ffffff;
  --shadow:0 12px 28px rgba(15,23,42,.08);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;font-family:Arial,sans-serif;background:linear-gradient(180deg,#f8fbff 0%,#eef5fb 100%);color:#10243a}
.container{max-width:1240px;margin:0 auto;padding:18px}
.hero{
  background:linear-gradient(120deg,rgba(217,31,38,.96),rgba(18,161,80,.94));
  color:#fff;border-radius:24px;padding:22px;display:flex;gap:18px;align-items:center;
  box-shadow:var(--shadow);margin-bottom:18px
}
.hero img{width:110px;height:110px;object-fit:contain;background:#fff;border-radius:50%;padding:8px;flex-shrink:0}
.hero h1{margin:0 0 6px;font-size:32px}
.hero p{margin:0;opacity:.96}
.layout{display:grid;grid-template-columns:420px 1fr;gap:18px}
.card{background:var(--card);border:1px solid rgba(219,227,238,.9);border-radius:20px;padding:18px;box-shadow:var(--shadow)}
h2{margin:0 0 14px;color:var(--dark)}
.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.full{grid-column:1/-1}
label{display:block;font-size:13px;font-weight:700;margin-bottom:6px}
input,select,textarea{
  width:100%;border:1px solid var(--border);border-radius:12px;padding:12px;
  font-size:14px;background:#fff;outline:none
}
textarea{min-height:96px;resize:vertical}
.help{color:var(--muted);font-size:12px;margin-top:5px}
.rating-block{padding:12px;border:1px solid var(--border);border-radius:14px;background:#fbfdff}
.rating-title{margin-bottom:8px;font-size:13px;font-weight:700}
.stars{display:flex;gap:6px;flex-wrap:wrap}
.star-btn{
  font-size:28px;line-height:1;border:none;background:transparent;cursor:pointer;
  opacity:.33;transition:transform .08s ease, opacity .2s ease
}
.star-btn.active{opacity:1;transform:scale(1.06)}
.star-btn:hover{transform:scale(1.1)}
.rating-value{margin-top:6px;font-size:12px;color:var(--muted)}
.toolbar,.toolbar-wrap{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.btn{
  border:none;border-radius:14px;padding:12px 16px;font-size:14px;font-weight:700;cursor:pointer
}
.btn-primary{background:linear-gradient(120deg,var(--primary),#ef4444);color:#fff}
.btn-secondary{background:linear-gradient(120deg,#1d4ed8,#2563eb);color:#fff}
.btn-success{background:linear-gradient(120deg,var(--secondary),#22c55e);color:#fff}
.btn-light{background:#e2e8f0;color:#10243a}
.msg{margin-top:12px;min-height:18px;font-weight:700}
.filters{border:1px solid var(--border);border-radius:16px;padding:14px;background:#fbfdff;margin:14px 0}
.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0}
.kpi{
  background:linear-gradient(180deg,#f8fbff,#eef5ff);
  border:1px solid #d6e4ff;border-radius:16px;padding:14px
}
.kpi .label{color:var(--muted);font-size:12px;margin-bottom:6px}
.kpi .value{font-size:28px;font-weight:800;color:var(--dark)}
.criteria-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:18px}
.criterion{border:1px solid var(--border);border-radius:14px;padding:12px;background:#fcfdff}
.criterion .bar{height:10px;border-radius:999px;background:#e8eef7;overflow:hidden;margin-top:8px}
.criterion .fill{height:100%;background:linear-gradient(120deg,var(--secondary),#22c55e)}
.table-wrap{overflow:auto}
table{width:100%;border-collapse:collapse;font-size:14px}
th,td{border-bottom:1px solid #edf2f7;padding:10px 8px;text-align:left;vertical-align:top}
th{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}
.badge{display:inline-block;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:700}
.badge-paciente{background:#fee2e2;color:#991b1b}
.badge-medico{background:#dcfce7;color:#166534}
.footer-note{margin-top:12px;color:var(--muted);font-size:12px}
.chart-box{
  height:240px;border:1px solid var(--border);border-radius:14px;padding:12px;background:#fcfdff;margin-bottom:18px
}
canvas{width:100%;height:100%}
.print-only{display:none}
@media print{
  body{background:#fff}
  .hero,.no-print,.form-panel{display:none!important}
  .layout{display:block}
  .card{box-shadow:none;border:none;padding:0}
  .print-only{display:block;margin-bottom:16px}
  .container{max-width:none;padding:0}
}
@media (max-width:980px){
  .layout{grid-template-columns:1fr}
  .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:640px){
  .hero{flex-direction:column;text-align:center}
  .grid,.criteria-grid,.kpis{grid-template-columns:1fr}
  .hero h1{font-size:25px}
}
