:root{font-family:system-ui,-apple-system,Noto Sans Thai,sans-serif;color:#17212b;background:#f4f7f8}*{box-sizing:border-box}body{margin:0}main{max-width:680px;margin:auto;min-height:100vh;padding:18px 16px 88px}header,.sectionHead,.transaction,.budget>div{display:flex;align-items:center;justify-content:space-between;gap:12px}header{margin-bottom:20px}h1,h2,p{margin:0}h1{font-size:24px}h2{font-size:18px}small,.muted{color:#68737d;font-size:13px}.hero{background:#0f766e;color:#fff;border-radius:18px;padding:21px;margin-bottom:14px}.hero small,.hero span{display:block;color:#c9eee8}.hero strong{display:block;font-size:32px;margin:5px 0}.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.card,.section{background:#fff;border-radius:16px;padding:15px}.card b{display:block;font-size:17px;margin-top:4px}.section{margin-top:14px}.sectionHead{margin-bottom:14px}button{border:0;border-radius:10px;background:#0f766e;color:#fff;padding:10px 13px;font-weight:700;font:inherit}.ghost{background:#e5f2f0;color:#0f766e}.budget{margin:16px 0}.budget span{font-size:13px;color:#68737d}.budget .over{color:#c2410c;font-weight:700}.budget i{display:block;height:7px;background:#e7ecec;border-radius:999px;margin-top:7px;overflow:hidden}.budget em{display:block;height:100%;background:#0f766e;border-radius:inherit}.transaction{padding:13px 0;border-bottom:1px solid #edf0f1}.transaction small{display:block;margin-top:3px}.transaction strong{font-size:14px}.negative{color:#c2410c}.empty,.loading{color:#68737d;text-align:center;padding:30px 5px}.error{color:#b42318;background:#fef3f2;padding:10px;border-radius:10px;margin:10px 0}.auth{display:grid;place-content:center;text-align:center;gap:14px;min-height:100vh}.auth p{color:#68737d}.auth button{margin:auto}form{display:grid;gap:13px;margin-top:17px}label{display:grid;gap:6px;font-size:14px;font-weight:700}input,select{width:100%;font:inherit;padding:12px;border:1px solid #cfd8db;border-radius:10px;background:#fff}nav{position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid #dfe7e8;display:flex;justify-content:center;z-index:3}nav button{width:min(170px,25vw);border-radius:0;background:#fff;color:#68737d;padding:9px 4px;font-size:11px;display:grid;gap:2px}nav b{font-size:18px}nav button.active{color:#0f766e}.muted{line-height:1.55;margin:10px 0}@media(min-width:600px){main{padding-top:30px}.grid{grid-template-columns:repeat(4,1fr)}}
