.ost { border: 1px solid var(--ink, #16191b); border-top-width: 4px; background: #fff; padding: 20px; margin: 1.6em 0; font-size: 16px; line-height: 1.45; }
.ost__grid { display: grid; gap: 14px 18px; }
@media (min-width: 600px) { .ost__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 900px) { .ost__grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.ost__field label, .ost__field legend { display: block; font-weight: 600; font-size: 14px; color: var(--ink, #16191b); margin-bottom: 6px; }
.ost__field fieldset { border: 0; padding: 0; margin: 0; }
.ost__unit { display: flex; border: 1px solid #b9bfc2; background: #fff; }
.ost__unit:focus-within, .ost select:focus { border-color: var(--ink, #16191b); outline: 2px solid var(--accent, #a9481c); outline-offset: -1px; }
.ost__unit input { flex: 1; min-width: 0; border: 0; padding: 10px 12px; font-size: 17px; background: transparent; font-variant-numeric: tabular-nums; }
.ost__unit input:focus { outline: none; }
.ost__unit span { display: flex; align-items: center; padding: 0 12px; background: #f2f3f0; color: #646c71; font-size: 14px; border-left: 1px solid #d9dddf; white-space: nowrap; }
.ost select { width: 100%; border: 1px solid #b9bfc2; padding: 10px 12px; font-size: 17px; background: #fff; border-radius: 0; }
.ost__check { display: flex; gap: 10px; align-items: flex-start; font-size: 15px; }
.ost__check input { margin-top: 4px; width: 18px; height: 18px; accent-color: var(--accent, #a9481c); }
.ost__hint { font-size: 13px; color: #646c71; margin: 14px 0 0; }
.ost__error { margin-top: 16px; padding: 10px 12px; background: #fbeee8; color: #7a2f10; font-size: 15px; }
.ost__result { margin-top: 18px; border-top: 1px solid #d9dddf; padding-top: 14px; }
.ost__out { margin: 0; display: grid; gap: 0; }
.ost__out > div { display: flex; justify-content: space-between; gap: 16px; align-items: baseline; padding: 8px 0; border-bottom: 1px solid #eceeef; }
.ost__out dt { color: #2b3034; font-size: 15px; }
.ost__out dd { margin: 0; font-weight: 600; color: var(--ink, #16191b); text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.ost__out .ost__main { border-bottom: 2px solid var(--ink, #16191b); padding: 4px 0 12px; }
.ost__out .ost__main dt { font-weight: 600; }
.ost__out .ost__main dd { font: 600 30px/1.1 var(--serif, Georgia, serif); color: var(--accent, #a9481c); }
.ost__steps { margin: 14px 0 0; padding-left: 1.2em; font-size: 14px; color: #2b3034; }
.ost__steps li + li { margin-top: 4px; }
.ost__warn { margin-top: 14px; font-size: 14px; background: #f2f3f0; padding: 10px 12px; }
.ost__checks { display: grid; gap: 10px; margin-top: 16px; }
.ost__sub { margin-top: 14px; padding: 14px; background: #f2f3f0; }
.ost [hidden] { display: none !important; }
