:root { --ink:#1d2b24; --green:#083706; --line:#d9ded9; --bg:#f6f7f5; --muted:#6b736d; --warn:#b4531a; }
* { box-sizing:border-box; }
body { margin:0; font-family: "Aptos", "Segoe UI", Helvetica, Arial, sans-serif; color:var(--ink); background:var(--bg); }
header.top { display:flex; justify-content:space-between; align-items:center; padding:12px 28px; background:#fff; border-bottom:1px solid var(--line); }
.brand { font-weight:700; color:var(--green); text-decoration:none; font-size:18px; } .brand span { font-weight:400; color:var(--ink); }
nav { display:flex; gap:14px; align-items:center; } nav a { color:var(--ink); text-decoration:none; } .user { color:var(--muted); }
main { max-width: 980px; margin: 24px auto; padding: 0 20px 60px; }
footer { text-align:center; color:var(--muted); font-size:12px; padding:20px; }
h1 { font-size:24px; margin:0 0 16px; } h2 { font-size:18px; margin:0 0 14px; } h3 { font-size:14px; margin:22px 0 8px; text-transform:uppercase; letter-spacing:.04em; color:var(--muted); }
.btn { display:inline-block; padding:8px 14px; border:1px solid var(--green); border-radius:6px; background:#fff; color:var(--green); cursor:pointer; font:inherit; text-decoration:none; }
.btn.primary { background:var(--green); color:#fff; } .btn.small { padding:4px 10px; font-size:13px; } .btn.big { padding:12px 22px; font-size:16px; }
.steps { display:flex; gap:6px; list-style:none; padding:0; margin:0 0 18px; counter-reset:s; }
.steps li { flex:1; padding:8px 10px; border-bottom:3px solid var(--line); color:var(--muted); cursor:pointer; counter-increment:s; font-size:14px; }
.steps li::before { content: counter(s) ". "; } .steps li.on { border-color:var(--green); color:var(--green); font-weight:600; }
section.step { display:none; background:#fff; border:1px solid var(--line); border-radius:8px; padding:22px 24px; } section.step.on { display:block; }
label { display:block; margin:10px 0; font-size:14px; } label.short { max-width:260px; display:inline-block; margin-right:16px; vertical-align:top; }
input, select { width:100%; padding:8px 10px; border:1px solid var(--line); border-radius:6px; font:inherit; margin-top:4px; }
input.inline { width:90px; display:inline-block; margin:0 4px; }
fieldset { border:1px solid var(--line); border-radius:6px; margin:12px 0; padding:8px 14px; } legend { font-size:13px; color:var(--muted); padding:0 6px; }
label.radio { display:block; margin:6px 0; } label.radio input { width:auto; margin-right:6px; } label.radio.inline { display:inline-block; margin-left:10px; }
.row { display:flex; flex-wrap:wrap; gap:0 12px; }
.cards { display:flex; gap:14px; } .card { flex:1; border:1px solid var(--line); border-radius:8px; padding:14px; cursor:pointer; }
.card input { width:auto; margin-right:8px; } .card b { display:inline; } .card span { display:block; color:var(--muted); font-size:13px; margin-top:6px; }
.card:has(input:checked) { border-color:var(--green); box-shadow: 0 0 0 2px #0837061a; }
.formula { background:var(--bg); padding:10px 12px; border-radius:6px; font-size:14px; }
.muted { color:var(--muted); font-size:13px; }
table { width:100%; border-collapse:collapse; font-size:14px; } th { text-align:left; color:var(--muted); font-weight:600; border-bottom:1px solid var(--line); padding:6px 8px; } td { padding:6px 8px; border-bottom:1px solid var(--line); vertical-align:middle; }
table.rates td.std { color:var(--muted); } table.rates input { width:120px; } table.rates input.changed { border-color:var(--warn); background:#fff7f1; }
table.staff input, table.staff select { margin:0; }
.quote { margin-top:18px; max-width:360px; } .quote div { display:flex; justify-content:space-between; padding:6px 0; border-bottom:1px solid var(--line); } .quote .total { font-weight:700; border-bottom:none; }
.navbar { display:flex; justify-content:space-between; margin-top:14px; }
dl.review { display:grid; grid-template-columns: 180px 1fr; gap:6px 14px; font-size:14px; } dl.review dt { color:var(--muted); } dl.review dd { margin:0; }
.error { background:#fdecec; color:#8a1f1f; padding:10px 14px; border-radius:6px; margin-bottom:12px; }
.flag { background:#fff4e8; color:var(--warn); padding:8px 12px; border-radius:6px; margin:6px 0; font-size:14px; }
.tag { background:var(--bg); border:1px solid var(--line); border-radius:12px; padding:2px 8px; font-size:12px; }
table.list a { color:var(--green); }
