*{box-sizing:border-box}
:root{
  --bg:#f4f6f8;--panel:#ffffff;--panel2:#f8fafc;--text:#1f2933;--sub:#6b7785;--line:#e4e8ed;
  --navy:#2f5f8f;--blue:#3d7cc9;--blue2:#edf4fb;--coral:#e05a5a;--coral2:#fff1f1;
  --green:#2f9b72;--green2:#edf8f3;--purple:#7767b8;--yellow:#d9a441;--rose:#3d7cc9;--rose-dark:#2f5f8f;--rose-soft:#f1f6fb;
  --shadow:0 8px 24px rgba(31,41,51,.06)
}
body[data-theme="dark"]{
  --bg:#15191e;--panel:#1d232a;--panel2:#232a32;--text:#eef2f5;--sub:#9aa5b1;--line:#303844;
  --navy:#8fb8e2;--blue:#78a7d6;--blue2:#223142;--coral:#ef8585;--coral2:#3b2727;
  --green:#70c49e;--green2:#20362d;--purple:#a89ad5;--yellow:#e6c16f;--rose:#78a7d6;--rose-dark:#9ec2e6;--rose-soft:#202c38;--shadow:none
}
html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans KR",sans-serif;-webkit-tap-highlight-color:transparent}
button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.app{max-width:700px;margin:0 auto;min-height:100vh;background:var(--bg);position:relative}
.hidden{display:none!important}
.topbar{height:68px;padding:0 16px;display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(16px)}
.brand{display:flex;align-items:center;gap:10px}.brand-mark{width:36px;height:36px;border-radius:12px;background:#3d7cc9;color:#fff;display:grid;place-items:center;font-size:15px;font-weight:900;box-shadow:var(--shadow)}.brand small{display:block;font-size:8px;letter-spacing:1.5px;color:var(--sub);font-weight:800}.brand strong{display:block;font-size:16px;margin-top:1px}.top-actions{display:flex;gap:4px}.round-btn{width:40px;height:40px;border:1px solid var(--line);background:var(--panel);border-radius:12px;display:grid;place-items:center;box-shadow:0 5px 16px rgba(30,45,60,.04)}
main{padding:0 14px 92px}.screen{display:none}.screen.active{display:block}.screen-header{padding:10px 2px 12px}.screen-header small{font-size:8px;letter-spacing:1.6px;color:var(--blue);font-weight:900}.screen-header h1{font-size:25px;margin:2px 0 0}
.month-switcher{display:grid;grid-template-columns:42px 1fr 42px;align-items:center;margin:4px 0 12px}.month-switcher.compact{margin:0 0 12px}.month-switcher button{border:0;background:transparent}.month-switcher>button:first-child,.month-switcher>button:last-child{font-size:27px;color:var(--sub)}.month-label{font-size:14px!important;font-weight:800!important;color:var(--text)!important}
.hero{background:#2f5f8f;color:#fff;border-radius:24px;padding:21px;box-shadow:0 14px 30px rgba(47,95,143,.18)}
.hero-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.hero-top span{font-size:11px;opacity:.74}.hero-top strong{display:block;font-size:31px;margin-top:5px;letter-spacing:-1px}.hero-status{background:#ffffff1f;border:1px solid #ffffff25;padding:6px 9px;border-radius:99px;font-size:9px;font-weight:800}.hero-status.warn{background:#ffba5a24;color:#ffd08f}.hero-status.danger{background:#ff6b6125;color:#ffb0aa}
.hero-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:20px}.hero-grid div{background:#ffffff0c;border:1px solid #ffffff12;padding:10px;border-radius:13px}.hero-grid span{font-size:8px;opacity:.65;display:block}.hero-grid b{display:block;font-size:12px;margin-top:3px}.hero-rule{height:1px;background:#ffffff18;margin:15px 0 12px}.hero-foot{display:flex;justify-content:space-between;gap:10px;font-size:9px;opacity:.78}.hero-foot b{font-size:10px;color:#fff}
.section-title{display:flex;justify-content:space-between;align-items:end;margin:24px 3px 10px}.section-title small{font-size:8px;letter-spacing:1.5px;color:var(--blue);font-weight:900}.section-title h2{font-size:17px;margin:2px 0 0}.link-btn{border:0;background:transparent;color:var(--blue);font-size:10px;font-weight:800;padding:6px 0}
.triple-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.mini-card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:13px;box-shadow:var(--shadow);min-width:0}.mini-card span{font-size:9px;color:var(--sub);display:block}.mini-card strong{display:block;font-size:14px;margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mini-card small{display:block;font-size:8px;color:var(--sub);margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.progress{height:6px;background:var(--line);border-radius:20px;overflow:hidden;margin-top:8px}.progress i{display:block;height:100%;border-radius:inherit;background:var(--blue);width:0}.progress.large{height:8px;margin-top:12px}
.saving-card{background:linear-gradient(180deg,var(--panel),var(--panel2));border:1px solid var(--line);border-radius:18px;padding:16px;box-shadow:var(--shadow)}.saving-head{display:flex;justify-content:space-between;align-items:flex-start}.saving-head span{font-size:9px;color:var(--sub)}.saving-head strong{display:block;font-size:24px;margin-top:2px;color:var(--green)}.saving-target{text-align:right}.saving-target small{display:block;font-size:8px;color:var(--sub)}.saving-target b{font-size:11px}.saving-plan{display:flex;gap:6px;overflow:auto;margin-top:12px;padding-bottom:2px;scrollbar-width:none}.saving-plan::-webkit-scrollbar{display:none}.plan-pill{flex:0 0 auto;background:var(--green2);color:var(--green);padding:7px 9px;border-radius:10px;font-size:8px;font-weight:800}
.category-card,.recent-card{background:var(--panel);border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:var(--shadow)}.cat-row{display:grid;grid-template-columns:84px 1fr 76px;gap:10px;align-items:center;padding:11px 13px;border-bottom:1px solid var(--line)}.cat-row:last-child{border-bottom:0}.cat-row .name{font-size:10px}.cat-row .amt{text-align:right;font-size:10px;font-weight:800}.bar{height:6px;background:var(--line);border-radius:10px;overflow:hidden}.bar i{display:block;height:100%;background:var(--coral);border-radius:inherit}
.tx-row{width:100%;border:0;background:var(--panel);display:grid;grid-template-columns:50px 1fr auto;gap:10px;align-items:center;padding:12px 13px;border-bottom:1px solid var(--line);text-align:left}.tx-row:last-child{border-bottom:0}.tx-icon{width:38px;height:38px;border-radius:12px;background:var(--blue2);display:grid;place-items:center;font-size:10px;font-weight:900;color:var(--blue)}.tx-main b{font-size:11px;display:block}.tx-main small{font-size:8px;color:var(--sub);display:block;margin-top:3px}.tx-money{font-size:11px;font-weight:900;text-align:right}.tx-money.expense{color:var(--coral)}.tx-money.income{color:var(--blue)}.tx-money.saving{color:var(--green)}.installment-badge{display:inline-block;background:var(--coral2);color:var(--coral);font-size:7px;padding:2px 4px;border-radius:5px;margin-left:4px}
.empty{padding:45px 18px;text-align:center;color:var(--sub);font-size:10px}.empty b{display:block;color:var(--text);font-size:11px;margin-bottom:4px}
.calendar-shell{background:var(--panel);border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:var(--shadow)}.weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr)}.weekdays{height:30px;border-bottom:1px solid var(--line)}.weekdays span{font-size:8px;color:var(--sub);display:grid;place-items:center}.weekdays span:first-child{color:var(--coral)}.weekdays span:last-child{color:var(--blue)}.cal-day{min-height:78px;border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--panel);padding:6px 4px;display:flex;flex-direction:column;text-align:left}.cal-day:nth-child(7n){border-right:0}.cal-day.muted{opacity:.28;background:var(--panel2)}.cal-day.selected{background:linear-gradient(145deg,#293d56,#1b3048);color:#fff}.cal-day .num{font-size:9px;margin-bottom:auto}.cal-day .inc,.cal-day .exp,.cal-day .sav{font-size:7px;text-align:center;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-day .inc{color:var(--blue)}.cal-day .exp{color:var(--coral)}.cal-day .sav{color:var(--green)}.cal-day.selected span{color:#fff}.day-detail{margin-top:10px}.day-card{background:var(--panel);border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:var(--shadow)}.day-card-head{display:flex;justify-content:space-between;align-items:center;padding:11px 13px;border-bottom:1px solid var(--line)}.day-card-head b{font-size:11px}.day-card-head span{font-size:9px;color:var(--sub)}
.seg-tabs{display:grid;grid-template-columns:repeat(3,1fr);background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:3px;margin-bottom:12px;box-shadow:var(--shadow)}.seg-tabs button{border:0;background:transparent;border-radius:9px;padding:9px;color:var(--sub);font-size:9px}.seg-tabs button.active{background:#2f5f8f;color:#fff;font-weight:800}
.stat-hero{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:15px;box-shadow:var(--shadow);display:grid;grid-template-columns:repeat(3,1fr);text-align:center}.stat-hero span{font-size:8px;color:var(--sub)}.stat-hero b{display:block;font-size:12px;margin-top:4px}.donut-box{margin-top:10px;background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:16px;box-shadow:var(--shadow)}.donut-wrap{display:flex;justify-content:center;padding:6px 0 10px}.donut{width:190px;height:190px;border-radius:50%;position:relative}.donut:after{content:"";position:absolute;inset:55px;background:var(--panel);border-radius:50%}.donut-center{position:absolute;inset:0;z-index:2;display:flex;align-items:center;justify-content:center;flex-direction:column}.donut-center span{font-size:8px;color:var(--sub)}.donut-center b{font-size:17px;margin-top:3px}.stat-list{margin-top:4px}.stat-row{display:grid;grid-template-columns:38px 1fr auto;gap:8px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}.stat-row:last-child{border-bottom:0}.stat-row .badge{font-size:8px;color:#fff;border-radius:7px;padding:5px;text-align:center;font-weight:800}.stat-row .name{font-size:10px}.stat-row .amt{font-size:10px;font-weight:800}
.trend-card{margin-top:10px;background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:15px;box-shadow:var(--shadow)}.trend-card h3{font-size:11px;margin:0 0 12px}.trend-chart{height:135px;display:flex;gap:10px;align-items:flex-end}.trend-col{flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:5px}.trend-col i{width:62%;max-width:30px;background:linear-gradient(#ff9b87,var(--coral));border-radius:6px 6px 1px 1px;min-height:2px}.trend-col small{font-size:8px;color:var(--sub)}
.budget-hero,.cash-hero{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:16px;box-shadow:var(--shadow)}.budget-hero small,.cash-hero small{font-size:8px;color:var(--sub)}.budget-hero strong,.cash-hero strong{display:block;font-size:25px;margin:4px 0 12px}.budget-list,.cash-list{margin-top:10px;background:var(--panel);border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:var(--shadow)}.budget-row{display:grid;grid-template-columns:88px 1fr 56px;gap:8px;align-items:center;padding:11px 12px;border-bottom:1px solid var(--line)}.budget-row:last-child{border-bottom:0}.budget-row .name{font-size:9px}.budget-row .right{text-align:right;font-size:8px}.budget-row .right b{display:block;font-size:9px}.over{color:var(--coral)}.ok{color:var(--blue)}.flow-row{display:flex;justify-content:space-between;padding:13px;border-bottom:1px solid var(--line);font-size:10px}.flow-row:last-child{border-bottom:0}.flow-row small{display:block;color:var(--sub);font-size:8px;margin-top:2px}
.settings-screen{padding-bottom:10px}.settings-card{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:15px;margin-bottom:10px;box-shadow:var(--shadow)}.card-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.card-title h3{font-size:12px;margin:0}.card-title small{display:block;color:var(--sub);font-size:8px;margin-top:2px}.mini-add{border:0;background:var(--blue2);color:var(--blue);border-radius:8px;padding:6px 8px;font-size:8px;font-weight:800}.setting-line{display:grid;grid-template-columns:1fr 125px;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line)}.setting-line b{font-size:10px}.setting-line small{display:block;color:var(--sub);font-size:8px;margin-top:2px}.setting-line input{width:100%;border:0;background:var(--panel2);border-radius:8px;padding:9px;text-align:right;font-size:9px}.primary,.soft,.danger{border:0;border-radius:10px;padding:11px;font-weight:800}.primary{background:#3d7cc9;color:#fff}.soft{background:var(--panel2);border:1px solid var(--line)}.full{width:100%}.danger{width:100%;border:1px solid var(--coral);background:transparent;color:var(--coral)}textarea{width:100%;border:1px solid var(--line);background:var(--panel2);border-radius:10px;padding:10px;resize:vertical;font-size:9px}.two-buttons{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:8px}
.plan-edit,.budget-edit{display:grid;grid-template-columns:1fr 108px auto;gap:6px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}.budget-edit{grid-template-columns:1fr 115px}.plan-edit input,.budget-edit input,.goal-edit input,.recurring-edit input,.recurring-edit select{border:0;background:var(--panel2);border-radius:7px;padding:8px;font-size:8px}.plan-edit .amount,.budget-edit input{text-align:right}.plan-edit button,.goal-edit button{border:0;background:transparent;color:var(--coral);font-size:8px}.goal-edit{border:1px solid var(--line);border-radius:10px;padding:9px;margin-bottom:8px}.goal-edit-top{display:grid;grid-template-columns:1fr auto;gap:6px}.goal-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:7px}.goal-grid label span,.recurring-edit label span{display:block;color:var(--sub);font-size:7px;margin-bottom:3px}.goal-grid input{width:100%}.goal-preview{margin-top:7px}.goal-meta{display:flex;justify-content:space-between;color:var(--sub);font-size:7px;margin-top:4px}
.recurring-row{padding:9px 0;border-bottom:1px solid var(--line)}.recurring-row:last-child{border-bottom:0}.recurring-head{display:flex;justify-content:space-between;align-items:center}.recurring-head b{font-size:9px}.recurring-head small{display:block;color:var(--sub);font-size:7px;margin-top:2px}.recurring-actions{display:flex;gap:5px}.recurring-actions button{border:0;background:var(--panel2);border-radius:6px;padding:5px 7px;font-size:7px}.recurring-actions .remove{color:var(--coral)}.recurring-edit{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:7px}.recurring-edit .wide{grid-column:1/-1}.recurring-edit input,.recurring-edit select{width:100%}
.category-tags{display:flex;flex-wrap:wrap;gap:6px}.category-tag{background:var(--panel2);border:1px solid var(--line);border-radius:16px;padding:6px 8px;font-size:8px}.category-tag.custom{border-color:#ffd1cc;color:var(--coral)}.inline-add{display:grid;grid-template-columns:1fr 65px;gap:7px;margin-top:10px}.inline-add input{border:1px solid var(--line);background:var(--panel2);border-radius:8px;padding:9px;font-size:9px}.inline-add button{border:0;background:var(--navy);color:#fff;border-radius:8px;font-size:9px}.switch input{display:none}.switch i{display:block;width:42px;height:24px;border-radius:20px;background:#dfe4e9;position:relative}.switch i:after{content:"";position:absolute;width:20px;height:20px;left:2px;top:2px;border-radius:50%;background:#fff;box-shadow:0 1px 4px #0002;transition:.2s}.switch input:checked+i{background:var(--blue)}.switch input:checked+i:after{left:20px}.settings-menu{display:flex;flex-direction:column;margin-top:4px}.settings-menu button,.settings-menu label{border:0;background:transparent;border-bottom:1px solid var(--line);padding:11px 2px;display:flex;justify-content:space-between;font-size:9px;text-align:left}.settings-menu input{display:none}.foot{text-align:center;color:var(--sub);font-size:8px;padding:12px}
.bottom-nav{position:fixed;left:50%;bottom:0;transform:translateX(-50%);width:min(700px,100%);height:68px;padding-bottom:env(safe-area-inset-bottom);background:color-mix(in srgb,var(--panel) 94%,transparent);backdrop-filter:blur(16px);border-top:1px solid var(--line);z-index:30;display:grid;grid-template-columns:repeat(4,1fr)}.bottom-nav button{border:0;background:transparent;color:#aab2bb;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px}.bottom-nav button span{font-size:8px}.bottom-nav button.active{color:var(--rose-dark)}.bottom-nav button.active svg{stroke-width:2.2}
.fab{position:fixed;right:max(18px,calc((100vw - 700px)/2 + 18px));bottom:82px;width:54px;height:54px;border-radius:50%;border:0;background:#3d7cc9;color:#fff;display:grid;place-items:center;box-shadow:0 10px 22px rgba(47,95,143,.24);z-index:35}.fab svg{width:24px;height:24px;stroke-width:2.3}
.modal{display:none;position:fixed;inset:0;z-index:100;background:var(--panel)}.modal.open{display:block}.modal.dim{background:#0007;align-items:flex-end}.modal.dim.open{display:flex}.modal-page{max-width:700px;margin:auto;min-height:100%;background:var(--panel)}.modal-header{height:58px;display:grid;grid-template-columns:52px 1fr 52px;align-items:center;border-bottom:1px solid var(--line)}.modal-header button{border:0;background:transparent;font-size:28px}.modal-header b{text-align:center;font-size:13px}
.segmented{display:grid;margin:14px;background:var(--panel2);border-radius:11px;padding:3px}.segmented.three{grid-template-columns:repeat(3,1fr)}.segmented button{border:0;background:transparent;border-radius:8px;padding:9px;color:var(--sub);font-size:9px}.segmented button.active{background:var(--panel);color:var(--rose-dark);font-weight:900;box-shadow:0 3px 9px rgba(30,45,60,.07)}.owner-tabs{display:flex;justify-content:center;gap:6px;margin-bottom:8px}.owner-tabs button{border:1px solid var(--line);background:var(--panel);border-radius:16px;padding:6px 10px;color:var(--sub);font-size:8px}.owner-tabs button.active{border-color:#ffbdb7;background:var(--coral2);color:var(--coral);font-weight:900}.editor-line{min-height:55px;display:grid;grid-template-columns:62px 1fr;align-items:center;gap:8px;padding:0 15px;border-bottom:1px solid var(--line)}.editor-line>span{font-size:9px;color:var(--sub)}.editor-line input,.editor-line select{border:0;background:transparent;width:100%;padding:12px 0;outline:none;font-size:11px}.date-time{display:grid;grid-template-columns:1fr 92px;gap:8px}.amount{display:flex;align-items:center}.amount input{text-align:right;font-size:22px;font-weight:900}.amount b{font-size:10px;margin-left:4px}.save{width:calc(100% - 28px);margin:17px 14px 7px}.edit-buttons{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:0 14px}.edit-buttons button{border:1px solid var(--line);background:var(--panel2);border-radius:8px;padding:9px;font-size:9px}.edit-buttons .delete{color:var(--coral)}
.sheet{width:min(700px,100%);max-height:90vh;overflow:auto;margin:0 auto;background:var(--panel);border-radius:20px 20px 0 0;padding:8px 14px calc(18px + env(safe-area-inset-bottom))}.handle{width:40px;height:4px;background:var(--line);border-radius:4px;margin:2px auto 10px}.sheet-head{display:flex;justify-content:space-between;align-items:center}.sheet-head b{font-size:13px}.sheet-head button{border:0;background:transparent;color:var(--blue);font-size:9px}.search{width:100%;border:0;background:var(--panel2);border-radius:10px;padding:11px;margin-top:10px;font-size:9px}.filter-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:9px 0}.filter-grid span{display:block;color:var(--sub);font-size:7px;margin-bottom:3px}.filter-grid input,.filter-grid select{width:100%;border:1px solid var(--line);background:var(--panel);border-radius:7px;padding:8px;font-size:8px}
.toast{position:fixed;z-index:200;left:50%;bottom:90px;transform:translate(-50%,14px);opacity:0;background:#20262c;color:#fff;border-radius:10px;padding:10px 13px;font-size:9px;transition:.18s;white-space:nowrap;max-width:90vw}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:420px){
  .triple-cards{grid-template-columns:1fr 1fr}.mini-card:first-child{grid-column:1/-1}.goal-grid,.recurring-edit{grid-template-columns:1fr}.cat-row{grid-template-columns:75px 1fr 66px}.cal-day{min-height:69px}.hero-top strong{font-size:28px}
}


.rose-hero{position:relative;overflow:hidden}
.rose-hero:before{content:"";position:absolute;width:190px;height:190px;border-radius:50%;background:#ffffff0c;right:-60px;top:-90px}
.rose-hero:after{content:"";position:absolute;width:110px;height:110px;border-radius:50%;background:#ffffff08;right:50px;bottom:-70px}
.rose-hero>*{position:relative;z-index:1}
.smart-strip{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.smart-card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:14px;box-shadow:var(--shadow)}
.smart-card span{display:block;font-size:8px;color:var(--sub);font-weight:700}
.smart-card strong{display:block;font-size:18px;margin-top:5px;color:var(--rose-dark)}
.smart-card small{display:block;font-size:8px;color:var(--sub);margin-top:4px;line-height:1.45}
.smart-card .good{color:var(--green)}.smart-card .warn{color:var(--yellow)}.smart-card .bad{color:var(--coral)}
.forecast-card{background:var(--panel);border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:var(--shadow)}
.forecast-summary{display:grid;grid-template-columns:repeat(3,1fr);padding:14px;border-bottom:1px solid var(--line);background:var(--panel2)}
.forecast-summary div{text-align:center}.forecast-summary span{display:block;font-size:8px;color:var(--sub)}.forecast-summary b{display:block;font-size:11px;margin-top:4px}
.upcoming-list{max-height:245px;overflow:auto}
.upcoming-row{display:grid;grid-template-columns:64px 1fr auto;gap:9px;align-items:center;padding:11px 13px;border-bottom:1px solid var(--line)}
.upcoming-row:last-child{border-bottom:0}.upcoming-date{font-size:8px;color:var(--sub)}.upcoming-main b{display:block;font-size:10px}.upcoming-main small{display:block;font-size:8px;color:var(--sub);margin-top:2px}.upcoming-amount{font-size:10px;font-weight:900}.upcoming-amount.expense{color:var(--coral)}.upcoming-amount.income{color:var(--green)}.upcoming-amount.card{color:var(--rose-dark)}
.comparison-strip{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}
.compare-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:12px;box-shadow:var(--shadow)}
.compare-card span{display:block;font-size:8px;color:var(--sub)}.compare-card b{display:block;font-size:14px;margin-top:4px}.compare-card small{display:block;font-size:8px;color:var(--sub);margin-top:3px}
.budget-alert{display:inline-flex;align-items:center;border-radius:99px;padding:3px 6px;font-size:7px;font-weight:900;margin-top:3px}
.budget-alert.normal{background:var(--green2);color:var(--green)}.budget-alert.watch{background:#fff7df;color:#b78013}.budget-alert.warn{background:#fff0e7;color:#d87335}.budget-alert.over{background:var(--coral2);color:var(--coral)}
.pace-marker{height:10px;position:relative;margin-top:6px}.pace-marker:before{content:"";position:absolute;left:0;right:0;top:4px;height:2px;background:var(--line);border-radius:2px}.pace-marker i{position:absolute;top:0;width:2px;height:10px;background:var(--rose-dark);border-radius:2px}.pace-marker em{position:absolute;top:-1px;width:8px;height:8px;margin-left:-4px;border-radius:50%;background:var(--coral);box-shadow:0 0 0 2px var(--panel)}
.planned-dot{width:5px;height:5px;border-radius:50%;background:var(--rose);margin:2px auto 0}
.smart-hint{font-size:8px;color:var(--sub);padding:8px 15px;background:var(--rose-soft);border-bottom:1px solid var(--line)}
@media(min-width:900px){
  .app{max-width:1040px}
  main{padding-left:28px;padding-right:28px}
  .topbar{padding-left:28px;padding-right:28px}
  .hero{padding:26px}
  .triple-cards{gap:12px}.mini-card{padding:16px}
  .smart-strip{gap:12px}.smart-card{padding:17px}
  .forecast-summary{padding:18px}
  .calendar-shell,.day-detail,.seg-tabs,#statsContent,.comparison-strip{max-width:900px;margin-left:auto;margin-right:auto}
  .settings-screen{max-width:860px;margin:0 auto}
  .bottom-nav{width:min(1040px,100%)}
  .fab{right:max(26px,calc((100vw - 1040px)/2 + 26px))}
}
@media(max-width:420px){.smart-strip,.comparison-strip{grid-template-columns:1fr}.forecast-summary{grid-template-columns:1fr 1fr 1fr}}

/* Easy-view refinements */
.rose-hero:before,.rose-hero:after{display:none!important}
.hero{background:#2f5f8f!important}
.brand-mark{background:#3d7cc9!important}
.primary{background:#3d7cc9!important}
.seg-tabs button.active{background:#2f5f8f!important}
.fab{background:#3d7cc9!important}
.bottom-nav button.active{color:#2f5f8f!important}
.link-btn{color:#3d7cc9!important}
.section-title small,.screen-header small{color:#3d7cc9!important}
.mini-add{background:#edf4fb!important;color:#2f5f8f!important}
.smart-card strong{color:#2f5f8f!important}
.forecast-summary{background:#f8fafc!important}
.category-tag.custom{border-color:#cfd9e4!important;color:#2f5f8f!important}
.owner-tabs button.active{border-color:#b8cce0!important;background:#edf4fb!important;color:#2f5f8f!important}
.installment-badge{background:#fff1f1!important;color:#e05a5a!important}
.settings-card,.category-card,.recent-card,.calendar-shell,.day-card,.stat-hero,.donut-box,.trend-card,.budget-hero,.cash-hero,.budget-list,.cash-list,.forecast-card,.saving-card,.mini-card,.smart-card{
  box-shadow:0 6px 18px rgba(31,41,51,.05)!important
}
.hero,.settings-card,.category-card,.recent-card,.calendar-shell,.day-card,.stat-hero,.donut-box,.trend-card,.budget-hero,.cash-hero,.budget-list,.cash-list,.forecast-card,.saving-card,.mini-card,.smart-card{
  border-radius:14px!important
}
body{letter-spacing:0}
.hero-top strong{letter-spacing:-.6px}
.tx-main b,.cat-row .name,.stat-row .name,.budget-row .name{color:var(--text)}
input,select,textarea{font-size:11px!important}
.setting-line b,.card-title h3{font-size:11px!important}

/* Final mobile compatibility */
.topbar{
  height:calc(68px + env(safe-area-inset-top))!important;
  padding:env(safe-area-inset-top) 16px 0!important;
}
main{padding-bottom:calc(92px + env(safe-area-inset-bottom))!important}
.bottom-nav{
  height:calc(68px + env(safe-area-inset-bottom))!important;
  padding-bottom:env(safe-area-inset-bottom)!important;
}
.fab{bottom:calc(82px + env(safe-area-inset-bottom))!important}
.modal-header{
  height:calc(58px + env(safe-area-inset-top))!important;
  padding-top:env(safe-area-inset-top)!important;
}
.modal-page{padding-bottom:env(safe-area-inset-bottom)}
.device-guide{display:flex;flex-direction:column;gap:8px}
.device-guide>div{background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:10px 11px}
.device-guide b{display:block;font-size:10px;color:var(--text);margin-bottom:3px}
.device-guide span{display:block;font-size:9px;line-height:1.55;color:var(--sub)}
.device-note{margin:9px 1px 0;color:var(--sub);font-size:8px;line-height:1.55}
@media(max-width:700px){
  /* iOS Safari does not auto-zoom form controls at 16px and above */
  input,select,textarea{font-size:16px!important}
  .setting-line input,.plan-edit input,.budget-edit input,.goal-edit input,.recurring-edit input,.recurring-edit select,
  .filter-grid input,.filter-grid select,.search{font-size:16px!important}
}
