:root {
  --primary: #2563eb;
  --primary-dark: #1d4ed8;
  --text: #1f2937;
  --muted: #6b7280;
  --border: #e5e7eb;
  --bg: #ffffff;
  --code-bg: #f3f4f6;
}
* { box-sizing: border-box; margin: 0; padding: 0; }
body {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  color: var(--text);
  background: var(--bg);
  line-height: 1.6;
}
.container { max-width: 1100px; margin: 0 auto; padding: 0 20px; }
.nav { background: #fff; border-bottom: 1px solid var(--border); }
.nav-inner { display: flex; justify-content: space-between; align-items: center; height: 60px; }
.brand { font-weight: 700; font-size: 20px; color: var(--primary); text-decoration: none; }
.nav-links a { margin-left: 20px; color: var(--text); text-decoration: none; font-weight: 500; }
.nav-links a:hover { color: var(--primary); }
main { padding: 40px 0; min-height: calc(100vh - 120px); }
.footer { border-top: 1px solid var(--border); padding: 20px 0; color: var(--muted); font-size: 14px; text-align: center; }
.hero { text-align: center; padding: 60px 0 30px; }
.hero h1 { font-size: 42px; line-height: 1.2; margin-bottom: 16px; }
.lead { font-size: 18px; color: var(--muted); max-width: 640px; margin: 0 auto 30px; }
.btn {
  display: inline-block; background: var(--primary); color: #fff; border: none;
  padding: 12px 24px; border-radius: 8px; font-size: 16px; cursor: pointer; text-decoration: none;
}
.btn:hover { background: var(--primary-dark); }
.btn-lg { font-size: 18px; padding: 14px 32px; }
.btn-small { padding: 6px 12px; font-size: 14px; }
.btn-secondary { background: #374151; }
.btn-secondary:hover { background: #111827; }
.features { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 30px; padding: 40px 0; }
.feature { border: 1px solid var(--border); border-radius: 12px; padding: 24px; }
.feature h2 { font-size: 20px; margin-bottom: 10px; color: var(--primary); }
.pricing { padding: 40px 0; }
.pricing h2 { text-align: center; margin-bottom: 30px; }
.plans { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 20px; }
.plan { border: 1px solid var(--border); border-radius: 12px; padding: 24px; text-align: center; }
.plan h3 { font-size: 18px; margin-bottom: 8px; }
.price { font-size: 32px; font-weight: 700; color: var(--primary); margin-bottom: 10px; }
.cta { text-align: center; padding: 40px 0; }
.signup { max-width: 520px; margin: 0 auto; text-align: center; padding: 40px 0; }
.github-note { color: var(--muted); margin: 16px 0; }
.repos, .usage, .release { margin: 20px 0; }
.repo-list { list-style: none; }
.repo-item { display: flex; align-items: center; gap: 16px; padding: 14px; border: 1px solid var(--border); border-radius: 8px; margin-bottom: 10px; }
.repo-name { flex: 1; font-weight: 600; }
.small { font-size: 13px; color: var(--muted); }
.settings-form { border: 1px solid var(--border); border-radius: 12px; padding: 24px; margin-bottom: 20px; }
.settings-form label { display: block; font-weight: 600; margin-bottom: 6px; }
.settings-form textarea, .settings-form input { width: 100%; padding: 10px; border: 1px solid var(--border); border-radius: 8px; margin-bottom: 12px; font-family: inherit; }
.cls-feature { color: #059669; }
.cls-fix { color: #2563eb; }
.cls-breaking { color: #dc2626; font-weight: 700; }
.error { color: #dc2626; }
@media (max-width: 640px) {
  .hero h1 { font-size: 28px; }
  .nav-links a { margin-left: 10px; }
}

.hero-badge{display:inline-block;background:#eef2ff;color:#4338ca;border:1px solid #c7d2fe;border-radius:9999px;padding:4px 14px;font-size:13px;margin-bottom:12px}
.card{border:1px solid var(--border);border-radius:12px;padding:24px;background:#fff}
.card.featured{border:2px solid #2563eb;box-shadow:0 8px 24px rgba(37,99,235,.12)}
.price{font-size:40px;font-weight:800;color:#2563eb}
.pricing-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;margin-top:16px}
.pricing ul{list-style:none;padding:0;margin:12px 0 16px;text-align:left}
.pricing li{padding:6px 0;border-bottom:1px dashed #e5e7eb}
.steps,.faq{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px;padding:12px 0}
.faq-item{border:1px solid #e5e7eb;border-radius:10px;padding:16px;margin-bottom:12px}
.step-num{color:#2563eb;font-weight:800;margin-bottom:6px}
.footer-grid{display:flex;flex-wrap:wrap;gap:32px;text-align:left;border-top:1px solid #e5e7eb;padding-top:20px}
.footer-grid a{display:block;color:#6b7280;text-decoration:none;font-size:14px;margin:2px 0}
.footer-grid a:hover{color:#2563eb}
.footer-brand{flex:1 1 280px}
.footer-links{flex:1 1 160px}
.footer-contact{flex:1 1 160px}
.footer-legal{text-align:center;padding-top:12px;font-size:12px;color:#6b7280}
.container-narrow{max-width:760px;margin:0 auto}
.legal-page h1{margin-bottom:12px;font-size:30px}
.legal-page h2{margin-top:24px;font-size:20px}
.lead-legal{font-size:17px;color:#374151}
.muted{color:#6b7280}
.fw600{font-weight:600}
.hero-cta{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}

/* S4a wizard / WhyPanel / Laki-17 states */
.wizard{max-width:900px;margin:24px auto}.wizard h1{font-size:28px}.wizard-steps{display:flex;gap:8px;margin:18px 0;flex-wrap:wrap}.wizard-steps .step{padding:8px 12px;border:1px solid var(--border);border-radius:9999px;color:#6b7280}.wizard-steps .step.active{background:#eef2ff;color:#4338ca;border-color:#c7d2fe}.empty-state{text-align:center;padding:48px 16px;border:1px dashed var(--border);border-radius:12px;margin:20px 0}.empty-state h2{margin-bottom:8px}.loading-state,.state-error,.fallback-warning,.breaking-banner{padding:14px 16px;border-radius:8px;margin:12px 0}.loading-state{background:#eff6ff;color:#1e40af}.state-error{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca}.fallback-warning{background:#fffbeb;color:#92400e;border:1px solid #fde68a}.breaking-banner{background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;font-weight:700}.why-panel{border:1px solid var(--border);border-radius:12px;padding:18px;margin:20px 0}.why-panel h3{margin-top:0}.classification{list-style:none;padding:0}.classification li{display:flex;gap:10px;align-items:flex-start;padding:8px 0;border-bottom:1px dashed #e5e7eb}.cls-badge{font-size:12px;font-weight:700;padding:2px 10px;border-radius:9999px;background:#e5e7eb;white-space:nowrap}.cls-feature .cls-badge{background:#d1fae5;color:#065f46}.cls-fix .cls-badge{background:#dbeafe;color:#1e40af}.cls-breaking .cls-badge,.cls-breaking-list li{background:#fee2e2;color:#991b1b}.cls-breaking{color:#b91c1c;font-weight:600}.breaking-list{margin-top:6px}.release-header{display:flex;align-items:center;gap:14px}.published-state,.success{color:#065f46}.btn.small{padding:4px 10px;font-size:12px}.gen-result{margin-left:8px;font-size:13px}

/* S4b UI polish */.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}

.topnav{background:#fff;border-bottom:1px solid var(--border)}
.back-link{margin:0 0 10px;font-size:14px}
.back-link a{color:#2563eb;text-decoration:none;font-weight:600}
.back-link a:hover{text-decoration:underline}
.repos{overflow-x:auto;overflow-y:hidden}
.repos table{width:100%;border-collapse:collapse}
.repos th,.repos td{padding:8px 10px;text-align:left;border-bottom:1px solid var(--border)}
@media (max-width:768px){.container{padding:0 14px}.hero{padding:36px 0 18px}.hero h1{font-size:32px}.nav-inner{height:auto;flex-wrap:wrap;padding:8px 0}.btn-lg{padding:12px 24px;font-size:16px}.footer-grid{padding-top:16px}}
@media (max-width:480px){.hero h1{font-size:25px}.lead{font-size:16px}.price{font-size:28px}.hero-cta{flex-direction:column}.btn-lg{width:100%;text-align:center}.features,.pricing-grid,.steps,.faq{grid-template-columns:1fr}.pricing-grid{margin-top:12px}}

/* Mobile hardening: prevent horizontal overflow and reserve footer space for the chat widget */
html, body { overflow-x: clip; }
@media (max-width: 520px) { footer, .footer { padding-bottom: 76px; } }
