:root{font-family:system-ui,"Noto Sans TC",sans-serif;color:#382f3a;background:#f5efe8;--p:#6d466b;--a:#d48b85;--card:#fffaf6}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at top,#eadde9,#f5efe8 38%)}header{display:flex;justify-content:space-between;align-items:center;padding:22px 18px 15px;color:white;background:linear-gradient(135deg,#563b61,#9a667e);border-radius:0 0 28px 28px}h1{font-size:24px;margin:2px 0}h2{margin-top:0}button,.file{border:0;border-radius:14px;padding:12px 14px;background:var(--p);color:white;font-weight:700;cursor:pointer}main{max-width:780px;margin:auto;padding:14px}.summary{display:grid;grid-template-columns:1fr 1fr;gap:10px}.summary article,.panel{background:rgba(255,250,246,.96);border:1px solid #eadbd4;border-radius:20px;box-shadow:0 8px 25px #73546a18}.summary article{padding:14px}.summary span{display:block;font-size:13px;color:#846e7d}.summary strong{font-size:21px}nav{display:flex;gap:6px;overflow:auto;padding:14px 0}nav button{background:#e4d6de;color:#5c4656;white-space:nowrap}nav button.active{background:var(--p);color:#fff}.panel{display:none;padding:17px}.panel.active{display:block}form,.filters,.button-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;margin-bottom:14px}input,select,textarea{width:100%;border:1px solid #d8c8cf;border-radius:12px;padding:12px;background:white;font-size:16px}textarea{min-height:74px}.list{display:grid;gap:8px}.item{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:12px;border-radius:14px;background:#f4ece9}.item small{display:block;color:#826f78}.item button{padding:7px 10px;background:#b76c70}.income{color:#39785f}.expense{color:#b04e58}.calendar-head{display:flex;align-items:center;justify-content:space-between}.week,.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;text-align:center}.week{font-size:12px;color:#786573}.day{min-height:54px;padding:7px 2px;border-radius:12px;background:#f6efec}.day.muted{opacity:.35}.day.has{background:#dfc8dc;font-weight:800}.day.today{outline:2px solid var(--p)}label{display:block;margin:12px 0}.file{text-align:center}.file input{display:none}.danger{background:#a33d48;margin-top:18px}footer{text-align:center;padding:25px;color:#83727d;font-size:13px}@media(max-width:520px){form,.filters,.button-grid{grid-template-columns:1fr}.panel{padding:14px}.summary strong{font-size:18px}}
