:root {
  --bg: #f6f8fc;
  --bg2: #eef3fb;
  --card: rgba(255,255,255,0.92);
  --text: #0f172a;
  --muted: #64748b;
  --border: rgba(148, 163, 184, 0.22);
  --primary: #0f172a;
  --primary-2: #1e293b;
  --line: #e2e8f0;
  --soft: #f8fafc;
  --soft-2: #eef2ff;
  --ok: #0f766e;
  --warn: #f59e0b;
  --bad: #ef4444;
  --good: #22c55e;
  --shadow: 0 18px 60px rgba(15, 23, 42, 0.10);
  --radius-xl: 32px;
  --radius-lg: 24px;
  --radius-md: 18px;
}
* { box-sizing: border-box; }
html, body { min-height: 100%; }
body {
  margin: 0;
  color: var(--text);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  background:
    radial-gradient(circle at top left, rgba(199, 210, 254, 0.45), transparent 28%),
    radial-gradient(circle at top right, rgba(191, 219, 254, 0.42), transparent 24%),
    linear-gradient(180deg, #fbfcff 0%, var(--bg) 42%, var(--bg2) 100%);
}
a { color: inherit; }
.app { max-width: 1080px; margin: 0 auto; padding: 20px; }
.shell { min-height: 100vh; display: flex; align-items: flex-start; }
.card {
  width: 100%;
  background: var(--card);
  backdrop-filter: blur(14px);
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow);
  overflow: hidden;
}
.topbar { display: block; padding: 18px 22px 0; }
.logo-wrap { display:flex; justify-content:center; margin-bottom:8px; }
.logo-main { max-height:44px; width:auto; display:block; }
.brand {
  display: inline-flex; align-items: center; gap: 8px; width: fit-content;
  padding: 6px 12px; border-radius: 999px; background: var(--soft-2);
  color: var(--primary); font-weight: 700; font-size: 13px; letter-spacing: .01em;
}
.brand-dot { width:8px; height:8px; border-radius:50%; background:var(--primary); display:inline-block; }
.progress-wrap { width:100%; max-width:320px; margin-left:auto; }
.progress-head { display:flex; justify-content:space-between; font-size:13px; color:var(--muted); margin-bottom:8px; font-weight:700; }
.progress { height:10px; background:#e8eef7; border-radius:999px; overflow:hidden; }
.progress > span { display:block; height:100%; width:0; background:linear-gradient(90deg, #0f172a 0%, #334155 100%); transition:width .28s ease; border-radius:999px; }
.view { display:none !important; height:0; overflow:hidden; }
.view.active { display:block !important; height:auto; overflow:visible; }
#view-intro.active { display:grid !important; }
.intro { display:grid; grid-template-columns:1.08fr .92fr; gap:20px; padding:26px; }
.intro-panel, .info-panel, .question-panel, .result-panel, .submit-panel, .side-panel {
  border:1px solid var(--line); border-radius:28px; background:linear-gradient(180deg, #ffffff 0%, #fbfcff 100%);
}
.intro-panel { padding:28px; background:linear-gradient(180deg, rgba(255,255,255,0.98) 0%, rgba(248,250,252,0.96) 100%); }
.eyebrow { color:var(--muted); font-size:13px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
h1 { margin:14px 0 14px; font-size:clamp(34px, 5vw, 58px); line-height:.98; letter-spacing:-.045em; }
h2 { margin:0 0 10px; font-size:clamp(24px, 3vw, 34px); line-height:1.05; letter-spacing:-.035em; }
.lead { font-size:18px; line-height:1.62; color:var(--muted); max-width:60ch; }
.hero-points { display:grid; gap:12px; margin:22px 0 24px; }
.hero-point { display:grid; grid-template-columns:42px 1fr; gap:14px; align-items:start; padding:14px; border-radius:20px; background:#fff; border:1px solid var(--line); }
.hero-icon { display:grid; place-items:center; width:42px; height:42px; border-radius:14px; background:var(--soft-2); font-size:18px; }
.hero-point strong { display:block; margin-bottom:4px; font-size:15px; }
.hero-point span { color:var(--muted); font-size:14px; line-height:1.55; }
.button-row { display:flex; justify-content:center; gap:12px; flex-wrap:wrap; margin-top:16px; }
.btn {
  appearance:none; border:1px solid var(--line); background:#fff; color:var(--text); padding:14px 18px;
  border-radius:18px; font-size:14px; font-weight:700; cursor:pointer; transition:transform .16s ease, box-shadow .16s ease, background .16s ease;
  text-decoration:none; display:inline-flex; align-items:center; justify-content:center; gap:10px;
}
.btn:hover { transform:translateY(-1px); box-shadow:0 10px 28px rgba(15,23,42,0.08); }
.btn.primary { background:var(--primary); color:#fff; border-color:var(--primary); }
.btn:disabled { opacity:.45; cursor:not-allowed; transform:none; box-shadow:none; }
.info-panel {
  padding:24px; display:grid; gap:16px; align-content:start; background:linear-gradient(180deg, #101827 0%, #0f172a 100%);
  color:#fff; border-color:rgba(255,255,255,.07);
}
.pill {
  display:inline-flex; align-items:center; gap:8px; padding:8px 12px; border:1px solid rgba(255,255,255,.12); background:rgba(255,255,255,.06);
  border-radius:999px; font-size:12px; font-weight:700; color:rgba(255,255,255,.92); width:fit-content;
}
.info-panel h2 { margin:0; font-size:clamp(24px, 3vw, 34px); line-height:1.06; letter-spacing:-.035em; }
.info-panel p { margin:0; color:rgba(255,255,255,.72); line-height:1.65; font-size:15px; }
.dimension-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:8px; }
.dimension { border:1px solid rgba(255,255,255,.1); border-radius:18px; padding:14px; background:rgba(255,255,255,.04); }
.dimension .code { font-size:11px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:rgba(255,255,255,.64); }
.dimension strong { display:block; margin-top:6px; margin-bottom:4px; font-size:15px; }
.dimension span { display:block; color:rgba(255,255,255,.64); font-size:13px; line-height:1.45; }
.upload-form { display:grid; gap:16px; }
.upload-label { display:grid; gap:8px; font-size:14px; font-weight:700; }
input[type="file"], input[type="email"], input[type="text"], textarea {
  width:100%; border:1px solid var(--line); border-radius:18px; padding:15px 16px; font-size:16px; background:#fff; color:var(--text); outline:none;
}
input:focus, textarea:focus { border-color:#94a3b8; box-shadow:0 0 0 4px rgba(148,163,184,.14); }
.result-layout { display:grid; gap:18px; padding:18px; }
.result-hero { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.dark-hero { border-radius:28px; background:linear-gradient(180deg, #0f172a 0%, #111827 100%); color:#fff; padding:26px; min-height:280px; border:1px solid rgba(255,255,255,.05); }
.dark-hero .label { color:rgba(255,255,255,.64); font-size:13px; font-weight:700; }
.score-visual { display:grid; justify-items:center; align-content:start; gap:10px; margin:18px 0 8px; }
.score-visual svg { width:190px; height:190px; max-width:100%; display:block; }
.score-range-text { font-size:18px; font-weight:800; letter-spacing:-.02em; color:rgba(255,255,255,.96); }
.big-score { font-size:clamp(68px, 10vw, 92px); line-height:.9; letter-spacing:-.06em; font-weight:900; margin:14px 0 12px; }
.result-panel { padding:24px; }
.result-panel p { color:var(--muted); line-height:1.7; margin:0; }
.two-col { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.dimensions { display:grid; gap:16px; }
.metric { margin-top:16px; }
.metric-head { display:flex; justify-content:space-between; gap:12px; font-size:14px; font-weight:700; margin-bottom:8px; }
.small-progress { height:10px; background:#e8eef7; border-radius:999px; overflow:hidden; }
.small-progress > span { display:block; height:100%; background:linear-gradient(90deg, #0f172a 0%, #334155 100%); border-radius:999px; }
.clean-list { margin:12px 0 0; padding-left:18px; }
.clean-list li { margin:10px 0; color:var(--muted); line-height:1.6; }
.mini-stat-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:18px; }
.mini-stat { border:1px solid var(--line); border-radius:18px; padding:16px; background:#fbfcff; }
.mini-stat .stat-label { color:var(--muted); font-size:13px; font-weight:700; }
.mini-stat .stat-value { margin-top:6px; font-size:18px; font-weight:800; }
.submit-panel { padding:24px; background:linear-gradient(180deg, #fbfcff 0%, #f8fafc 100%); }
.submit-grid { display:block; }
.field-grid, .microcopy, .button-row { max-width:680px; margin-left:auto; margin-right:auto; text-align:center; }
.field-grid { display:grid; gap:12px; margin-top:16px; }
.field-grid input { text-align:left; }
.microcopy { margin-top:10px; color:var(--muted); font-size:13px; line-height:1.55; }
.notice { display:none; margin-top:14px; border-radius:18px; padding:14px 16px; font-size:14px; line-height:1.55; }
.notice.ok { display:block; border:1px solid rgba(15,118,110,.2); background:rgba(236,253,245,.95); color:var(--ok); }
.notice.err { display:block; border:1px solid rgba(185,28,28,.14); background:rgba(254,242,242,.95); color:#991b1b; }
.footer-note { padding:0 18px 18px; color:var(--muted); font-size:12px; text-align:center; }
.evaluation-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.eval-card { border:1px solid var(--line); border-radius:24px; padding:24px; background:linear-gradient(180deg, #ffffff 0%, #fbfcff 100%); }
.eval-card h3 { margin:0 0 12px; font-size:22px; line-height:1.1; letter-spacing:-.02em; }
.eval-card ul, .result-panel ul { margin:0; padding-left:18px; }
.eval-card li { margin:10px 0; color:var(--muted); line-height:1.6; }
.rewrite-grid { display:grid; gap:14px; }
.rewrite-card { border:1px solid var(--line); border-radius:18px; padding:18px; background:#fff; }
.rewrite-label { font-size:12px; text-transform:uppercase; letter-spacing:.08em; color:var(--muted); margin-bottom:8px; font-weight:800; }
.hidden { display:none !important; }
.loading-panel { min-height:320px; display:grid; place-items:center; }
.loading-wrap { max-width:620px; margin:0 auto; text-align:center; }
.loading-spinner { width:58px; height:58px; margin:26px auto 0; border-radius:50%; border:5px solid #e2e8f0; border-top-color:var(--primary); animation:spin .9s linear infinite; }
@keyframes spin { to { transform:rotate(360deg); } }
.results-banner {
  width:100%; text-align:center; font-size:18px; font-weight:600; line-height:1.6; color:#0f172a;
  background:#eef2ff; border:1px solid #e2e8f0; padding:16px 20px; border-radius:18px; margin-bottom:18px;
}
#resultsActions h2,
#resultsActions p,
#resultsActions .eyebrow { text-align:center; }
#resultsActions .submit-grid > div { max-width: 620px; margin: 0 auto; }
#resultsActions { padding: 32px; }
@media (max-width:980px) {
  .intro, .result-hero, .two-col, .submit-grid { grid-template-columns:1fr; }
  .progress-wrap { width:100%; max-width:none; }
}
@media (max-width:720px) {
  .app { padding:12px; }
  .topbar { padding:14px 14px 0; }
  .intro, .result-layout { padding:14px; }
  .intro-panel, .info-panel, .result-panel, .submit-panel { border-radius:22px; }
  .button-row { flex-direction:column; align-items:stretch; }
  .btn { width:100%; }
  .dimension-grid, .mini-stat-grid, .evaluation-grid { grid-template-columns:1fr; }
}

#view-email-gate,
#view-email-gate * {
  text-align: center;
}
.form-consent {
  max-width: 100%;
  text-align: left;
  font-size: 11px;
  line-height: 1.45;
  margin-top: 0;
}
.text-upload-label textarea {
  min-height: 150px;
  resize: vertical;
}
