@font-face{font-family:Inter;src:url('/inter.woff2') format('woff2');font-display:swap}
:root{color-scheme:light;--paper:#f4f1e7;--surface:#fffcf2;--ink:#26332b;--muted:#506257;--line:#ced4c5;--forest:#214336;--mint:#ddedce;--orange:#ecd194}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font:1rem/1.53 Inter,system-ui,sans-serif}
h1,h2,h3,p,figure{margin:0}
a{color:#325742;text-underline-offset:.21em}
a:hover{color:#163a2c}
input,button,select{font:inherit;min-width:0;color:inherit;border:1px solid #a3b0a0;border-radius:5px;background:white;min-height:40px;padding:.4rem .55rem}
button,select{cursor:pointer}
button{font-size:.79rem;font-weight:720}
button:not(:disabled):hover{background:#e4ecda}
button:disabled{opacity:.55;cursor:default}
:focus-visible{outline:3px solid #419868;outline-offset:3px}
.wrap{width:min(1160px,calc(100% - 52px));margin-inline:auto}
.top,.footer{display:flex;justify-content:space-between;align-items:center;gap:.75rem;flex-wrap:wrap}
.top{min-height:73px}
.top>a,.footer>a{font-size:.85rem}
.top .brand{display:flex;gap:.54rem;align-items:center;text-decoration:none;color:var(--ink);font-size:1.25rem;font-weight:770;letter-spacing:-.046em}
.brand b{display:grid;place-items:center;width:31px;height:29px;border-radius:4px;background:var(--forest);color:#f3f7e4;font-size:.9rem}
.intro{display:grid;grid-template-columns:1fr 1.07fr;background:var(--forest);color:#f2f8ea;border-radius:10px;overflow:hidden}
.intro>div{padding:clamp(1.75rem,4.7vw,4.45rem);align-self:center}
h1{font:400 clamp(3.25rem,6.9vw,6.25rem)/.9 Georgia,serif;letter-spacing:-.072em}
h1 span{color:#a9db96}
.intro p{color:#e4efdf;margin-top:1.07rem;max-width:26rem;font-size:1rem}
.intro>div>a{display:inline-block;background:var(--mint);color:#244a38;text-decoration:none;padding:.54rem .73rem;margin-top:.96rem;border-radius:4px;font-size:.85rem;font-weight:730}
.intro>div>a:focus-visible{outline-color:#f1fbdc}
.intro figure{min-height:260px;position:relative}
.intro img{width:100%;height:100%;inset:0;position:absolute;display:block;object-fit:cover;object-position:39% 52%}
figcaption{position:absolute;bottom:.52rem;right:.52rem;padding:.18rem .42rem;background:#182f27e8;border-radius:3px}
figcaption a{color:#f2f5e7;font-size:.7rem}
.workspace{display:grid;grid-template-columns:minmax(0,.83fr) minmax(0,1.48fr);gap:.86rem;margin-top:.95rem;scroll-margin-top:.8rem;align-items:start}
.pace,.leg-editor,.timing{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:clamp(.9rem,2.5vw,1.5rem);min-width:0}
h2{font-size:1.18rem;line-height:1.2;letter-spacing:-.027em}
.editor-head,.leg-head,.editor-actions{display:flex;justify-content:space-between;align-items:center;gap:.55rem;flex-wrap:wrap}
.unit-control{display:flex;align-items:center;gap:.35rem}
label{font-size:.77rem;font-weight:640}
.pace fieldset{display:grid;grid-template-columns:1fr 1fr;gap:.43rem;border:0;margin:.82rem 0;padding:0;min-width:0}
.pace fieldset label,.pace>label,.leg label{display:grid;gap:.24rem;min-width:0}
legend{font-size:.84rem;font-weight:730;margin-bottom:.33rem;padding:0}
.leg{border:1px solid var(--line);background:#f7f7ec;border-radius:5px;margin-top:.6rem;padding:.55rem}
.leg-head label{flex:1 1 125px}
.leg-head button{margin-top:.9rem}
.leg-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.42rem;margin-top:.45rem;align-items:end}
.leg input{width:100%}
.editor-actions{justify-content:flex-start;margin-top:.68rem}
#error,#copy-status{color:#922e22;font-size:.81rem;margin:.4rem 0 0}
#copy-status{color:#335e47}
#error:empty,#copy-status:empty{margin:0}
.timing{margin-top:.85rem;display:grid;grid-template-columns:minmax(0,.93fr) minmax(0,1.35fr);gap:1.05rem;background:var(--forest);border-color:var(--forest);color:#f1f8e8}
.totals{display:grid;grid-template-columns:1fr 1fr;gap:.45rem;margin:.55rem 0}
.total{border:1px solid #628578;background:#305548;border-radius:5px;padding:.5rem}
.total span,.total p{color:#e0f0de;font-size:.77rem}
.total strong{display:block;font:400 clamp(1.25rem,2.8vw,2.15rem) Georgia,serif}
.total[data-over=true] p{color:#ffdaa0}
.budget-message,.legend,#unavailable{font-size:.79rem;color:#dfecdf;margin-top:.45rem}
.timeline-list{list-style:none;padding:0;margin:.55rem 0 0}
.time-leg{padding:.45rem 0;border-top:1px solid #5e8472}
.time-leg h3{font-size:.82rem;overflow-wrap:anywhere}
.track{display:grid;grid-template-columns:3.45rem minmax(0,1fr) minmax(62px,auto);gap:.42rem;align-items:center;margin:.22rem 0;font-size:.72rem}
.track strong{text-align:right}
.rail{height:8px;border-radius:4px;background:#e2f2dc3a;position:relative}
.rail i{position:absolute;height:8px;border-radius:4px;top:0;left:0;background:#9bd490}
.rail .slower{background:var(--orange)}
.rail .deadline{width:2px;height:14px;top:-3px;background:#fffdf2}
.lesson{margin-top:1.55rem;border-top:1px solid var(--line);padding:1.25rem 0}
.lesson p{margin:.4rem 0;font-size:.9rem;color:var(--muted)}
.lesson a{font-weight:690;font-size:.88rem}
.footer{border-top:1px solid var(--line);padding:1.07rem 0}
.guide{max-width:790px;padding:clamp(2rem,8vw,5rem) 0}
.guide h1{font-size:clamp(2.6rem,8vw,5.55rem);margin-bottom:1.35rem}
.guide h2{margin:1.7rem 0 .55rem}
.guide p+p{margin-top:.73rem}
@media(max-width:740px){.workspace,.timing{grid-template-columns:1fr}.wrap{width:calc(100% - 28px)}.top{min-height:64px}}
@media(max-width:580px){.intro{grid-template-columns:1fr}.intro figure{min-height:205px}.leg-fields{grid-template-columns:1fr 1fr}}
