:root{
  --paper:#FFF9EF; --card:#FFFFFF; --ink:#2B2B33;
  --green:#3FA45B; --green-soft:#DFF3E5;
  --yellow-b:#F5C518; --yellow-soft:#FBF3D0;
  --orange:#F58A2E; --orange-soft:#FDEBD7;
  --red:#E2543E; --red-soft:#FBDCD5;
  --hero:#FFD84D; --grey:#F0EDE5;
}
*{box-sizing:border-box;margin:0;padding:0}
body{background:var(--paper);color:var(--ink);font-family:'Nunito',system-ui,sans-serif;font-weight:700;line-height:1.45;padding:26px 16px 90px}
.wrap{max-width:560px;margin:0 auto}
h1{font-family:'Baloo 2',cursive;font-weight:800;font-size:34px;line-height:1.1}
.sub{font-size:15px;color:#6c7078;margin-top:2px;margin-bottom:6px}
.savenote{font-size:12px;color:#9aa0a8;margin-bottom:20px}
.card{background:var(--card);border:4px solid var(--ink);border-radius:22px;box-shadow:8px 8px 0 rgba(43,43,51,.14);padding:20px 18px;margin-bottom:22px}
.card h2{font-family:'Baloo 2',cursive;font-weight:800;font-size:22px;margin-bottom:6px}
.say{font-size:16px}
.say b{font-weight:800}
select{
  width:100%;font-family:'Nunito',sans-serif;font-weight:800;font-size:17px;
  padding:13px 14px;border:4px solid var(--ink);border-radius:14px;background:#fff;color:var(--ink);
  margin-top:10px;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='12'%3E%3Cpath d='M1 1l8 9 8-9' stroke='%232B2B33' stroke-width='3' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;
}
select:focus-visible,input:focus-visible,button:focus-visible,summary:focus-visible{outline:4px solid var(--orange)}
.stairs{margin-top:14px;display:flex;flex-direction:column;gap:7px}
.stair{display:flex;justify-content:space-between;align-items:center;border:3px solid var(--ink);border-radius:12px;padding:9px 12px;font-size:15px}
.stair .r{font-family:'Baloo 2',cursive;font-weight:800;font-size:18px}
.t0{background:var(--green-soft)} .t1{background:var(--yellow-soft)} .t2{background:var(--orange-soft)} .t3{background:var(--red-soft)}
.fixednote{margin-top:10px;font-size:13px;color:#6c7078}
.warn{margin-top:10px;font-size:13px;color:var(--red)}

/* hero */
.hero{background:var(--hero)}
.hero .money{font-family:'Baloo 2',cursive;font-weight:800;font-size:clamp(44px,13vw,64px);line-height:1;margin:6px 0 4px}
.copybtn{margin-top:14px;width:100%;font-family:'Baloo 2',cursive;font-weight:800;font-size:20px;background:var(--ink);color:#fff;border:none;border-radius:16px;padding:14px;cursor:pointer;box-shadow:0 5px 0 rgba(0,0,0,.25)}
.copybtn:active{transform:translateY(3px);box-shadow:0 2px 0 rgba(0,0,0,.25)}

/* sliders */
.sl{margin-top:16px}
.sl label{font-size:15px;display:block}
.sl .val{font-family:'Baloo 2',cursive;font-weight:800;font-size:24px}
.sl .val small{font-size:13px;color:#6c7078;font-family:'Nunito',sans-serif;font-weight:700}
input[type=range]{width:100%;-webkit-appearance:none;appearance:none;height:14px;border-radius:10px;border:3px solid var(--ink);background:var(--green-soft);outline:none;margin:8px 0 2px}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:34px;height:34px;border-radius:50%;background:var(--hero);border:4px solid var(--ink);cursor:pointer;box-shadow:0 3px 0 rgba(0,0,0,.2)}
.anchors{display:flex;justify-content:space-between;font-size:12px;color:#6c7078}
.total{margin-top:16px;border:3px solid var(--ink);border-radius:16px;background:var(--green-soft);padding:12px 14px;font-size:16px}
.total .big{font-family:'Baloo 2',cursive;font-weight:800;font-size:28px}
.total .quiet{color:#6c7078}

/* answers */
.answer{margin-top:14px;border:3px solid var(--ink);border-radius:16px;padding:12px 14px;font-size:17px}
.answer.good{background:var(--green-soft)} .answer.warn{background:var(--orange-soft)} .answer.bad{background:var(--red-soft)} .answer.info{background:var(--yellow-soft)}
.answer .face{font-size:24px;margin-right:6px}
.monthblocks{display:flex;flex-wrap:wrap;gap:5px;margin-top:12px}
.monthblocks .m{width:calc(10% - 5px);aspect-ratio:1/1.15;border:3px solid var(--ink);border-radius:8px;background:var(--grey)}
/* .m.mc* needed to outweigh the `.monthblocks .m` grey base rule */
.mc0,.m.mc0{background:var(--green)} .mc1,.m.mc1{background:var(--yellow-b)} .mc2,.m.mc2{background:var(--orange)} .mc3,.m.mc3{background:var(--red)}
.legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:10px;font-size:13px}
.legend span{display:flex;align-items:center;gap:6px}
.dot{width:14px;height:14px;border:3px solid var(--ink);border-radius:5px;display:inline-block}

/* tune panel */
.tune{margin-top:16px;border:3px dashed var(--ink);border-radius:16px;padding:0 14px;background:var(--yellow-soft)}
.tune summary{cursor:pointer;font-size:15px;padding:12px 0;list-style-position:inside}
.tune[open] summary{border-bottom:3px dotted var(--ink)}
.tunerow{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 0;font-size:14px}
.tunerow input{width:84px;font-family:'Baloo 2',cursive;font-weight:800;font-size:16px;padding:7px 9px;border:3px solid var(--ink);border-radius:10px;text-align:right;background:#fff}
.tunenote{font-size:12px;color:#6c7078;padding:8px 0}
.tunereset{font-family:'Baloo 2',cursive;font-weight:800;font-size:14px;background:#fff;border:3px solid var(--ink);border-radius:10px;padding:8px 12px;cursor:pointer;margin:4px 0 14px}

/* steps list */
.steps{margin-top:12px;display:flex;flex-direction:column;gap:10px}
.step{display:flex;gap:10px;font-size:16px}
.step .n{font-family:'Baloo 2',cursive;font-weight:800;flex:0 0 30px;height:30px;border:3px solid var(--ink);border-radius:50%;background:var(--hero);display:flex;align-items:center;justify-content:center;font-size:16px}

/* recharge */
.inrow{display:flex;gap:8px;margin-top:12px}
.inrow input[type=number]{flex:1;min-width:90px;font-family:'Baloo 2',cursive;font-weight:800;font-size:18px;padding:11px 12px;border:4px solid var(--ink);border-radius:14px}
.addbtn{font-family:'Baloo 2',cursive;font-weight:800;font-size:17px;background:var(--green);color:#fff;border:4px solid var(--ink);border-radius:14px;padding:0 16px;cursor:pointer}
.entry{display:flex;justify-content:space-between;align-items:center;padding:9px 0;border-bottom:3px dotted var(--grey);font-size:14px}
.entry:last-child{border-bottom:none}
.entry .del{background:none;border:none;font-size:16px;cursor:pointer;color:#9aa0a8;padding:2px 8px}
.mt10{margin-top:10px}
.mt12{margin-top:12px}
.foot{font-size:12px;color:#8a8f97;text-align:center;line-height:1.8}
.foot a{color:#8a8f97}
@media (prefers-reduced-motion:no-preference){.copybtn{transition:transform .08s,box-shadow .08s}}
