@import url('https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=DM+Sans:opsz,wght@9..40,300;9..40,400;9..40,500&display=swap');
*{margin:0;padding:0;box-sizing:border-box;}
:root{
  --bg:#fefae0;--surface:#faf7f2;--card:#ffffff;
  --wheat:#eddfc4;--tan:#c49a6c;--tan-lt:#e8d5be;
  --sage:#c8d0a8;--sky:#bdd8f0;--blush:#f4b8c8;
  --ink:#2a2218;--ink2:#5c5040;--ink3:#9a8c78;--ink4:#d4c9b8;
  --p1:#ede8e2;--p2:#e4e9de;--p3:#dce8ef;--p4:#ede4e8;
}
html,body{background:var(--bg);font-family:'DM Sans',sans-serif;color:var(--ink);height:100%;}
.app{max-width:420px;margin:0 auto;background:var(--bg);min-height:100vh;position:relative;}
.tab{display:none;padding-bottom:84px;}
.tab.on{display:block;}
.bnav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:420px;background:rgba(254,250,224,0.97);border-top:0.5px solid var(--wheat);padding:10px 0 16px;display:flex;justify-content:space-around;z-index:100;}
.ni{display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer;min-width:48px;user-select:none;}
.ni .ico{font-size:20px;}
.ni .lbl{font-size:9px;letter-spacing:0.5px;text-transform:uppercase;color:var(--ink3);}
.ni.on .lbl{color:var(--tan);font-weight:500;}
.ni-dot{width:4px;height:4px;border-radius:50%;background:var(--tan);}
.sec-head{padding:20px 20px 10px;display:flex;align-items:baseline;justify-content:space-between;}
.sec-title{font-family:'DM Serif Display',serif;font-size:18px;color:var(--ink);}
.sec-link{font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--tan);cursor:pointer;font-weight:500;}
.page-head{padding:24px 20px 0;display:flex;align-items:center;justify-content:space-between;}
.page-title{font-family:'DM Serif Display',serif;font-size:32px;color:var(--ink);}
.add-btn{display:flex;align-items:center;gap:6px;background:var(--tan);color:var(--surface);border:none;border-radius:100px;padding:9px 16px;font-size:13px;font-weight:500;font-family:'DM Sans',sans-serif;cursor:pointer;}
.hero{margin:16px 16px 0;background:var(--ink);border-radius:26px;padding:22px 22px 20px;position:relative;overflow:hidden;}
.hero-orb1{position:absolute;top:-50px;right:-50px;width:160px;height:160px;border-radius:50%;background:rgba(196,154,108,0.14);}
.hero-orb2{position:absolute;bottom:-40px;left:-30px;width:110px;height:110px;border-radius:50%;background:rgba(189,216,240,0.08);}
.hero-lbl{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--ink3);margin-bottom:6px;position:relative;}
.hero-amt{font-family:'DM Serif Display',serif;font-size:46px;color:var(--surface);line-height:1;margin-bottom:4px;position:relative;}
.hero-sub{font-size:12px;color:var(--tan);font-weight:300;margin-bottom:18px;position:relative;}
.hero-pills{display:flex;gap:7px;flex-wrap:wrap;position:relative;}
.pill{padding:4px 11px;border-radius:100px;font-size:11px;}
.pill-food{background:rgba(200,208,168,0.18);color:#b8c898;}
.pill-save{background:rgba(189,216,240,0.18);color:#9ec8e0;}
.pill-grade{background:rgba(244,184,200,0.18);color:#e8a0b4;}
.sum-row{padding:14px 20px 0;display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;}
.sum-card{border-radius:16px;padding:12px;text-align:center;}
.sum-spent{background:#f5e6d8;}.sum-income{background:#dff0e4;}.sum-txns{background:#e6e0f5;}
.sum-val{font-family:'DM Serif Display',serif;font-size:16px;line-height:1;margin-bottom:4px;}
.sum-spent .sum-val{color:#a0462a;}.sum-income .sum-val{color:#2a7a48;}.sum-txns .sum-val{color:#4a3a90;}
.sum-lbl{font-size:10px;font-weight:300;color:var(--ink3);}
.cat-grid{padding:0 16px;display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.flip-card{height:148px;perspective:900px;cursor:pointer;}
.flip-inner{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform 0.5s cubic-bezier(0.4,0.2,0.2,1);border-radius:22px;}
.flip-card.flipped .flip-inner{transform:rotateY(180deg);}
.flip-front,.flip-back{position:absolute;inset:0;border-radius:22px;backface-visibility:hidden;-webkit-backface-visibility:hidden;overflow:hidden;}
.flip-back{transform:rotateY(180deg);}
.flip-front{display:flex;flex-direction:column;justify-content:space-between;padding:16px;}
.fc-top{display:flex;align-items:flex-start;justify-content:space-between;}
.fc-emoji{font-size:26px;line-height:1;}
.fc-badge{font-size:9px;font-weight:500;padding:3px 8px;border-radius:100px;background:rgba(255,255,255,0.32);}
.fc-lbl{font-size:10px;letter-spacing:1.5px;text-transform:uppercase;opacity:.55;margin-bottom:4px;}
.fc-amt{font-family:'DM Serif Display',serif;font-size:26px;line-height:1;}
.fc-sub{font-size:10px;font-weight:300;opacity:.55;margin-top:2px;}
.flip-back{display:flex;flex-direction:column;padding:13px;background:var(--card);border:0.5px solid var(--wheat);}
.fb-head{display:flex;align-items:center;gap:7px;margin-bottom:9px;padding-bottom:7px;border-bottom:0.5px solid rgba(200,185,160,0.3);flex-shrink:0;}
.fb-list{display:flex;flex-direction:column;gap:6px;overflow:hidden;flex:1;}
.fb-row{display:flex;align-items:center;justify-content:space-between;gap:6px;}
.fb-left{display:flex;align-items:center;gap:6px;min-width:0;}
.fb-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;}
.fb-name{font-size:10.5px;color:var(--ink2);font-weight:300;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.fb-val{font-size:11px;font-weight:500;color:var(--ink);flex-shrink:0;}
.cat-living{background:#ede5d8;color:#3a2a18;}.cat-food{background:#f2e2cc;color:#5a3010;}
.cat-transport{background:#ddeacc;color:#243818;}.cat-shopping{background:#ecdde8;color:#401830;}
.cat-utilities{background:#d4e8f2;color:#1a3a50;}.cat-lifestyle{background:#f0ddd8;color:#501818;}
.cat-health{background:#d4ecde;color:#163a22;}.cat-finance{background:#e8dcc8;color:#3a2808;}
.breakdown-wrap{margin:0 16px;background:var(--wheat);border-radius:20px;padding:18px;}
.breakdown-inner{display:flex;align-items:center;gap:14px;}
.legend{flex:1;}
.legend-item{display:flex;align-items:center;justify-content:space-between;padding:3.5px 0;border-bottom:0.5px solid rgba(90,78,56,0.1);}
.legend-item:last-child{border:none;}
.legend-left{display:flex;align-items:center;gap:7px;}
.legend-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;}
.legend-name{font-size:12px;color:var(--ink2);}
.legend-right{display:flex;gap:6px;font-size:12px;}
.legend-val{font-weight:500;color:var(--ink);}
.legend-pct{color:var(--ink3);font-weight:300;}
.trend-wrap{margin:0 16px;background:var(--surface);border-radius:20px;padding:18px;border:0.5px solid var(--wheat);}
.trend-bars{display:flex;align-items:flex-end;justify-content:space-between;height:76px;margin-bottom:8px;}
.trend-col{display:flex;flex-direction:column;align-items:center;gap:6px;flex:1;}
.trend-bar{width:26px;border-radius:6px 6px 0 0;background:var(--tan-lt);}
.trend-bar.active{background:var(--tan);}
.trend-mo{font-size:10px;color:var(--ink3);font-weight:300;letter-spacing:0.5px;text-transform:uppercase;}
.trend-mo.active{color:var(--tan);font-weight:500;}
.insight-list{padding:0 16px;display:flex;flex-direction:column;gap:9px;}
.insight-card{background:var(--card);border:0.5px solid var(--wheat);border-radius:18px;padding:13px 15px;display:flex;gap:11px;align-items:flex-start;}
.insight-ico{width:32px;height:32px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0;}
.ii-red{background:#f5e0e5;}.ii-sky{background:#d8eaf5;}.ii-sage{background:#dfe8c8;}.ii-wheat{background:var(--wheat);}
.insight-title{font-size:13px;font-weight:500;color:var(--ink);margin-bottom:2px;}
.insight-desc{font-size:11px;color:var(--ink2);font-weight:300;line-height:1.5;}
.insight-tag{display:inline-block;margin-top:5px;padding:2px 8px;border-radius:100px;font-size:10px;font-weight:500;}
.t-over{background:#f5e0e5;color:#8b3a50;}.t-opp{background:#d8eaf5;color:#3a6a8a;}.t-ok{background:#dfe8c8;color:#4a6830;}.t-habit{background:var(--wheat);color:var(--tan);}
.future-wrap{margin:0 16px;background:var(--tan);border-radius:20px;padding:20px;position:relative;overflow:hidden;}
.future-wm{position:absolute;right:14px;top:10px;font-family:'DM Serif Display',serif;font-size:52px;color:rgba(250,247,242,0.1);font-style:italic;line-height:1;pointer-events:none;}
.future-lbl{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:rgba(250,247,242,0.55);margin-bottom:12px;}
.future-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;}
.future-box{background:rgba(250,247,242,0.12);border-radius:14px;padding:13px;}
.future-box-lbl{font-size:10px;color:rgba(250,247,242,0.55);font-weight:300;margin-bottom:3px;}
.future-box-val{font-family:'DM Serif Display',serif;font-size:24px;color:var(--surface);line-height:1;}
.future-box-sub{font-size:10px;color:rgba(250,247,242,0.45);font-weight:300;margin-top:2px;}
.pers-grid{padding:0 16px;display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.pers-card{border-radius:20px;padding:15px;}
.p1{background:var(--p1);}.p2{background:var(--p2);}.p3{background:var(--p3);}.p4{background:var(--p4);}
.pers-micro{font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--ink3);margin-bottom:4px;}
.pers-val{font-family:'DM Serif Display',serif;font-size:17px;color:var(--ink);line-height:1.2;margin-bottom:10px;}
.pers-track{height:3px;background:rgba(44,34,24,0.1);border-radius:100px;overflow:hidden;}
.pers-fill{height:100%;border-radius:100px;background:rgba(44,34,24,0.25);}
.goals-preview{padding:0 16px;display:flex;flex-direction:column;gap:9px;}
.goal-sm{background:var(--card);border:0.5px solid var(--wheat);border-radius:18px;padding:13px 15px;}
.goal-sm-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:10px;}
.goal-sm-left{display:flex;gap:10px;align-items:center;}
.goal-sm-ico{width:30px;height:30px;border-radius:9px;background:var(--wheat);display:flex;align-items:center;justify-content:center;font-size:14px;}
.goal-sm-name{font-size:13px;font-weight:500;color:var(--ink);}
.goal-sm-sub{font-size:11px;color:var(--ink3);font-weight:300;}
.goal-sm-pct{font-family:'DM Serif Display',serif;font-size:20px;color:var(--tan);}
.goal-track{height:3.5px;background:var(--wheat);border-radius:100px;overflow:hidden;}
.goal-fill{height:100%;border-radius:100px;background:var(--tan);}
.report-wrap{margin:0 16px 16px;background:var(--ink);border-radius:20px;padding:20px;}
.report-top{display:flex;align-items:center;gap:13px;margin-bottom:16px;}
.report-grade{width:48px;height:48px;border-radius:13px;background:var(--tan);display:flex;align-items:center;justify-content:center;font-family:'DM Serif Display',serif;font-size:22px;color:var(--surface);flex-shrink:0;}
.report-title{font-family:'DM Serif Display',serif;font-size:15px;color:var(--surface);margin-bottom:2px;}
.report-hint{font-size:11px;color:var(--ink3);font-weight:300;line-height:1.4;}
.report-metrics{display:flex;flex-direction:column;gap:8px;}
.report-row{display:flex;align-items:center;gap:10px;}
.report-lbl{font-size:11px;color:var(--ink3);width:80px;flex-shrink:0;font-weight:300;}
.report-track{flex:1;height:3px;background:rgba(250,247,242,0.07);border-radius:100px;overflow:hidden;}
.report-fill{height:100%;border-radius:100px;}
.rf-tan{background:var(--tan);}.rf-sky{background:#7ab8d8;}.rf-sage{background:var(--sage);}.rf-blush{background:#d8889a;}.rf-wheat{background:var(--wheat);}
.report-score{font-size:12px;font-weight:500;color:var(--surface);width:22px;text-align:right;flex-shrink:0;}
.txn-group{padding:18px 20px 0;}
.txn-day{font-size:10px;font-weight:500;letter-spacing:2px;text-transform:uppercase;color:var(--ink3);margin-bottom:10px;}
.txn-list{background:var(--card);border-radius:20px;border:0.5px solid var(--wheat);overflow:hidden;}
.txn-row{display:flex;align-items:center;gap:12px;padding:13px 15px;border-bottom:0.5px solid rgba(200,185,160,0.25);cursor:pointer;transition:background 0.12s;}
.txn-row:last-child{border-bottom:none;}
.txn-row:active{background:#faf7f0;}
.txn-ico{width:36px;height:36px;border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;}
.txn-mid{flex:1;min-width:0;}
.txn-name{font-size:13px;font-weight:500;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.txn-meta{font-size:11px;color:var(--ink3);font-weight:300;margin-top:1px;}
.txn-right{text-align:right;flex-shrink:0;}
.txn-amt{font-size:14px;font-weight:500;font-family:'DM Serif Display',serif;color:var(--ink2);}
.txn-cat{font-size:10px;color:var(--ink3);font-weight:300;margin-top:1px;}
.health-hero{margin:16px 16px 0;background:var(--ink);border-radius:24px;padding:20px;position:relative;overflow:hidden;}
.hh-orb1{position:absolute;top:-40px;right:-40px;width:140px;height:140px;border-radius:50%;background:rgba(196,154,108,0.15);}
.hh-orb2{position:absolute;bottom:-30px;left:-20px;width:90px;height:90px;border-radius:50%;background:rgba(189,216,240,0.08);}
.hh-top{display:flex;align-items:flex-start;gap:16px;margin-bottom:16px;position:relative;}
.hh-ring{width:64px;height:64px;flex-shrink:0;position:relative;}
.hh-ring svg{width:64px;height:64px;}
.hh-ring-lbl{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;}
.hh-score{font-family:'DM Serif Display',serif;font-size:20px;color:var(--surface);line-height:1;}
.hh-denom{font-size:9px;color:var(--ink3);}
.hh-title{font-family:'DM Serif Display',serif;font-size:17px;color:var(--surface);margin-bottom:4px;}
.hh-desc{font-size:11px;color:var(--ink3);font-weight:300;line-height:1.5;}
.hh-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;position:relative;}
.hh-box{background:rgba(250,247,242,0.07);border-radius:12px;padding:10px;text-align:center;}
.hh-val{font-family:'DM Serif Display',serif;font-size:20px;color:var(--surface);line-height:1;margin-bottom:2px;}
.hh-lbl{font-size:10px;color:var(--ink3);font-weight:300;}
.sub-tabs-wrap{position:sticky;top:0;z-index:10;background:rgba(254,250,224,0.97);padding:12px 16px;border-bottom:0.5px solid var(--wheat);}
.sub-tabs{display:flex;gap:7px;overflow-x:auto;scrollbar-width:none;}
.sub-tabs::-webkit-scrollbar{display:none;}
.stab{padding:7px 15px;border-radius:100px;font-size:12px;white-space:nowrap;cursor:pointer;border:0.5px solid var(--wheat);background:var(--card);color:var(--ink2);font-family:'DM Sans',sans-serif;flex-shrink:0;transition:all 0.15s;}
.stab.on{background:var(--tan);color:#fff;border-color:var(--tan);font-weight:500;}
.isec{display:none;}.isec.on{display:block;}
.card-list{padding:14px 16px 0;display:flex;flex-direction:column;gap:12px;}
.ic{background:var(--card);border:0.5px solid var(--wheat);border-radius:20px;padding:18px;}
.ic-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:12px;}
.ic-ico{width:40px;height:40px;border-radius:13px;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0;}
.i-red{background:#fae8e0;}.i-amber{background:#faf0d0;}.i-purple{background:#ede8f5;}.i-green{background:#e0f0e8;}.i-sky{background:#daeef8;}.i-blush{background:#fce8ee;}
.ic-meta{flex:1;min-width:0;}
.ic-tag{display:inline-block;font-size:10px;font-weight:500;padding:2px 9px;border-radius:100px;margin-bottom:5px;}
.t-warn{background:#fae0d8;color:#a0462a;}.t-win{background:#e0f0e8;color:#2a7a48;}.t-sub{background:#ede8f5;color:#5a3a90;}.t-bench{background:#daeef8;color:#2a5a8a;}.t-opp2{background:#fce8ee;color:#8a2a4a;}.t-habit2{background:#faf0d0;color:#8a6a10;}
.ic-title{font-size:15px;font-weight:500;color:var(--ink);line-height:1.25;}
.ic-body{font-size:12px;color:var(--ink2);font-weight:300;line-height:1.65;margin-bottom:12px;}
.r{color:#c04030;font-weight:500;}.g{color:#2a7a48;font-weight:500;}.a{color:#a07020;font-weight:500;}.p{color:#5a3a90;font-weight:500;}
.bars{display:flex;flex-direction:column;gap:7px;}
.bar-row{display:flex;align-items:center;gap:8px;}
.bar-lbl{font-size:11px;color:var(--ink3);width:56px;flex-shrink:0;font-weight:300;}
.bar-track{flex:1;height:7px;background:var(--tan-lt);border-radius:100px;overflow:hidden;}
.bar-fill{height:100%;border-radius:100px;}
.br{background:#d86040;}.bt{background:var(--sage);}.bs{background:var(--sky);}.bgr{background:#60b080;}.bpu{background:#a090d0;}
.bar-val{font-size:11px;font-weight:500;width:56px;text-align:right;flex-shrink:0;color:var(--ink);}
.ibox{background:var(--surface);border:0.5px solid var(--wheat);border-radius:14px;padding:12px 14px;margin-top:4px;}
.ibox-dk{background:rgba(250,247,242,0.07);border-radius:14px;padding:12px 14px;margin-top:12px;}
.ibox-row{display:flex;justify-content:space-between;font-size:12px;padding:3.5px 0;border-bottom:0.5px solid rgba(200,185,160,0.15);}
.ibox-row:last-child{border-bottom:none;}
.ibox-lbl{color:var(--ink3);font-weight:300;}.ibox-lbl-lt{color:rgba(250,247,242,0.45);font-weight:300;}
.ibox-val{font-weight:500;color:var(--ink);}.ibox-val-lt{font-weight:500;color:var(--surface);}
.inv-hero{margin:16px 16px 0;background:var(--ink);border-radius:24px;padding:22px;position:relative;overflow:hidden;}
.inv-orb1{position:absolute;top:-40px;right:-40px;width:140px;height:140px;border-radius:50%;background:rgba(196,154,108,0.15);}
.inv-orb2{position:absolute;bottom:-30px;left:-20px;width:90px;height:90px;border-radius:50%;background:rgba(189,216,240,0.08);}
.hg-box{background:rgba(250,247,242,0.07);border-radius:13px;padding:12px;text-align:center;}
.hg-val{font-family:'DM Serif Display',serif;font-size:18px;color:var(--surface);line-height:1;margin-bottom:3px;}
.hg-val.up{color:#80d0a0;}.hg-val.warn{color:var(--blush);}
.hg-lbl{font-size:10px;color:var(--ink3);font-weight:300;}
.ic-dark{background:var(--ink);border-radius:20px;padding:18px;margin:0 16px;}
.ic-tan{background:var(--tan);border-radius:20px;padding:18px;margin:0 16px;}
.ic-title-lt{font-size:15px;font-weight:500;color:var(--surface);line-height:1.25;}
.ic-body-lt{font-size:12px;color:rgba(250,247,242,0.6);font-weight:300;line-height:1.65;}
.goals-hero{margin:16px 16px 0;background:var(--ink);border-radius:24px;padding:20px;position:relative;overflow:hidden;}
.gh-orb1{position:absolute;top:-40px;right:-40px;width:130px;height:130px;border-radius:50%;background:rgba(196,154,108,0.15);}
.gh-orb2{position:absolute;bottom:-30px;left:-20px;width:90px;height:90px;border-radius:50%;background:rgba(189,216,240,0.08);}
.gh-lbl{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--ink3);margin-bottom:6px;position:relative;}
.gh-row{display:flex;align-items:baseline;gap:10px;margin-bottom:4px;position:relative;}
.gh-val{font-family:'DM Serif Display',serif;font-size:38px;color:var(--surface);line-height:1;}
.gh-of{font-size:14px;color:var(--ink3);font-weight:300;}
.gh-sub{font-size:12px;color:var(--tan);font-weight:300;margin-bottom:18px;position:relative;}
.gh-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:7px;position:relative;}
.ghg-box{background:rgba(250,247,242,0.07);border-radius:12px;padding:10px;text-align:center;}
.ghg-val{font-family:'DM Serif Display',serif;font-size:17px;color:var(--surface);line-height:1;margin-bottom:3px;}
.ghg-val.up{color:#80d0a0;}.ghg-lbl{font-size:10px;color:var(--ink3);font-weight:300;}
.goal-full{background:var(--card);border:0.5px solid var(--wheat);border-radius:22px;padding:18px;margin:0 16px 12px;}
.gc-top{display:flex;align-items:center;gap:13px;margin-bottom:14px;}
.gc-emoji{width:46px;height:46px;border-radius:15px;background:var(--wheat);display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0;}
.gc-info{flex:1;}.gc-name{font-size:15px;font-weight:500;color:var(--ink);margin-bottom:2px;}
.gc-deadline{font-size:11px;color:var(--ink3);font-weight:300;}
.gc-pct{font-family:'DM Serif Display',serif;font-size:26px;color:var(--tan);}
.gc-bar-wrap{margin-bottom:12px;}
.gc-bar-track{height:5px;background:var(--wheat);border-radius:100px;overflow:hidden;margin-bottom:6px;}
.gc-bar-fill{height:100%;border-radius:100px;background:var(--tan);}
.gc-bar-labels{display:flex;justify-content:space-between;}
.gc-saved{font-size:12px;font-weight:500;color:var(--ink);}
.gc-to-go{font-size:12px;color:var(--ink3);font-weight:300;}
.gc-divider{height:0.5px;background:rgba(200,185,160,0.25);margin:12px 0;}
.gcm-tag{font-size:10px;font-weight:500;padding:3px 9px;border-radius:100px;}
.tg-ok{background:#e0f0e8;color:#2a7a48;}.tg-warn{background:#fae0d8;color:#a0462a;}.tg-close{background:#faf0d0;color:#8a6a10;}
.add-goal-card{margin:0 16px 12px;background:var(--surface);border:0.5px dashed var(--ink4);border-radius:22px;padding:22px;display:flex;flex-direction:column;align-items:center;gap:8px;cursor:pointer;}
.ag-ico{width:44px;height:44px;border-radius:50%;background:var(--wheat);display:flex;align-items:center;justify-content:center;font-size:22px;}
.ag-title{font-size:14px;font-weight:500;color:var(--ink2);}
.ag-sub{font-size:11px;color:var(--ink3);font-weight:300;}
.completed-card{background:var(--card);border:0.5px solid var(--wheat);border-radius:18px;padding:15px 16px;margin:0 16px 12px;display:flex;align-items:center;gap:12px;opacity:0.65;}
.cc-ico{width:36px;height:36px;border-radius:11px;background:#e0f0e8;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;}
.cc-mid{flex:1;}.cc-name{font-size:13px;font-weight:500;color:var(--ink);}
.cc-date{font-size:11px;color:var(--ink3);font-weight:300;margin-top:1px;}
.cc-done{font-size:11px;font-weight:500;color:#2a7a48;background:#e0f0e8;padding:3px 9px;border-radius:100px;}
.nav-bar{padding:22px 22px 0;display:flex;align-items:center;justify-content:space-between;}
.nav-greeting{font-family:'DM Serif Display',serif;font-size:21px;color:var(--ink);line-height:1.15;}
.nav-greeting em{font-style:italic;color:var(--tan);}
.nav-avatar{width:36px;height:36px;border-radius:50%;background:var(--tan);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:500;color:var(--surface);}
.page-sub{font-size:12px;color:var(--ink3);font-weight:300;margin-top:3px;padding:0 20px;}
.month-badge{background:var(--wheat);color:var(--ink2);font-size:11px;font-weight:500;padding:5px 12px;border-radius:100px;}
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(42,34,24,0.45);z-index:200;align-items:flex-end;justify-content:center;}
.modal-overlay.open{display:flex;}
.modal-sheet{background:var(--bg);border-radius:28px 28px 0 0;padding:20px 20px 36px;width:100%;max-width:420px;max-height:90vh;overflow-y:auto;}
.modal-handle{width:36px;height:4px;background:var(--ink4);border-radius:100px;margin:0 auto 18px;}
.modal-title{font-family:'DM Serif Display',serif;font-size:22px;color:var(--ink);margin-bottom:18px;}
.field-lbl{font-size:11px;font-weight:500;letter-spacing:1px;text-transform:uppercase;color:var(--ink3);margin-bottom:6px;display:block;}
.field-input{width:100%;background:var(--card);border:0.5px solid var(--wheat);border-radius:13px;padding:11px 14px;font-size:14px;color:var(--ink);font-family:'DM Sans',sans-serif;outline:none;margin-bottom:12px;}
.field-input:focus{border-color:var(--tan);}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px;}
.field-row .field-input{margin-bottom:0;}
.cat-chips{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:4px;}
.cat-chip{padding:6px 13px;border-radius:100px;font-size:12px;cursor:pointer;border:0.5px solid var(--wheat);background:var(--card);color:var(--ink2);font-family:'DM Sans',sans-serif;transition:all 0.15s;}
.cat-chip.sel{background:var(--ink);color:var(--surface);border-color:var(--ink);}
#exp-subcats .cat-chip{border-left-width:3px;}
#exp-subcats .cat-chip.sel{background:var(--ink);color:var(--surface);}
.emoji-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-bottom:16px;}
.emoji-opt{aspect-ratio:1;border-radius:12px;background:var(--card);border:0.5px solid var(--wheat);display:flex;align-items:center;justify-content:center;font-size:20px;cursor:pointer;transition:all 0.15s;}
.emoji-opt.sel{background:var(--wheat);border-color:var(--tan);}
.btn-row{display:flex;gap:10px;margin-top:16px;}
.btn-primary{flex:2;background:var(--tan);color:var(--surface);border:none;border-radius:14px;padding:14px;font-size:15px;font-weight:500;font-family:'DM Sans',sans-serif;cursor:pointer;}
.btn-danger{flex:1;background:#fae0d8;color:#a0462a;border:none;border-radius:14px;padding:14px;font-size:15px;font-weight:500;font-family:'DM Sans',sans-serif;cursor:pointer;}
#toast{position:fixed;bottom:90px;left:50%;transform:translateX(-50%) translateY(20px);background:var(--ink);color:var(--surface);padding:10px 20px;border-radius:100px;font-size:13px;font-weight:500;opacity:0;transition:all 0.3s;z-index:500;pointer-events:none;white-space:nowrap;max-width:88%;text-align:center;}

