:root {
  --bg:#f5f7fb;
  --card:#fff;
  --text:#1f2937;
  --muted:#6b7280;
  --border:#dbe3ee;
  --primary:#2563eb;
  --primary-dark:#1d4ed8;
  --danger:#b91c1c;
  --success:#166534;
  --soft-blue:#eef4ff;
}
* { box-sizing:border-box; }
body { margin:0; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; color:var(--text); background:var(--bg); line-height:1.6; }
.container { max-width:1080px; margin:0 auto; padding:32px 16px 48px; }
.hero { margin-bottom:24px; }
.eyebrow { margin:0 0 8px; color:var(--primary-dark); font-weight:700; font-size:14px; }
h1,h2,h3 { margin:0 0 12px; }
.lead,.section-head p,.cta p,.empty-state { color:var(--muted); }
.card { background:var(--card); border:1px solid var(--border); border-radius:16px; padding:24px; margin-bottom:20px; box-shadow:0 8px 24px rgba(15,23,42,.05); }
.grid,.result-grid,.insight-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.result-grid--summary { grid-template-columns:repeat(4,minmax(0,1fr)); }
label span { display:block; margin-bottom:8px; font-weight:600; }
em { font-style:normal; color:var(--danger); font-size:12px; margin-left:6px; }
input,textarea { width:100%; padding:12px 14px; border:1px solid var(--border); border-radius:10px; font-size:16px; font:inherit; }
input:focus,textarea:focus { outline:none; border-color:var(--primary); box-shadow:0 0 0 3px rgba(37,99,235,.12); }
.memo-field { display:block; margin-top:16px; }
.actions,.cta-links,.pdf-form { display:flex; gap:12px; flex-wrap:wrap; margin-top:20px; }
.btn { display:inline-flex; align-items:center; justify-content:center; padding:12px 18px; border-radius:10px; text-decoration:none; font-weight:700; border:1px solid transparent; cursor:pointer; }
.btn-primary { background:var(--primary); color:#fff; }
.btn-primary:hover { background:var(--primary-dark); }
.btn-secondary { background:#fff; color:var(--text); border-color:var(--border); }
.alert { border-radius:12px; padding:14px 16px; margin-bottom:18px; }
.alert-error { background:#fef2f2; border:1px solid #fecaca; color:#991b1b; }
.alert ul { margin:10px 0 0; padding-left:18px; }
.result-item,.insight-card { border:1px solid var(--border); border-radius:12px; padding:16px; background:#fafcff; }
.result-item--decision { background:var(--soft-blue); }
.label { display:block; color:var(--muted); font-size:14px; margin-bottom:6px; }
.profit.negative,.comment-box.negative { color:var(--danger); }
.profit.positive,.comment-box.positive { color:var(--success); }
.comment-box { margin-top:18px; padding:14px 16px; border-radius:12px; background:#f8fafc; border:1px solid var(--border); font-weight:700; }
.insight-grid { margin-top:18px; }
.ratio-list,.warning-list { margin:0; padding-left:18px; }
.ratio-list { list-style:none; padding-left:0; }
.ratio-list li { display:flex; justify-content:space-between; padding:8px 0; border-bottom:1px solid var(--border); }
.ratio-list li:last-child { border-bottom:none; }
.warning-list li + li { margin-top:8px; }
.warning-list li::marker { color:var(--danger); }
.lead p {
  margin: 0;
}
.lead p + p {
  margin-top: 10px;
}
.result-product-name {
  margin: 0 0 16px;
  font-size: 15px;
  line-height: 1.7;
  color: #374151;
  font-weight: 600;
}
.form-block + .form-block {
  margin-top: 28px;
}
.form-block-sub {
  padding-top: 20px;
  border-top: 1px solid #e5e7eb;
}
.grid-full {
  grid-column: 1 / -1;
}
.calc-form .section-head {
  margin-bottom: 16px;
}
.calc-form .section-head h2 {
  font-size: 20px;
  margin-bottom: 6px;
}
.calc-form .section-head p {
  margin: 0;
  font-size: 14px;
  color: #6b7280;
}
input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
input[type="number"] {
  -moz-appearance: textfield;
  appearance: textfield;
}
.results {
  scroll-margin-top: 24px;
}
.cta .lead {
  margin-bottom: 0;
}
.cta-links {
  align-items: center;
}
@media (max-width:900px) {
  .result-grid--summary { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:720px) {
  .grid,.result-grid,.insight-grid,.result-grid--summary { grid-template-columns:1fr; }
  .card { padding:18px; }
  .actions,.cta-links,.pdf-form { flex-direction:column; }
  .btn { width:100%; }
}