:root{--primary:#087f73;--primaryDark:#05675e;--accent:#ff7058;--accentSoft:#fff0ec;--bg:#f5f8f7;--card:#fff;--text:#18252a;--muted:#718087;--line:#dfe8e5;--soft:#edf5f3;--danger:#df4b4b}
[data-theme="dark"]{--bg:#111a19;--card:#192523;--text:#eef5f3;--muted:#a5b5b1;--line:#30403d;--soft:#203330;--accentSoft:#402722}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#e7ecea;color:var(--text);font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}body{min-height:100vh}
button,input,select{font:inherit}button{cursor:pointer}.app{width:100%;max-width:430px;min-height:100vh;margin:auto;background:var(--bg);position:relative;padding-bottom:74px;overflow:hidden}
.header{height:68px;background:var(--primary);color:#fff;display:flex;align-items:center;padding:0 18px;position:relative}.brand{font-size:21px;font-weight:850;letter-spacing:-.4px}.brand span{color:#ffd0c7}.headerTitle{position:absolute;left:50%;transform:translateX(-50%);font-size:18px;font-weight:800;white-space:nowrap}.back,.headerAction{background:none;border:0;color:#fff;padding:3px 5px;font-size:28px;line-height:1}.headerAction{margin-left:auto;font-size:23px}.bellBtn{position:relative;width:42px;height:42px;display:grid;place-items:center;padding:0}.bellIcon{width:22px;height:22px;display:block}.bellBadge{position:absolute;top:1px;right:0;min-width:17px;height:17px;padding:0 4px;border-radius:99px;background:var(--accent);color:#fff;font-size:9px;line-height:17px;text-align:center;font-weight:900;display:none}.bellBadge.show{display:block}
.screen{display:none}.screen.active{display:block}.content{padding:13px 14px 18px}.card{background:var(--card);border:1px solid var(--line);border-radius:16px}
.monthCard{background:#ffe5de;border:1px solid #ffc8bd;border-radius:17px;padding:14px;text-align:center}.monthLabel{font-size:13px;font-weight:800}.monthTotal{font-size:28px;font-weight:900;margin:2px 0}.monthSelect{border:0;background:transparent;font-size:11px;font-weight:700;color:var(--text)}
.stats{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:9px 0}.stat{background:#eaf4f2;border-radius:11px;text-align:center;padding:9px;font-size:11px;font-weight:700}.stat b{display:block;font-size:15px;margin-top:1px}
.primary{width:100%;border:0;background:var(--accent);color:#fff;border-radius:13px;padding:14px;font-weight:850}.sectionTitle{display:flex;align-items:center;gap:5px;margin:17px 3px 8px;font-size:13px;font-weight:800}.sectionTitle .grow{flex:1}.list{display:flex;flex-direction:column;gap:7px}
.expense{display:flex;align-items:center;gap:9px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:9px}.icon{width:37px;height:37px;border-radius:50%;display:grid;place-items:center;flex:none;font-size:17px}.food{background:#ffe1d9}.travel{background:#dff2ef}.shopping{background:#ffe0eb}.bills{background:#e5eefb}.health{background:#ffe2e8}.other{background:#e8edef}
.info{min-width:0;flex:1}.name{font-size:12px;font-weight:800}.note{font-size:10px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.time{font-size:9px;color:var(--muted)}.amount{text-align:right;font-size:12px;font-weight:850;white-space:nowrap}.dots{border:0;background:none;color:#66757b;font-size:19px;padding:2px}
.bottom{position:fixed;z-index:50;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:430px;height:66px;background:var(--primary);display:grid;grid-template-columns:repeat(4,1fr);padding:5px 3px env(safe-area-inset-bottom)}.nav{border:0;background:none;color:#b9d0cd;font-size:10px;font-weight:700}.nav span{display:block;font-size:18px;height:22px}.nav.active{color:#fff}.nav.active span{color:#ffd0c7}
.form{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:12px}.amountInput{width:100%;font-size:28px;font-weight:850;border:1px solid var(--line);border-radius:12px;padding:10px;outline:none;color:var(--text);background:var(--card)}.label{font-size:12px;font-weight:800;margin:15px 0 7px}.categories{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.cat{border:1px solid var(--line);background:var(--soft);color:var(--text);border-radius:11px;padding:10px 3px;font-size:11px;font-weight:750}.catIcon{display:block;font-size:19px;margin-bottom:3px}.cat.selected{border:2px solid var(--accent);background:var(--accentSoft)}.field{width:100%;border:1px solid var(--line);border-radius:11px;padding:11px;background:var(--card);color:var(--text);outline:none;font-size:13px}.save{margin-top:16px}.delete{width:100%;margin-top:9px;border:1px solid #ef9c9c;background:var(--card);color:var(--danger);border-radius:11px;padding:12px;font-weight:800}
.reportMonth{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:11px;text-align:center;font-size:11px;font-weight:800}.totalReport{text-align:center;font-size:24px;font-weight:900;margin:11px 0}.donut{width:180px;height:180px;margin:10px auto 20px;border-radius:50%;background:conic-gradient(#ff7058 0 34%,#8766dc 34% 59%,#3e9be4 59% 81%,#34b77c 81% 94%,#ef6580 94% 99%,#bcc7c9 99% 100%);display:grid;place-items:center;position:relative}.donut:after{content:"";position:absolute;width:112px;height:112px;border-radius:50%;background:var(--card)}.donutText{position:relative;z-index:1;text-align:center;font-size:13px;font-weight:850}.donutText small{display:block;font-size:10px;color:var(--muted)}.legend{display:flex;flex-direction:column;gap:8px}.legendRow{display:flex;align-items:center;font-size:12px}.dot{width:10px;height:10px;border-radius:50%;margin-right:8px}.legendRow b{margin-left:auto}.toggle{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);border-radius:11px;overflow:hidden;margin-top:13px}.toggle button{border:0;background:var(--card);color:var(--text);padding:10px;font-size:11px;font-weight:800}.toggle .active{background:var(--primary);color:#fff}
.dailyRow{display:flex;align-items:center;padding:12px 2px;border-bottom:1px solid var(--line);font-size:12px}.dailyRow span{flex:1}.dailyRow b{font-size:12px}
.calendar{background:var(--card);border:1px solid var(--line);border-radius:15px;padding:11px}.calHead{display:flex;justify-content:space-between;align-items:center;font-size:13px;font-weight:800}.calHead button{border:1px solid var(--line);background:var(--card);color:var(--text);border-radius:50%;width:27px;height:27px}.week,.days{display:grid;grid-template-columns:repeat(7,1fr);text-align:center}.week{margin-top:12px;color:var(--muted);font-size:9px}.days div{font-size:10px;padding:7px 0}.days .selected{width:27px;margin:auto;background:var(--accent);color:#fff;border-radius:50%;font-weight:850}
.categoryRow{display:flex;align-items:center;gap:7px;margin:12px 0}.categoryRow .labelC{width:67px;font-size:11px;font-weight:750}.barWrap{height:7px;background:#e6edeb;border-radius:99px;overflow:hidden;flex:1}.bar{height:100%;border-radius:99px}.categoryRow strong{font-size:11px;width:57px;text-align:right}.categoryRow em{font-size:9px;color:var(--muted);font-style:normal;width:25px;text-align:right}
.backup{background:#edf7f5;border-radius:15px;padding:18px 14px;text-align:center;margin-bottom:11px}.backupIcon{font-size:30px}.backup h3{margin:5px 0 3px;font-size:15px}.backup p{margin:0 0 12px;font-size:11px;color:var(--muted);line-height:1.4}.outline{width:100%;border:1px solid var(--primary);background:var(--card);color:var(--primary);border-radius:11px;padding:11px;font-weight:750}
.setting{display:flex;align-items:center;background:var(--card);border:1px solid var(--line);padding:14px 11px;font-size:12px}.setting+.setting{border-top:0}.setting:first-child{border-radius:13px 13px 0 0}.setting:last-child{border-radius:0 0 13px 13px}.settingIcon{width:27px;font-size:16px}.settingValue{margin-left:auto;color:var(--muted);font-size:10px}.dangerText{color:var(--danger)}.choiceRow{display:flex;gap:8px;margin-top:8px}.choice{flex:1;border:1px solid var(--line);background:var(--card);color:var(--text);padding:10px;border-radius:10px;font-size:11px;font-weight:800}.choice.active{background:var(--primary);color:#fff;border-color:var(--primary)}
.infoCard{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:20px;line-height:1.55;font-size:13px}.infoCard h2{margin:0 0 9px;font-size:20px}.infoCard p{color:var(--muted);margin:0 0 14px}.contactItem{padding:12px 0;border-top:1px solid var(--line)}.contactItem b{display:block;margin-bottom:2px}
.empty{background:var(--card);border:1px solid var(--line);border-radius:17px;text-align:center;padding:45px 20px}.emptyIcon{width:70px;height:70px;margin:auto;background:#ffe5de;border-radius:50%;display:grid;place-items:center;font-size:27px}.empty h2{font-size:18px;margin:14px 0 5px}.empty p{font-size:12px;color:var(--muted);margin:0 0 18px}.notificationOverlay{position:fixed;inset:0;background:rgba(0,0,0,.38);z-index:200;display:none;align-items:flex-start;justify-content:center;padding:78px 12px 12px}.notificationOverlay.open{display:flex}.notificationPanel{width:100%;max-width:430px;max-height:72vh;background:var(--card);border-radius:16px;overflow:hidden;box-shadow:0 12px 35px rgba(0,0,0,.22)}.notificationHead{height:54px;display:flex;align-items:center;justify-content:space-between;padding:0 15px;border-bottom:1px solid var(--line);font-size:16px}.notificationHead button{border:0;background:none;color:var(--text);font-size:27px}.notificationList{max-height:calc(72vh - 54px);overflow:auto}.notificationItem{padding:13px 15px;border-bottom:1px solid var(--line);cursor:pointer}.notificationTitle{font-size:13px;font-weight:850}.notificationText{font-size:11px;color:var(--muted);line-height:1.45;margin-top:3px}.notificationDate{font-size:9px;color:var(--muted);margin-top:6px}.notificationEmpty,.notificationLoading{padding:35px 20px;text-align:center;color:var(--muted);font-size:12px}.toast{display:none;position:fixed;z-index:100;bottom:78px;left:50%;transform:translateX(-50%);background:#18252a;color:#fff;padding:10px 14px;border-radius:10px;font-size:12px;white-space:nowrap}

/* Utility classes */
.settingTop{margin-top:9px;border-radius:13px}
.dailyReport{display:none}
.dot{background:var(--dot-color,#aeb9bb)}
.bar{width:var(--bar-width,0);background:var(--bar-color,#aeb9bb)}

