.calc { display: grid; gap: 16px; margin: 1em 0 2em; }
.calc fieldset { border: 1px solid var(--line, #2c3136); border-radius: var(--radius, 6px); padding: 16px; margin: 0; background: var(--bg-2, #171a1d); }
.calc fieldset[hidden] { display: none; }
.calc legend { font-weight: 700; padding: 0 6px; }
.calc__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 12px; }
.calc__f { display: grid; gap: 4px; font-size: 14px; color: var(--muted, #9aa3ab); }
.calc__f small { font-size: 12px; }
.calc__f input, .calc__f select { width: 100%; padding: 10px; border-radius: var(--radius, 6px); border: 1px solid var(--line, #2c3136); background: var(--bg, #0f1113); color: var(--text, #e9ecef); font: inherit; font-size: 16px; }
.calc__f.is-bad input, .calc__f.is-bad select { border-color: var(--err, #e5534b); }
.calc__chk { display: flex; gap: 8px; align-items: center; }
.calc__ops { display: flex; flex-wrap: wrap; gap: 16px; }
.calc__ops label { display: flex; gap: 6px; align-items: center; }
.calc__out { background: var(--bg-3, #202428); border-radius: var(--radius, 6px); padding: 16px; overflow-x: auto; }
.calc__t { width: 100%; border-collapse: collapse; font-size: 14px; }
.calc__t th, .calc__t td { padding: 8px; border-bottom: 1px solid var(--line, #2c3136); text-align: left; }
.calc__t td:last-child { text-align: right; white-space: nowrap; }
.calc__note { font-size: 13px; color: var(--muted, #9aa3ab); margin: 8px 0 0; }
.calc__err { color: var(--err, #e5534b); margin: 0; }
.calc__go { justify-self: start; }
.calc__f[hidden] { display: none; }
