:root { --green:#173d2b; --green-2:#24563d; --cream:#f7f5ef; --ink:#17231c; --muted:#617068; --line:#d9ded9; --gold:#f1c767; --white:#fff; }
* { box-sizing:border-box; }
body { margin:0; background:linear-gradient(180deg,#e8efe9 0,#f7f5ef 260px); color:var(--ink); font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif; }
.app-shell { width:min(100%,680px); margin:0 auto; padding:24px 16px calc(28px + env(safe-area-inset-bottom)); }
.hero { display:flex; align-items:center; gap:14px; margin:10px 4px 24px; }
.brand-mark { display:grid; place-items:center; width:52px; height:52px; border-radius:16px; background:var(--green); color:var(--gold); font-weight:800; letter-spacing:-.06em; font-size:19px; box-shadow:0 8px 20px #173d2b25; }
h1,h2,p { margin:0; } h1 { font-size:27px; letter-spacing:-.04em; } h2 { font-size:18px; letter-spacing:-.02em; } .subtitle { color:var(--muted); font-size:14px; margin-top:2px; } .eyebrow { color:var(--green-2); font-size:11px; letter-spacing:.12em; font-weight:800; }
.card,.total-card { background:var(--white); border:1px solid var(--line); border-radius:20px; padding:20px; box-shadow:0 8px 24px #173d2b0d; margin-bottom:16px; }
.section-heading { display:flex; justify-content:space-between; align-items:center; margin-bottom:18px; }.text-button { border:0; background:transparent; color:var(--green-2); font-weight:700; padding:7px 4px; font-size:14px; }
label { display:block; font-size:14px; font-weight:750; margin:18px 0 7px; } input,select { width:100%; min-height:48px; border:1px solid #bfcac2; border-radius:11px; color:var(--ink); background:#fff; padding:0 12px; font:inherit; font-size:16px; } input:focus,select:focus { outline:3px solid #f1c76788; border-color:var(--green-2); }
.stump-group { padding:0 0 18px; border-bottom:1px solid var(--line); margin-bottom:18px; }.stump-group:first-child { padding-top:0; }.stump-group:last-child { margin-bottom:14px; }.group-heading { display:flex; justify-content:space-between; align-items:center; color:var(--green); font-size:14px; }.remove-group,.add-group-button { border:0; background:transparent; color:var(--green-2); font:inherit; font-weight:750; cursor:pointer; }.remove-group { font-size:13px; padding:6px 0; }.add-group-button { width:100%; min-height:46px; border:1px dashed #9eb4a4; border-radius:11px; background:#f4f8f4; font-size:14px; }
.input-with-unit { display:flex; align-items:center; position:relative; }.input-with-unit input { padding-right:72px; }.input-with-unit span:not(.currency) { position:absolute; right:13px; color:var(--muted); font-size:14px; pointer-events:none; }.input-with-unit .currency { position:absolute; left:13px; color:var(--muted); font-size:16px; }.input-with-unit .currency + input { padding-left:28px; padding-right:12px; }.field-note { color:var(--muted); font-size:12px; line-height:1.4; margin-top:6px; }.optional { color:var(--muted); font-weight:500; }
.toggle-row { display:flex; gap:16px; justify-content:space-between; align-items:center; padding:16px 0 0; }.toggle-row label { margin:0 0 3px; }.toggle-row p { color:var(--muted); font-size:12px; line-height:1.3; max-width:250px; }.toggle-row input { appearance:none; width:52px; height:30px; min-height:30px; padding:3px; border-radius:100px; background:#d5ddd7; cursor:pointer; }.toggle-row input::after { content:""; display:block; width:22px; height:22px; border-radius:50%; background:#fff; transition:.15s; box-shadow:0 1px 3px #0004; }.toggle-row input:checked { background:var(--green-2); }.toggle-row input:checked::after { transform:translateX(22px); }
.total-card { background:var(--green); color:#fff; border-color:var(--green); }.total-card .eyebrow { color:#cae0ce; }.total { font-size:48px; letter-spacing:-.06em; margin:3px 0 4px; }.quote-status { color:#deece1; font-size:14px; }.quote-lines { margin-top:18px; border-top:1px solid #ffffff33; }.quote-line { display:flex; justify-content:space-between; gap:12px; padding:9px 0; border-bottom:1px solid #ffffff22; font-size:14px; }.quote-line span:last-child { font-weight:750; white-space:nowrap; }.quote-disclaimer { color:#cae0ce; font-size:11px; line-height:1.4; margin-top:15px; }
details summary { cursor:pointer; font-weight:800; font-size:16px; color:var(--green); } details[open] summary { margin-bottom:12px; } .settings-panel .primary-button { margin-top:18px; }.primary-button { width:100%; min-height:48px; border:0; border-radius:11px; background:var(--green); color:#fff; font-weight:800; font-size:15px; }.tier-setting { display:grid; grid-template-columns:1fr 110px; gap:10px; align-items:end; margin:12px 0; }.tier-setting label { margin:0; }.tier-setting input { min-height:42px; }
footer { color:var(--muted); text-align:center; font-size:12px; padding:8px; }
@media (min-width:700px) { .app-shell { padding-top:42px; } .card,.total-card { padding:24px; } }
