:root{--dark:#49382d}

:root{color-scheme:light;font-family:Inter,system-ui,sans-serif;color:#182a30;background:#edf2ef;line-height:1.55}
*{box-sizing:border-box}body{margin:0}a{color:inherit}header,main,footer{width:min(100% - 2rem,69rem);margin:auto}
header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.1rem 0;border-bottom:1px solid #becdc7}
header a:first-child{font-weight:800;text-decoration:none}header nav{display:flex;gap:1rem;font-size:.9rem}
main{padding:clamp(2rem,6vw,5rem) 0 2rem}.intro{max-width:48rem}.intro p{font-size:1.13rem}
h1,h2,p{margin:0 0 1rem}h1{font-size:clamp(2rem,5vw,4rem);line-height:1.05;letter-spacing:-.045em}
h2{line-height:1.2}.tool{display:grid;gap:1rem;margin:2rem 0;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr)}
.panel{background:#fff;border:1px solid #c3d1cb;border-radius:1rem;padding:clamp(1rem,3vw,2rem);min-width:0}
.result{background:var(--dark);color:white;overflow-wrap:anywhere}.result p{white-space:pre-wrap}
form{display:grid;gap:1rem;grid-template-columns:repeat(2,minmax(0,1fr))}.wide,.actions{grid-column:1/-1}
label{display:grid;gap:.35rem;font-size:.92rem;font-weight:650}
input,select,textarea,button{font:inherit;border-radius:.45rem;padding:.65rem .7rem;min-width:0}
input,select,textarea{width:100%;background:#f7faf8;color:#182a30;border:1px solid #839690}textarea{resize:vertical}
button{cursor:pointer;border:1px solid var(--dark);background:var(--dark);color:white;font-weight:700}
button.secondary{background:transparent;color:var(--dark)}.result button{background:#fff;color:var(--dark)}
.actions{display:flex;gap:.5rem;flex-wrap:wrap}.notes{max-width:48rem}.notes details{margin:0 0 1rem}progress{width:100%;accent-color:#a8efba}
footer{padding:1rem 0 2rem;border-top:1px solid #becdc7;font-size:.88rem}
.timeline .tool{grid-template-columns:1fr}.timeline .result{border-left:.55rem solid #a9dfc3}
.document .tool{grid-template-columns:1fr 1fr}.document form{grid-template-columns:1fr}
.ledger .tool{grid-template-columns:1fr}.ledger .result{max-width:none}
.score input[type=number]{font-size:1.45rem;font-weight:750;text-align:center}
.calendar .intro{text-align:center;margin:auto}.calendar .result{text-align:center}
.budget .result h2{font-size:clamp(1.5rem,3vw,2.5rem)}
:focus-visible{outline:3px solid #aa5712;outline-offset:3px}
@media(max-width:700px){.tool,.document .tool{grid-template-columns:1fr}header{align-items:flex-start}header nav{gap:.6rem}}
@media(max-width:420px){form{grid-template-columns:1fr}}
