.calc{background:var(--bg2);padding:1.25rem;border-radius:12px;margin:1.5rem 0;}
.calc fieldset{border:0;margin:0 0 1rem;padding:0;}
.calc legend{font-weight:700;margin-bottom:.5rem;}
.calc label{display:block;margin:.4rem 0 .15rem;font-weight:600;}
.calc input[type=number],.calc input[type=text]{font:inherit;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:6px;padding:.45rem .6rem;width:100%;max-width:14rem;box-sizing:border-box;}
.calc .rowgrid{display:grid;grid-template-columns:minmax(8rem,2fr) minmax(5rem,1fr) 5.5rem 6rem 6.5rem;gap:.5rem;align-items:center;margin:.35rem 0;}
.calc .rowgrid.head{font-weight:700;font-size:.9rem;color:var(--soft);}
.calc .rowgrid input[type=number],.calc .rowgrid input[type=text]{max-width:none;}
.calc button{font:inherit;cursor:pointer;background:var(--accent);color:#fff;border:0;border-radius:6px;padding:.5rem .9rem;}
.calc button.plain{background:transparent;color:var(--accent);border:1px solid var(--accent);padding:.35rem .6rem;}
.calc .modes label{display:inline-block;margin-right:1rem;font-weight:400;}
.calc .warn{color:#8a1c1c;font-weight:600;min-height:1.4em;}
.calc .sum{margin:.75rem 0 0;font-weight:600;}
.calc input:focus-visible,.calc button:focus-visible{outline:3px solid var(--ink);outline-offset:2px;}
@media (max-width:640px){.calc .rowgrid{grid-template-columns:1fr 1fr;}.calc .rowgrid.head{display:none;}}
