:root {
  --bg: #f3f6f4;
  --ink: #14201b;
  --muted: #5d6b64;
  --line: #d7e0db;
  --panel: rgba(255,255,255,.92);
  --brand: #0f766e;
  --brand-dark: #0b5a54;
  --accent: #c4652a;
  --good: #1f7a4d;
  --warn: #9a6700;
  --bad: #b42318;
}

* { box-sizing: border-box; }
body {
  margin: 0;
  color: var(--ink);
  font-family: "DM Sans", ui-sans-serif, system-ui, sans-serif;
  background:
    radial-gradient(ellipse 80% 50% at 50% -10%, rgba(15,118,110,.18), transparent 55%),
    linear-gradient(180deg, #e8f2ef 0%, var(--bg) 42%, #eef2f0 100%);
  min-height: 100vh;
}
main { max-width: 980px; margin: 0 auto; padding: 48px 20px 72px; }
.hero { text-align: center; padding: 40px 12px 28px; }
.brand {
  margin: 0;
  font-family: Fraunces, Georgia, serif;
  font-size: clamp(28px, 5vw, 40px);
  font-weight: 700;
  letter-spacing: -0.03em;
  color: var(--brand-dark);
}
.pill {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  background: rgba(15,118,110,.12);
  color: var(--brand-dark);
  font-weight: 700;
  font-size: 13px;
  padding: 7px 12px;
}
h1 {
  max-width: 720px;
  margin: 14px auto 10px;
  font-family: Fraunces, Georgia, serif;
  font-size: clamp(30px, 5.6vw, 48px);
  line-height: 1.08;
  letter-spacing: -0.03em;
}
.hero p { max-width: 540px; margin: 0 auto 24px; font-size: 18px; color: var(--muted); }
.scan-form { display: flex; gap: 10px; max-width: 760px; margin: 0 auto 12px; flex-wrap: wrap; }
input, button { font: inherit; }
input {
  flex: 1;
  min-width: 180px;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 16px 17px;
  background: white;
  box-shadow: 0 10px 30px rgba(20,32,27,.06);
}
button {
  border: 0;
  border-radius: 14px;
  padding: 16px 20px;
  background: var(--brand);
  color: white;
  font-weight: 800;
  cursor: pointer;
  box-shadow: 0 12px 28px rgba(15,118,110,.24);
}
button:hover { background: var(--brand-dark); }
small { color: var(--muted); }
.panel {
  background: var(--panel);
  border: 1px solid rgba(215,224,219,.95);
  border-radius: 22px;
  padding: 24px;
  box-shadow: 0 18px 44px rgba(20,32,27,.06);
  margin-top: 18px;
}
.hidden { display: none !important; }
.loading { text-align: center; padding: 48px 24px; }
.spinner {
  width: 42px; height: 42px;
  border: 4px solid rgba(15,118,110,.15);
  border-top-color: var(--brand);
  border-radius: 50%;
  margin: 0 auto 18px;
  animation: spin .8s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }
.report-header { display: flex; justify-content: space-between; align-items: center; gap: 20px; }
.eyebrow {
  text-transform: uppercase;
  letter-spacing: .12em;
  font-size: 12px;
  font-weight: 800;
  color: var(--brand);
  margin: 0 0 8px;
}
h2, h3 { margin-top: 0; }
.report-header h2 { font-family: Fraunces, Georgia, serif; font-size: 32px; margin-bottom: 6px; }
.report-header p { color: var(--muted); margin: 0; }
.rank-line { margin-top: 10px !important; font-weight: 700; color: var(--ink) !important; }
.disclaimer { margin-top: 10px !important; font-size: 13px; line-height: 1.4; }
.error { border-color: #f3c1c1; background: #fff5f5; }
.error h3 { color: var(--bad); }
.score-ring {
  width: 128px; height: 128px; border-radius: 50%;
  display: grid; place-items: center;
  background: conic-gradient(var(--brand) 0deg, #e4ebe8 0deg);
  position: relative; flex: 0 0 auto;
}
.score-ring::after { content:""; position:absolute; inset:10px; border-radius:50%; background:white; }
.score-ring div { position: relative; z-index:1; text-align:center; }
.score-ring strong { font-size: 38px; }
.score-ring span { color: var(--muted); }
.grid.two { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.platform-row {
  display:flex; align-items:center; justify-content:space-between;
  padding: 13px 0; border-bottom: 1px solid var(--line);
}
.platform-row:last-child { border-bottom: 0; }
.status { font-size: 13px; font-weight: 800; border-radius:999px; padding:6px 9px; }
.status.good { color:var(--good); background:#e8f7ef; }
.status.warn { color:var(--warn); background:#fff4d6; }
.status.bad { color:var(--bad); background:#fdecea; }
.check-list { list-style:none; padding:0; margin:0; }
.check-list li { padding: 11px 0; border-bottom:1px solid var(--line); color: var(--muted); }
.check-list li:last-child { border-bottom:0; }
.check-list strong { color: var(--ink); }
.section-title { display:flex; justify-content:space-between; gap:20px; align-items:flex-start; }
.issues { display:grid; gap:12px; }
.issue {
  border:1px solid var(--line); border-radius:14px; padding:16px;
  display:grid; grid-template-columns:auto 1fr; gap:12px;
}
.issue-number {
  width:30px; height:30px; border-radius:9px; display:grid; place-items:center;
  background: rgba(15,118,110,.12); color:var(--brand-dark); font-weight:800;
}
.issue strong { display:block; margin-bottom:5px; }
.issue p { margin:0; color:var(--muted); line-height:1.45; }
.more-issues { margin: 14px 0 0; color: var(--accent); font-weight: 700; }
.impact { margin-top: 6px !important; font-size: 13px; font-weight: 700; color: var(--brand-dark) !important; }
.premium-card { position:relative; overflow:hidden; min-height:320px; }
.blurred { filter:blur(6px); opacity:.45; user-select:none; }
.premium-overlay {
  position:absolute; inset:0; z-index:2;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align:center; padding:34px;
  background:rgba(255,255,255,.76); backdrop-filter:blur(2px);
}
.premium-overlay p { max-width:540px; color:var(--muted); }
.fake-chart { height:120px; display:flex; align-items:flex-end; gap:20px; padding:20px 0; }
.fake-chart span { flex:1; background:var(--brand); border-radius:8px 8px 0 0; }
.success { border-color:#b6e6ca; background:#f0fbf5; }
@media (max-width: 720px) {
  .scan-form { flex-direction:column; }
  .grid.two { grid-template-columns:1fr; }
  .report-header { align-items:flex-start; flex-wrap: wrap; }
  .score-ring { width:102px; height:102px; }
  .score-ring strong { font-size:30px; }
}
