
.central-pntp {
  --pntp-primary:#174ea6;
  --pntp-accent:#0f9d58;
  --pntp-bg:#f4f7fb;
  --pntp-card:#fff;
  --pntp-text:#243042;
  --pntp-muted:#667085;
  --pntp-border:#dbe3ef;
  font-family: Arial, Helvetica, sans-serif;
  color: var(--pntp-text);
}
.central-pntp * { box-sizing: border-box; }
.pntp-hero {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  background:linear-gradient(135deg,var(--pntp-primary),#2b74d6);
  color:#fff;
  border-radius:26px;
  padding:34px;
  margin:0 0 22px;
}
.pntp-badge {
  display:inline-block;
  padding:7px 13px;
  border:1px solid rgba(255,255,255,.32);
  background:rgba(255,255,255,.14);
  border-radius:999px;
  margin-bottom:12px;
}
.pntp-hero h1 { margin:0 0 8px; font-size:clamp(30px,5vw,48px); line-height:1.08; color:#fff; }
.pntp-hero p { max-width:760px; font-size:17px; margin:0; opacity:.95; }
.pntp-city { font-weight:700; margin-bottom:10px !important; }
.pntp-score {
  min-width:170px;
  min-height:170px;
  border-radius:50%;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  background:#fff;
  color:var(--pntp-primary);
  box-shadow:0 18px 40px rgba(0,0,0,.16);
  text-align:center;
}
.pntp-score strong { font-size:42px; line-height:1; }
.pntp-score span { font-size:13px; max-width:120px; margin-top:8px; color:#526; }
.pntp-actions { margin:0 0 18px; text-align:right; }
.pntp-actions button,.pntp-print-btn {
  border:0;
  border-radius:12px;
  padding:11px 16px;
  background:var(--pntp-primary);
  color:#fff;
  cursor:pointer;
  font-weight:700;
}
.pntp-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
}
.pntp-module {
  display:block;
  text-decoration:none;
  color:var(--pntp-text);
  background:var(--pntp-card);
  border:1px solid var(--pntp-border);
  border-radius:18px;
  padding:20px;
  min-height:210px;
  box-shadow:0 10px 24px rgba(16,42,67,.06);
  transition:.18s ease;
  position:relative;
}
.pntp-module:hover {
  transform:translateY(-2px);
  border-color:var(--pntp-primary);
  box-shadow:0 16px 32px rgba(16,42,67,.10);
}
.pntp-icon {
  width:48px;height:48px;
  display:flex;align-items:center;justify-content:center;
  border-radius:15px;
  background:#e9f1ff;
  font-size:25px;
  margin-bottom:12px;
}
.pntp-cat { display:block; color:var(--pntp-muted); font-size:13px; margin-bottom:5px; }
.pntp-module strong { display:block; font-size:21px; color:#102a43; margin-bottom:4px; }
.pntp-module small {
  position:absolute;
  top:18px;
  right:18px;
  padding:5px 9px;
  border-radius:999px;
  font-size:12px;
  background:#eef2f7;
  color:#334155;
}
.pntp-module p { color:var(--pntp-muted); margin:12px 0 0; line-height:1.5; }
.pntp-status-ok small, .pntp-status-ok { }
.pntp-module.pntp-status-ok small, .pntp-status-ok:not(.pntp-module) { background:#eafaf1; color:#176b3a; }
.pntp-module.pntp-status-partial small, .pntp-status-partial:not(.pntp-module) { background:#fff7e6; color:#8a5700; }
.pntp-module.pntp-status-pending small, .pntp-status-pending:not(.pntp-module) { background:#fff1f2; color:#9f1239; }
.pntp-module.pntp-status-optional small, .pntp-status-optional:not(.pntp-module) { background:#eef2ff; color:#3730a3; }
.pntp-section {
  margin-top:24px;
  background:#fff;
  border:1px solid var(--pntp-border);
  border-radius:20px;
  padding:22px;
}
.pntp-plugin-status-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}
.pntp-plugin-status {
  background:#fff;
  border:1px solid var(--pntp-border);
  border-radius:14px;
  padding:14px;
  display:grid;
  grid-template-columns:34px 1fr;
  gap:4px 10px;
  align-items:center;
}
.pntp-plugin-status span { grid-row:span 2; font-size:24px; }
.pntp-plugin-status small { color:var(--pntp-muted); }
.pntp-plugin-status.is-active { border-color:#b7e4c7; }
.pntp-plugin-status.is-inactive { border-color:#fed7aa; }
.pntp-footer-note {
  margin-top:22px;
  color:var(--pntp-muted);
  background:#fff;
  border:1px solid var(--pntp-border);
  padding:18px;
  border-radius:16px;
}
.pntp-checklist table {
  width:100%;
  border-collapse:collapse;
  background:#fff;
  border-radius:14px;
  overflow:hidden;
}
.pntp-checklist th,.pntp-checklist td {
  padding:12px;
  border-bottom:1px solid var(--pntp-border);
  text-align:left;
}
.pntp-checklist th { background:#f8fafc; }
.pntp-checklist span[class*="pntp-status"] {
  display:inline-block;
  padding:5px 9px;
  border-radius:999px;
  font-size:12px;
  font-weight:700;
}
.pntp-map-cat {
  background:#fff;
  border:1px solid var(--pntp-border);
  border-radius:16px;
  padding:18px;
  margin-bottom:14px;
}
.pntp-map-cat ul { columns:2; margin-bottom:0; }
.pntp-report {
  background:#fff;
  padding:22px;
  border:1px solid var(--pntp-border);
  border-radius:18px;
}
.pntp-disclaimer { color:var(--pntp-muted); font-size:14px; }
@media (max-width:980px) {
  .pntp-grid,.pntp-plugin-status-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .pntp-hero { align-items:flex-start; flex-direction:column; }
}
@media (max-width:640px) {
  .pntp-grid,.pntp-plugin-status-grid { grid-template-columns:1fr; }
  .pntp-hero { padding:24px; }
  .pntp-score { width:140px; height:140px; min-width:140px; min-height:140px; }
  .pntp-map-cat ul { columns:1; }
}
@media print {
  .pntp-actions,.pntp-print-btn { display:none !important; }
  .pntp-module,.pntp-section,.pntp-report { box-shadow:none !important; }
}
