/* Canonical tools only. Existing pages do not load this stylesheet. */
.ru-tool { --ru-text:#222; --ru-muted:#555; --ru-border:#aaa; --ru-space:16px;
  box-sizing:border-box; max-width:760px; margin:0; padding:20px;
  background:#fff; color:var(--ru-text); font:16px/1.5 Arial,Helvetica,sans-serif; }
.ru-tool *, .ru-tool *::before, .ru-tool *::after { box-sizing:border-box; }
.ru-tool [hidden] { display:none !important; }
.ru-tool h1 { margin:0 0 6px; font-size:30px; line-height:1.2; }
.ru-tool h2 { margin:0 0 16px; font-size:20px; line-height:1.3; }
.ru-tool h3 { margin:20px 0 8px; font-size:18px; }
.ru-tool p { margin:0 0 12px; }
.ru-tool .ru-description, .ru-tool .ru-help { color:var(--ru-muted); }
.ru-tool .ru-section { margin-top:24px; padding-top:16px; border-top:2px solid #333; }
.ru-tool fieldset { min-width:0; margin:0 0 16px; padding:0; border:0; }
.ru-tool legend { padding:0; margin-bottom:12px; font-weight:bold; }
.ru-tool .ru-input-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.ru-tool .ru-field { min-width:0; }
.ru-tool label { display:block; margin-bottom:6px; font-weight:bold; }
.ru-tool input:not([type=radio]):not([type=checkbox]), .ru-tool select, .ru-tool textarea {
  width:100%; min-height:44px; padding:10px; border:1px solid var(--ru-border);
  border-radius:3px; background:#fff; color:var(--ru-text); font:inherit; }
.ru-tool input[type=radio], .ru-tool input[type=checkbox] { margin-right:8px; }
.ru-tool .ru-choice { display:flex; align-items:center; min-height:44px; font-weight:normal; }
.ru-tool .ru-help { font-size:14px; margin:6px 0 0; }
.ru-tool .ru-unit { font-weight:normal; white-space:nowrap; }
.ru-tool .ru-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:20px; }
.ru-tool button { min-height:44px; padding:10px 18px; border:2px solid #222;
  border-radius:3px; background:#fff; color:#222; cursor:pointer; font:700 16px Arial,Helvetica,sans-serif; }
.ru-tool button:hover { background:#eee; }
.ru-tool .ru-primary-button { background:#222; color:#fff; }
.ru-tool .ru-primary-button:hover { background:#444; }
.ru-tool :is(input,select,textarea,button,a):focus-visible { outline:3px solid #555; outline-offset:3px; }
.ru-tool [aria-invalid=true] { border-color:#a00000 !important; }
.ru-tool .ru-field-error { color:#a00000; font-size:14px; margin:6px 0 0; }
.ru-tool .ru-error-summary { margin:16px 0 0; padding:12px; border:1px solid #a00000; color:#900; }
.ru-tool .ru-warning, .ru-tool .ru-information, .ru-tool .ru-formula {
  margin:16px 0; padding:12px; border-left:4px solid #555; background:#f3f3f3; }
.ru-tool .ru-warning { border-color:#806000; background:#fff8e8; }
.ru-tool .ru-primary-result { margin-bottom:12px; padding:12px; background:#f3f3f3; }
.ru-tool .ru-primary-result strong { display:block; font-size:24px; overflow-wrap:anywhere; }
.ru-tool .ru-results { margin:0; }
.ru-tool .ru-result-row { display:flex; justify-content:space-between; gap:16px;
  padding:10px 0; border-bottom:1px solid #ddd; }
.ru-tool .ru-result-row dt { font-weight:normal; }
.ru-tool .ru-result-row dd { margin:0; font-weight:bold; text-align:right; overflow-wrap:anywhere; }
.ru-tool .ru-table-wrapper { max-width:100%; overflow-x:auto; }
.ru-tool table { width:100%; border-collapse:collapse; font-size:14px; }
.ru-tool th, .ru-tool td { padding:8px 10px; border:1px solid #aaa; text-align:left; }
.ru-tool th { background:#eee; }
.ru-tool .ru-numeric { text-align:right; font-variant-numeric:tabular-nums; }
.ru-tool caption { text-align:left; font-weight:bold; margin-bottom:8px; }
.ru-tool .ru-disclaimer { color:#555; font-size:14px; }
.ru-tool .ru-visually-hidden { position:absolute; width:1px; height:1px; padding:0;
  margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
@media (max-width:650px) {
  .ru-tool { padding:14px; }
  .ru-tool h1 { font-size:26px; }
  .ru-tool .ru-input-grid { grid-template-columns:1fr; }
  .ru-tool .ru-actions { flex-direction:column; }
  .ru-tool .ru-result-row { flex-direction:column; gap:3px; }
  .ru-tool .ru-result-row dd { text-align:left; }
}
body.ru-page { margin:0; background:#fff; }
