.law-tool { --tool-line: #dbe3ed; --tool-ink: #283445; --tool-muted: #677589; --tool-accent: var(--tone, #287957); --tool-soft: var(--tone-soft, #eaf5ee); color: var(--tool-ink); min-width: 0; }
.law-tool *, .law-tool *::before, .law-tool *::after { box-sizing: border-box; }
.law-tool [hidden] { display: none !important; }
.law-tool button, .law-tool input, .law-tool select, .law-tool textarea { font: inherit; }
.tool-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-bottom: 16px; margin-bottom: 24px; border-bottom: 1px solid var(--tool-line); }
.tool-toolbar-actions, .tool-commands, .result-actions, .row-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; }
.tool-badge { display: flex; align-items: center; gap: 9px; font-size: 17px; font-weight: 600; }
.tool-badge > svg { color: var(--tool-accent); }
.law-tool svg, .law-tool i { width: 16px; height: 16px; flex: 0 0 16px; stroke-width: 1.7; }
.law-tool button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 40px; padding: 9px 16px; border: 1px solid #cbd5e1; border-radius: 4px; background: #fff; color: #53677f; cursor: pointer; line-height: 1.5; font-size: 12px; font-weight: 500; }
.law-tool button:hover { background: var(--tool-soft); border-color: var(--tool-accent); color: var(--tool-accent); }
.law-tool button:disabled { opacity: .45; cursor: wait; }
.law-tool .primary-button { background: var(--tool-accent); border-color: var(--tool-accent); color: #fff; font-weight: 500; padding-right: 24px; padding-left: 24px; }
.law-tool .primary-button:hover { background: var(--tool-accent); border-color: var(--tool-accent); filter: brightness(.92); color: #fff; }
.law-tool .text-button { border-color: transparent; background: transparent; color: #657a94; }
.law-tool .text-button:hover { color: var(--tool-accent); background: var(--tool-soft); }
.law-tool .icon-button { width: 32px; height: 32px; min-height: 32px; flex: 0 0 32px; padding: 7px; border-color: #e1e6ee; color: #7e90a6; }
.law-tool .icon-button:hover { border-color: var(--tool-accent); }
.law-tool .icon-button[aria-pressed="true"] { color: #946923; background: #fbf3e3; border-color: #e8d7ad; }
.law-tool .icon-button[aria-pressed="true"] svg { fill: #f0dca8; }
.law-tool [data-tool-form] { margin: 0; padding: 24px; border: 1px solid var(--tool-line); border-radius: 6px; background: #f6f8fb; }
.law-tool label { display: grid; align-content: start; gap: 9px; margin: 0; color: #4d617a; font-size: 13px; font-weight: 500; min-width: 0; }
.law-tool input, .law-tool select, .law-tool textarea { display: block; width: 100%; min-width: 0; min-height: 43px; margin: 0; padding: 10px 12px; border: 1px solid #c5d1df; border-radius: 4px; background: #fff; color: #283b50; font-size: 14px; font-weight: 400; line-height: 1.5; }
.law-tool input::placeholder, .law-tool textarea::placeholder { color: #99a7b8; }
.law-tool input:focus, .law-tool select:focus, .law-tool textarea:focus { outline: 0; border-color: var(--tool-accent); box-shadow: 0 0 0 2px var(--tool-soft); }
.law-tool textarea { resize: vertical; line-height: 1.8; }
.law-tool :focus-visible { outline: 2px solid var(--tool-accent); outline-offset: 3px; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin-bottom: 22px; }
.full-span { grid-column: 1 / -1; }
.law-tool .field-note { color: #816a36; font-size: 12px; line-height: 1.9; margin: 20px 0 0; padding: 11px 14px; border-left: 3px solid #d7b76e; background: #fff8e9; font-weight: 400; }
.tool-commands { margin-top: 24px; padding-top: 22px; border-top: 1px solid var(--tool-line); gap: 14px; }
.tool-message { margin: 16px 0 0; color: #287957; font-size: 12px; overflow-wrap: anywhere; }
.tool-message:empty { display: none; }
.tool-message.is-error { color: #a54e47; }
.tool-result { margin-top: 28px; padding: 24px; border: 1px solid #c5dfd1; border-top: 3px solid #287957; border-radius: 6px; background: #f0f8f4; min-width: 0; }
.tool-result pre { white-space: pre-wrap; overflow-wrap: anywhere; font: inherit; font-size: 13px; line-height: 1.9; margin: 0 0 20px; color: #435d53; }
.tool-result .result-caption { margin: 0 0 10px; font-size: 13px; font-weight: 500; color: #3b7159; }
.tool-result .result-total { margin: 0 0 22px; color: #236344; font-size: 32px; font-weight: 600; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; line-height: 1.25; }
.result-total small { margin-left: 8px; color: #6d8f7f; font-size: 12px; font-weight: 400; }
.calculation-lines { margin: 0; padding: 0; list-style: none; color: #567365; font-size: 12px; line-height: 2; }
.result-actions { margin-top: 24px; padding-top: 20px; border-top: 1px solid #d3e5dc; }
.interest-segment { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)) 32px; gap: 20px; padding: 24px 0; margin: 0 0 16px; border-top: 2px solid #d5dfeb; align-items: end; }
.interest-segment label:nth-of-type(3) { grid-column: 1; }
.interest-segment .icon-button { grid-column: 3; grid-row: 2; align-self: end; margin-bottom: 6px; }
.table-scroll { max-width: 100%; overflow: auto; margin: 20px 0; }
.evidence-table, .result-table { width: 100%; border-collapse: collapse; text-align: left; font-size: 12px; background: #fff; }
.evidence-table { min-width: 740px; }
.evidence-table th, .evidence-table td, .result-table th, .result-table td { border: 1px solid #d9e2ee; padding: 12px 10px; vertical-align: top; overflow-wrap: anywhere; }
.evidence-table th, .result-table th { color: #4c6581; background: #eaf0f7; font-size: 11px; font-weight: 500; white-space: nowrap; }
.evidence-table tbody tr:nth-child(even), .result-table tbody tr:nth-child(even) { background: #f7f9fc; }
.evidence-table td:nth-child(2) { width: 23%; }
.evidence-table td:nth-child(4) { width: 75px; }
.evidence-table td:nth-child(5) { width: 28%; }
.evidence-table input, .evidence-table textarea { padding: 8px; min-height: 36px; border-color: #d3deeb; font-size: 12px; }
.evidence-table .row-actions { flex-wrap: nowrap; gap: 2px; }
.evidence-table .icon-button { width: 26px; min-height: 28px; height: 28px; flex-basis: 26px; padding: 5px; }
.result-table { min-width: 520px; }
.tool-page-app { padding: 20px 0 0; margin: 24px 0 30px; }
.tool-page-app .tool-badge { font-size: 14px; font-weight: 600; }
.source-note { color: #7b8ca2; font-size: 11px; margin: 18px 0; line-height: 1.9; }
.source-note a { color: #456c94; text-decoration: underline; text-underline-offset: 3px; font-weight: 400; }
@media (max-width: 760px) {
  .law-tool .form-grid { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .law-tool [data-tool-form] { padding: 20px 16px; }
  .interest-segment { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 20px 12px; }
  .interest-segment .icon-button { grid-column: 2; grid-row: 3; justify-self: end; margin-bottom: 0; }
  .law-tool .result-total { font-size: 28px; }
  .tool-badge { font-size: 15px; }
  .tool-toolbar { gap: 10px; margin-bottom: 20px; }
  .tool-toolbar-actions { flex-wrap: nowrap; gap: 6px; }
  .law-tool .tool-commands { align-items: stretch; gap: 10px; }
  .law-tool .field-note { padding: 10px 12px; font-size: 11px; }
  .tool-result { padding: 20px 16px; }
  .result-actions { gap: 8px; }
  .tool-page-app { padding: 10px 0 0; margin: 22px 0 26px; }
}
