.tools-page { max-width:1160px; margin:auto; padding:1.25rem; }
.tools-breadcrumb { margin:1rem 0; font-size:.9rem; }
.tools-intro { max-width:48rem; margin:2rem 0; }
.tools-intro h1 { font-size:clamp(2rem,5vw,3.2rem); overflow-wrap:anywhere; }
.tools-intro p { font-size:1.15rem; }
.tool-workspace { display:grid; grid-template-columns:1fr 1fr; background:white; border:1px solid #cbdad7; border-radius:24px; overflow:hidden; margin:2rem 0; }
.tool-workspace[hidden],.tool-workspace [hidden] { display:none; }
.tool-inputs,.tool-result { padding:clamp(1rem,3vw,2rem); min-width:0; }
.tool-result { background:#eef5f3; }
.tool-result h2 { font-size:1.4rem; }
.tool-result h3 { font-size:1.1rem; margin-top:1.5rem; }
.tool-field { display:flex; flex-direction:column; gap:.45rem; margin-bottom:1.1rem; font-weight:600; min-width:0; }
.tool-field input,.tool-field select { width:100%; min-width:0; max-width:100%; padding:.8rem; border:1px solid #a9bdb7; border-radius:9px; font:inherit; font-size:16px; background:#fff; min-height:48px; }
.tool-field input[aria-invalid=true] { border-color:#a12e2e; }
.tool-workspace :focus-visible { outline:3px solid #976329; outline-offset:3px; }
.tool-result dl>div { display:flex; flex-wrap:wrap; gap:.5rem 1rem; justify-content:space-between; border-bottom:1px solid #cbdad7; padding:1rem 0; }
.tool-result dt { font-weight:400; }
.tool-result dd { font-size:1.4rem; font-weight:700; margin:0; overflow-wrap:anywhere; }
.tool-workspace button { border:1px solid #245b60; background:#245b60; color:#fff; padding:.75rem 1rem; border-radius:10px; min-height:48px; cursor:pointer; }
.tool-workspace button:disabled { opacity:.5; cursor:default; }
.tool-note { font-size:.9rem; color:#526269; line-height:1.6; }
.tool-error { color:#a12e2e; }
.tool-cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.tool-cards a { border:1px solid #cbdad7; border-radius:16px; padding:1.5rem; text-decoration:none; background:white; }
.tool-cards a:hover { border-color:#245b60; }
.tool-cards h2 { font-size:1.4rem; }
.tool-workspace[data-tool=likviditetsbudget] { display:block; }
.budget-inputs>label { max-width:24rem; }
[data-months] { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; align-items:start; }
.budget-month { border:1px solid #cbdad7; border-radius:12px; padding:1rem; min-width:0; }
.budget-month legend { font-size:1.1rem; float:none; width:auto; padding:0 .3rem; }
.budget-month .tool-field { font-size:.9rem; }
.tool-table-scroll { overflow-x:auto; margin:1rem 0; }
.tool-table-scroll table { width:100%; border-collapse:collapse; white-space:nowrap; }
.tool-table-scroll td,.tool-table-scroll th { padding:.7rem; border-bottom:1px solid #cbdad7; text-align:right; }
.tool-table-scroll th:first-child { text-align:left; }
.budget-negative { background:#fff0ed; color:#922222; }
.tool-actions { display:flex; flex-wrap:wrap; gap:.6rem; }
[data-chart] svg { width:100%; height:auto; }
@media(max-width:750px) { .tool-workspace { grid-template-columns:1fr; } [data-months] { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:480px) { [data-months],.tool-cards { grid-template-columns:1fr; } .tools-page { padding:1rem; } }

.budget-month-card { border:1px solid #cbdad7; border-radius:12px; padding:.75rem; }
.budget-month-card summary { cursor:pointer; min-height:44px; padding:.65rem .25rem; font-weight:700; }
.budget-month-card .budget-month { border:0; padding:.5rem 0 0; }
.budget-month-card legend { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
