
:root {
  --bg:#f7f8f9; --card:#fff; --text:#111; --muted:#555; --border:#e6e8eb;
  --accent:#1a8f2f; --accent-weak:#daf1df; --focus:#1aa3d3; --shadow:0 8px 40px rgba(0,0,0,.06);
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--bg);color:var(--text);font:16px/1.5 system-ui,-apple-system,Segoe UI,Inter,Roboto}
.container{max-width:960px;margin:32px auto;padding:28px;background:var(--card);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow)}
.header h1{margin:0 0 8px;text-align:center}
.steps{display:flex;gap:24px;justify-content:center;list-style:none;padding:10px 0 20px;margin:0 0 16px;border-bottom:1px solid var(--border)}
.steps li{display:flex;align-items:center;gap:8px;color:var(--muted)}
.steps .idx{width:28px;height:28px;border-radius:50%;display:inline-grid;place-items:center;border:2px solid var(--border);font-weight:600}
.steps .active .idx{border-color:var(--accent);color:var(--accent)}
.steps .done .idx{background:var(--accent);border-color:var(--accent);color:#fff}
.steps .label{font-weight:600}
.content{min-height:280px}
.card{border:1px solid var(--border);border-radius:12px;padding:16px;background:#fff}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.field{display:flex;flex-direction:column;gap:6px}
label{font-size:.95rem}
input[type="number"], select{padding:10px;border:1px solid var(--border);border-radius:10px}
.radio{display:flex;flex-direction:column;gap:6px}
.actions{display:flex;gap:12px;justify-content:center;margin-top:18px}
button{padding:10px 16px;border-radius:12px;border:1px solid var(--border);background:#fff;cursor:pointer}
button#nextBtn{background:var(--accent);border-color:var(--accent);color:#fff}
button.ghost{background:#fff}
.hidden{display:none}
.result{margin-top:18px;border:1px solid var(--border);border-radius:12px;padding:18px;background:#fbfffb}
.breakdown{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:12px 0}
.lineitems{list-style:none;padding:0;margin:8px 0}
.lineitems li{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px dashed var(--border)}
.net{margin-top:16px;text-align:center;padding:12px;border-top:2px solid var(--border)}
.netValue{font-size:2rem;font-weight:800;margin-top:6px}
.note{color:var(--muted);font-size:.9rem;margin-top:10px}
@media (max-width:720px){.grid,.breakdown{grid-template-columns:1fr} .steps{gap:10px} .steps .label{display:none}}
@media print {.actions{display:none} .container{border:none;box-shadow:none} body{background:#fff}}

/* Validation styles */
.field.invalid input,
.field.invalid select {
  border-color: #d93025; /* red */
  outline-color: #d93025;
}

.error {
  margin-top: 6px;
  color: #d93025;
  font-size: 0.9rem;
}

/* Disabled Next button */
button#nextBtn:disabled {
  opacity: .6;
  cursor: not-allowed;
}
