:root{--bg: #0a0f1e;--bg2: #111827;--bg3: #1e293b;--bg4: #263248;--border: #1e3a5f;--border2: #2d4a7a;--text: #f1f5f9;--text2: #94a3b8;--text3: #475569;--accent: #3b82f6;--accent2: #60a5fa;--accent3: #93c5fd;--green: #10b981;--green2: #34d399;--red: #ef4444;--red2: #f87171;--orange: #f97316;--yellow: #fbbf24;--card-r: 20px;--font: "Noto Sans KR", sans-serif;--mono: "DM Mono", monospace;--shadow: 0 4px 24px rgba(0,0,0,.4);--shadow-sm: 0 2px 12px rgba(0,0,0,.3);--app-max: 1520px;--glass: rgba(255,255,255,.06);--card-grad: linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02));--soft-glow: 0 8px 24px rgba(15,23,42,.22)}body.light-theme{--bg: #f3f7fb;--bg2: #ffffff;--bg3: #e8eef6;--bg4: #dbe7f3;--border: #d3dfec;--border2: #b8cbe0;--text: #0f172a;--text2: #475569;--text3: #64748b;--accent: #2563eb;--accent2: #3b82f6;--accent3: #60a5fa;--green: #059669;--green2: #10b981;--red: #dc2626;--red2: #ef4444;--orange: #ea580c;--shadow: 0 8px 32px rgba(15,23,42,.08);--shadow-sm: 0 4px 16px rgba(15,23,42,.06)}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html{scroll-behavior:smooth;background:#070e1c;color-scheme:dark}body{background:#070e1c;color:var(--text);font-family:var(--font);font-size:15px;min-height:100dvh;overflow-x:clip;padding-bottom:calc(90px + env(safe-area-inset-bottom))}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes countUp{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes ripple{0%{transform:scale(0);opacity:.6}to{transform:scale(2.5);opacity:0}}@keyframes badgePop{0%{transform:translate(-50%) scale(.85);opacity:0}60%{transform:translate(-50%) scale(1.05)}to{transform:translate(-50%) scale(1);opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes premiumPageIn{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes financePop{0%{transform:scale(.96);opacity:.55}60%{transform:scale(1.02);opacity:1}to{transform:scale(1);opacity:1}}#login-screen{position:fixed;inset:0;z-index:1000;background:linear-gradient(135deg,#0a0f1e,#0f1d35,#0a0f1e);display:flex;flex-direction:column;align-items:center;justify-content:center;animation:fadeIn .5s ease;padding:24px}.login-logo{font-size:54px;margin-bottom:16px;animation:countUp .6s ease}.login-title{font-size:28px;font-weight:900;color:var(--text);margin-bottom:6px;letter-spacing:-.5px;animation:countUp .6s ease .08s both}.login-sub{font-size:13px;color:var(--text3);margin-bottom:48px;animation:countUp .6s ease .16s both}.login-features{display:flex;flex-direction:column;gap:10px;margin-bottom:42px;width:280px;animation:fadeIn .6s ease .24s both}.login-feature{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--text2)}.login-feature-icon{width:32px;height:32px;border-radius:10px;background:var(--bg3);display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0}.btn-google-login{display:flex;align-items:center;gap:12px;background:linear-gradient(180deg,#fff,#eef4ff);color:#0f172a;border:none;border-radius:14px;padding:14px 28px;font-size:15px;font-weight:700;cursor:pointer;font-family:var(--font);box-shadow:0 12px 26px #ffffff29;transition:all .2s;animation:slideUp .6s ease .32s both;position:relative;overflow:hidden;min-width:240px;justify-content:center}.btn-google-login:hover{transform:translateY(-2px);box-shadow:0 18px 34px #fff3}.btn-google-login svg{width:20px;height:20px}.btn-google-login.is-loading{pointer-events:none;opacity:.85}.btn-inline-spinner{width:16px;height:16px;border-radius:50%;border:2px solid rgba(15,23,42,.18);border-top-color:#2563eb;animation:spin .7s linear infinite;display:inline-block}.login-note{font-size:11px;color:var(--text3);margin-top:16px;text-align:center;animation:fadeIn .6s ease .4s both}.topbar{position:fixed;top:0;left:0;right:0;z-index:100;background:#050b19f7;border-bottom:1px solid rgba(96,165,250,.12);box-shadow:0 10px 30px #00000029;padding:calc(env(safe-area-inset-top,0px) + 10px) 20px 12px;display:flex;align-items:center;justify-content:space-between}.topbar-left{display:flex;flex-direction:column}.topbar-title{font-size:22px;font-weight:900;letter-spacing:-.6px;color:var(--text)}.topbar-sub{font-size:11px;color:#94a3b8b8;letter-spacing:3px;text-transform:uppercase}.topbar-right{display:flex;align-items:center;gap:10px}.topbar-balance{text-align:right;padding:6px 10px 6px 14px;border-radius:999px;background:#ffffff0a;border:1px solid rgba(255,255,255,.06)}.topbar-balance-label{font-size:9px;color:var(--text3);margin-bottom:2px}.topbar-balance-amount{font-family:var(--mono);font-size:clamp(14px,4.5vw,20px);font-weight:700;transition:color .3s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:clamp(90px,28vw,150px)}.topbar-balance-amount.danger{color:var(--red2)}.topbar-gear-btn{width:36px;height:36px;border-radius:50%;background:#ffffff12;border:1px solid rgba(255,255,255,.1);color:var(--text2);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,transform .2s;flex-shrink:0}.topbar-gear-btn:hover{background:#ffffff21;transform:rotate(30deg)}.user-avatar{width:40px;height:40px;border-radius:50%;border:1px solid rgba(96,165,250,.34);box-shadow:0 8px 24px #3b82f633;overflow:hidden;cursor:pointer;transition:transform .2s}.user-avatar:hover{transform:scale(1.05)}.user-avatar img{width:100%;height:100%;object-fit:cover}.user-avatar-placeholder{width:100%;height:100%;background:var(--accent);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:#fff}.user-menu{display:none!important}.bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:120;background:#0a0f1efc;border-top:1px solid rgba(30,58,95,.5);display:flex;overflow-x:hidden;overflow-y:hidden;scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;border-radius:22px 22px 0 0;padding-bottom:max(env(safe-area-inset-bottom),10px);padding-left:max(env(safe-area-inset-left),4px);padding-right:max(env(safe-area-inset-right),4px)}.bottom-nav::-webkit-scrollbar{display:none}.nav-btn{flex:1;min-width:0;padding:10px 4px 8px;background:none;border:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--text3);transition:color .2s;position:relative}.nav-btn.active{color:var(--accent2)}.nav-btn svg{width:22px;height:22px;flex-shrink:0;transition:transform .2s}.nav-btn.active svg{transform:scale(1.08)}.nav-btn span{font-size:10px;font-weight:700;max-height:0;overflow:hidden;opacity:0;transition:max-height .2s ease,opacity .2s}.nav-btn.active span{max-height:16px;opacity:1}.nav-indicator{position:absolute;top:0;left:50%;transform:translate(-50%);width:28px;height:2.5px;border-radius:0 0 3px 3px;background:var(--accent2);opacity:0;transition:opacity .2s,width .2s}.nav-btn.active .nav-indicator{opacity:1}.page{display:none;padding:calc(66px + env(safe-area-inset-top,0px)) 16px 0;max-width:var(--app-max);margin:0 auto;position:relative;z-index:1}.page.active{display:block;animation:premiumPageIn .3s cubic-bezier(.2,.8,.2,1)}.btn{position:relative;overflow:hidden;border:none;cursor:pointer;font-family:var(--font);transition:transform .15s,box-shadow .15s;user-select:none}.btn:active{transform:scale(.97)}.ripple-container{position:absolute;inset:0;overflow:hidden;border-radius:inherit;pointer-events:none}.ripple{position:absolute;border-radius:50%;background:#ffffff3d;transform:scale(0);animation:ripple .5s ease-out;pointer-events:none}.card{background:#111827f2;border:1px solid rgba(255,255,255,.07);border-radius:24px;box-shadow:var(--soft-glow);padding:18px;margin-bottom:12px;transition:border-color .2s,transform .2s,box-shadow .2s}.card:hover{border-color:#60a5fa2e}.card-title{font-size:12px;font-weight:800;color:#cbd5e1;letter-spacing:1px;text-transform:uppercase;margin-bottom:16px;display:flex;justify-content:space-between;align-items:center;gap:12px}@keyframes cardGradientDrift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes orbFloat{0%,to{transform:translate(0) scale(1)}33%{transform:translate(12px,-8px) scale(1.06)}66%{transform:translate(-8px,6px) scale(.95)}}.balance-card{padding:28px;border-radius:28px;cursor:pointer;background:linear-gradient(-45deg,#0f172a,#1e1b4b,#172554,#0c1445,#1e1b4b,#0f172a);background-size:400% 400%;animation:cardGradientDrift 12s ease infinite;border:1px solid rgba(96,165,250,.28);box-shadow:0 18px 48px #02081766,inset 0 1px #ffffff0f;margin-bottom:12px;position:relative;overflow:hidden}.balance-card:before{content:"";position:absolute;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(99,102,241,.22) 0%,transparent 70%);top:-60px;right:-40px;animation:orbFloat 8s ease-in-out infinite;pointer-events:none}.balance-card:after{content:"";position:absolute;width:160px;height:160px;border-radius:50%;background:radial-gradient(circle,rgba(14,165,233,.16) 0%,transparent 70%);bottom:-40px;left:10px;animation:orbFloat 11s ease-in-out infinite reverse;pointer-events:none}.balance-label{font-size:12px;font-weight:800;color:#bfdbfe;letter-spacing:1px;margin-bottom:12px;display:flex;align-items:center;gap:6px}.balance-amount{font-family:var(--mono);font-size:clamp(36px,8vw,54px);font-weight:900;letter-spacing:-1.5px;line-height:1;margin-bottom:14px;transition:color .3s;color:#e0f2fe;text-shadow:0 4px 24px rgba(96,165,250,.45),0 1px 0 rgba(255,255,255,.1);white-space:nowrap;overflow:hidden}.balance-amount.danger{color:var(--red2)}.balance-warning{font-size:12px;color:var(--orange);margin-top:6px;display:flex;align-items:center;gap:4px}.balance-edit{display:flex;gap:8px;margin-top:20px}.balance-input{flex:1;background:#00000047;border:1px solid rgba(59,130,246,.3);color:var(--text);border-radius:12px;padding:11px 14px;font-size:16px;font-family:var(--mono);font-weight:500;text-align:right;outline:none;transition:border-color .2s;min-height:48px}.balance-input:focus{border-color:var(--accent);box-shadow:0 0 0 4px #3b82f61f}.btn-update{background:linear-gradient(135deg,#3b82f6,#2563eb,#1d4ed8);color:#fff;border-radius:12px;padding:11px 18px;font-size:13px;font-weight:700;white-space:nowrap;box-shadow:0 14px 30px #2563eb4d;border:1px solid rgba(255,255,255,.1)}.balance-card-edit-chip{display:inline-flex;align-items:center;gap:6px;margin-top:10px;padding:7px 11px;border-radius:999px;background:#ffffff14;border:1px solid rgba(255,255,255,.08);font-size:11px;color:#dbeafe;font-weight:700}.alert-banner{background:#7f1d1d4d;border:1px solid rgba(239,68,68,.4);border-radius:14px;padding:12px 16px;font-size:12px;color:var(--red2);line-height:1.6;margin-bottom:12px;animation:slideDown .3s ease}.summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}.summary-item{background:#111827f2;border:1px solid rgba(255,255,255,.07);border-radius:22px;padding:18px 18px 16px;min-height:124px;position:relative;overflow:hidden;transition:border-color .2s,box-shadow .2s}.summary-item:before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(135deg,rgba(255,255,255,.06),transparent 36%)}.summary-item:hover{border-color:#60a5fa2e}.summary-item-label{font-size:12px;font-weight:700;letter-spacing:.4px;color:#94a3b8e0;margin-bottom:14px}.summary-item-value{font-family:var(--mono);font-size:clamp(20px,4.5vw,30px);font-weight:900;letter-spacing:-.8px;transition:color .3s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.summary-item-value.green{color:var(--green2)}.summary-item-value.red{color:var(--red2)}.summary-item-value.blue{color:var(--accent2)}.summary-item-value.orange{color:var(--orange)}.event-row{display:flex;justify-content:space-between;align-items:center;padding:14px 10px;border-radius:16px;margin-bottom:6px;gap:10px;transition:background .15s}.event-row:hover{background:#ffffff0a}.event-left{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.event-date{font-size:14px;font-weight:700;color:#dbeafe;font-family:var(--mono);min-width:40px}.event-day{font-size:11px;font-weight:700;min-width:16px}.event-tags{display:flex;flex-wrap:wrap;gap:3px;min-width:0}.event-tag{padding:5px 9px;border-radius:999px;background:#ffffff0f;border:1px solid rgba(255,255,255,.05);font-size:11px;color:#cbd5e1}.event-right{text-align:right;flex-shrink:0}.event-delta{font-size:18px;font-weight:800;font-family:var(--mono)}.event-bal{font-size:11px;margin-top:2px}.money-strong{font-variant-numeric:tabular-nums;letter-spacing:-.4px}.chart-container{background:#111827f2;border:1px solid rgba(255,255,255,.07);border-radius:24px;padding:18px;margin-bottom:12px;box-shadow:var(--soft-glow)}.chart-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;gap:10px}.chart-title{font-size:11px;font-weight:700;color:var(--text2);letter-spacing:1px;text-transform:uppercase}.chart-period-btns{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}.period-btn{min-height:36px;padding:0 14px;border-radius:999px;border:1px solid rgba(255,255,255,.07);background:#ffffff0a;color:var(--text3);font-size:11px;font-weight:600;cursor:pointer;font-family:var(--font);transition:all .2s}.period-btn.active{background:linear-gradient(135deg,#3b82f6eb,#2563ebeb);color:#fff;border-color:transparent;box-shadow:0 8px 22px #2563eb38}.chart-wrap{overflow-x:auto}.chart-wrap svg{display:block;min-width:320px;width:100%}.chart-legend{display:flex;gap:14px;margin-top:12px;flex-wrap:wrap}.legend-item{display:flex;align-items:center;gap:5px;font-size:10px;color:var(--text3)}.legend-dot{width:8px;height:8px;border-radius:50%}.forecast-table-wrap{overflow-x:auto}.forecast-table{width:100%;border-collapse:collapse;min-width:340px}.forecast-table th{font-size:9px;color:var(--text3);text-align:center;padding:8px 6px;border-bottom:1px solid var(--border);font-weight:700;letter-spacing:.5px;position:sticky;top:0;background:var(--bg2);z-index:1}.forecast-table td{font-size:11px;padding:8px 6px;border-bottom:1px solid rgba(30,41,59,.5);font-family:var(--mono);transition:background .15s}.forecast-table tr:hover td{background:#1e293b4d}.forecast-table tr.danger td{background:#7f1d1d26}.forecast-table tr.income-row td{background:#052e1626}.forecast-table tr.month-header td{background:var(--bg3);color:var(--text2);font-size:10px;font-weight:700;text-align:center;padding:6px;font-family:var(--font);letter-spacing:1px}.forecast-table .col-date{color:var(--text2);font-size:10px}.forecast-table .col-day{font-size:10px;text-align:center}.forecast-table .col-day.sun{color:var(--red2)}.forecast-table .col-day.sat{color:var(--accent2)}.forecast-table .col-in{color:var(--green2);text-align:right}.forecast-table .col-out{color:var(--red2);text-align:right}.forecast-table .col-bal{text-align:right;font-weight:500}.forecast-table .col-bal.danger{color:var(--red2)}.forecast-table .col-status{font-size:12px;text-align:center;font-family:var(--font)}.entry-group-label{font-size:11px;color:var(--text3);letter-spacing:1px;text-transform:uppercase;padding:0 2px;margin:14px 0 8px;display:flex;align-items:center;gap:8px}.entry-group-label:after{content:"";flex:1;height:1px;background:var(--border)}.entry-item{background:linear-gradient(180deg,#ffffff09,#ffffff05),#0f172ab8;border:1px solid rgba(255,255,255,.07);border-radius:18px;padding:16px;margin-bottom:6px;display:flex;justify-content:space-between;align-items:center;gap:10px;transition:border-color .2s,transform .2s;animation:fadeIn .3s ease}.entry-item:hover{border-color:#60a5fa2e;transform:translate(2px)}.entry-left{display:flex;align-items:center;gap:12px;flex:1;min-width:0}.entry-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0;box-shadow:0 0 6px currentColor}.entry-info{min-width:0}.entry-name{font-size:15px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.entry-meta{font-size:12px;color:var(--text3);margin-top:3px;display:flex;align-items:center;gap:5px;flex-wrap:wrap}.entry-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.entry-amount{font-family:var(--mono);font-size:18px;font-weight:800}.entry-amount.income{color:var(--green2)}.entry-amount.expense{color:var(--red2)}.entry-amount.halbu-h{color:var(--accent2)}.entry-amount.halbu-k{color:var(--orange)}.icon-btn{background:none;border:none;cursor:pointer;padding:7px;width:34px;height:34px;border-radius:12px;transition:all .2s;display:flex;align-items:center;justify-content:center}.icon-btn:hover{background:var(--bg3)}.icon-btn.edit{color:var(--accent2)}.icon-btn.del{color:var(--red2)}.icon-btn:active{transform:scale(.9)}.badge{display:inline-flex;align-items:center;padding:2px 7px;border-radius:20px;font-size:9px;font-weight:700}.badge.hyundai{background:#3b82f626;color:var(--accent2);border:1px solid rgba(59,130,246,.2)}.badge.kookmin{background:#f9731626;color:var(--orange);border:1px solid rgba(249,115,22,.2)}.badge.halbu{background:var(--bg3);color:var(--text2)}.badge.ended{background:var(--bg3);color:var(--text3);text-decoration:line-through}.form-overlay{position:fixed;inset:0;z-index:200;background:#000000bf;display:flex;align-items:flex-end;animation:fadeIn .2s ease}.form-sheet{width:100%;max-width:640px;margin:0 auto;background:linear-gradient(180deg,#111827fa,#0f172afa);border-radius:24px 24px 0 0;border:1px solid rgba(255,255,255,.08);padding:24px 20px calc(20px + env(safe-area-inset-bottom));animation:slideUp .3s ease;max-height:90dvh;overflow-y:auto;box-shadow:0 -10px 40px #00000040}.form-handle{width:40px;height:4px;border-radius:2px;background:var(--border2);margin:0 auto 20px}.form-sheet-title{font-size:18px;font-weight:800;margin-bottom:20px}.type-toggle{display:flex;gap:6px;margin-bottom:16px}.type-btn{flex:1;padding:11px;border-radius:12px;font-size:13px;font-weight:700;cursor:pointer;font-family:var(--font);transition:all .2s}.type-btn.income-active{background:#10b98133;color:var(--green2);border:1px solid rgba(16,185,129,.3)}.type-btn.expense-active{background:#ef444433;color:var(--red2);border:1px solid rgba(239,68,68,.3)}.type-btn.inactive{background:var(--bg3);color:var(--text3);border:1px solid transparent}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}.form-label{font-size:12px;color:var(--text3);margin-bottom:5px;font-weight:600}.form-input,.form-select{width:100%;background:#050b198c;border:1px solid rgba(255,255,255,.08);color:var(--text);border-radius:12px;padding:11px 13px;font-size:14px;outline:none;font-family:var(--font);-webkit-appearance:none;appearance:none;transition:border-color .2s;min-height:48px}.form-input:focus,.form-select:focus{border-color:#60a5fa75;box-shadow:0 0 0 4px #3b82f61f}.form-actions{display:flex;gap:10px;margin-top:16px}.btn-save{flex:1;padding:14px;border-radius:14px;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;font-size:15px;font-weight:700;box-shadow:0 12px 28px #2563eb47;border:1px solid rgba(255,255,255,.1)}.btn-cancel{padding:14px 20px;border-radius:14px;border:1px solid rgba(255,255,255,.08);background:#ffffff0d;color:var(--text2);cursor:pointer;font-size:14px;font-family:var(--font);transition:all .2s}.btn-add-entry{width:100%;padding:14px;border-radius:14px;border:1.5px dashed var(--border);background:transparent;color:var(--accent2);font-size:14px;font-weight:600;cursor:pointer;margin-bottom:8px;font-family:var(--font);transition:all .2s;display:flex;align-items:center;justify-content:center;gap:8px}.btn-add-entry:hover{border-color:var(--accent);color:var(--accent);background:#3b82f60d}.card-month-item{background:var(--card-grad),#0f172ab3;border:1px solid rgba(255,255,255,.07);border-radius:22px;padding:18px;margin-bottom:8px;transition:border-color .2s,transform .2s}.card-month-item.current{border-color:var(--accent)}.card-month-item:hover{transform:translateY(-1px)}.card-month-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;gap:10px}.card-month-label{font-size:15px;font-weight:800}.card-month-total{font-family:var(--mono);font-size:13px;color:var(--red2)}.card-inputs{display:grid;grid-template-columns:1fr 1fr;gap:10px}.card-input-label{font-size:9px;margin-bottom:4px;font-weight:700}.card-input-label.hyundai{color:var(--accent2)}.card-input-label.kookmin{color:var(--orange)}.card-num-input{width:100%;background:#050b198c;border:1px solid rgba(255,255,255,.08);color:var(--text);border-radius:10px;padding:9px 11px;font-size:13px;font-family:var(--mono);text-align:right;outline:none;transition:border-color .2s;min-height:44px}.card-num-input:focus{border-color:var(--accent)}.monthly-chart-bar{display:flex;flex-direction:column;gap:6px}.bar-row{display:flex;align-items:center;gap:8px}.bar-label{font-size:11px;color:var(--text3);min-width:28px;text-align:right}.bar-track{flex:1;height:8px;background:var(--bg3);border-radius:4px;overflow:hidden}.bar-fill{height:100%;border-radius:4px;transition:width .8s cubic-bezier(.4,0,.2,1)}.bar-fill.income{background:linear-gradient(90deg,var(--green),var(--green2))}.bar-fill.expense{background:linear-gradient(90deg,var(--red),var(--red2))}.bar-value{font-size:11px;font-family:var(--mono);color:var(--text2);min-width:44px;text-align:right}#ledger-view-calendar>.card{padding-left:8px;padding-right:8px}.ledger-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;margin-bottom:6px}.ledger-weekdays div{text-align:center;font-size:11px;color:var(--text3);font-weight:700;padding:4px 0}.ledger-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.ledger-day{min-height:84px;border:1px solid rgba(255,255,255,.07);background:linear-gradient(180deg,#ffffff0a,#ffffff05),#0f172ab8;border-radius:10px;padding:5px 4px;cursor:pointer;transition:transform .15s,border-color .15s;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}.ledger-day:hover{border-color:#60a5fa33;transform:translateY(-1px)}.ledger-day.empty{background:transparent;border:1px dashed rgba(45,74,122,.25);cursor:default}.ledger-day.today{border-color:var(--accent);box-shadow:0 0 0 1px #60a5fa57 inset,0 12px 24px #2563eb24}.ledger-day.selected{background:linear-gradient(180deg,#3b82f62e,#3b82f614),#0f172ac7;border-color:var(--accent2)}.ledger-day-top{display:flex;justify-content:space-between;align-items:center}.ledger-day-num{font-size:13px;font-weight:800}.ledger-day-num.sun{color:var(--red2)}.ledger-day-num.sat{color:var(--accent2)}.ledger-day-amount{font-size:11px;font-weight:700;color:var(--orange);font-family:var(--mono);text-align:right;word-break:break-all}.ledger-toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px}.ledger-month-chip{min-width:160px;text-align:center;padding:12px 16px;border-radius:14px;background:linear-gradient(135deg,#3b82f62e,#2563eb14);border:1px solid rgba(96,165,250,.28);font-size:18px;font-weight:800;letter-spacing:-.3px;box-shadow:0 10px 28px #2563eb2e}.ledger-selected-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;background:#3b82f624;color:var(--accent3);font-size:11px;font-weight:700;margin-bottom:10px}.ledger-summary-hero{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;padding:14px 16px;border-radius:16px;background:linear-gradient(135deg,#f973161a,#3b82f614);border:1px solid rgba(255,255,255,.06)}.ledger-summary-hero strong{font-size:15px;color:var(--text);display:block}.ledger-summary-hero span{font-size:12px;color:var(--text2)}.ledger-editor-card{background:linear-gradient(180deg,#1e293bf5,#111827f5);border:1px solid rgba(59,130,246,.18);box-shadow:var(--shadow);border-radius:24px;padding:22px}.ledger-editor-actions{display:flex;gap:8px;margin-top:12px}.btn-ghost{background:#ffffff0a;color:var(--text);border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:12px 14px;font-size:13px;font-weight:700;font-family:var(--font);min-height:46px}.btn-ghost:hover{background:#ffffff14;border-color:#60a5fa33}.btn-primary{background:linear-gradient(135deg,var(--accent),#2563eb);color:#fff;border-radius:12px;padding:12px 18px;font-size:13px;font-weight:800;font-family:var(--font);box-shadow:0 8px 24px #3b82f640;border:1px solid rgba(255,255,255,.1)}.btn-primary:hover{box-shadow:0 12px 28px #2563eb54}.field{width:100%;background:#050b198c;border:1px solid rgba(255,255,255,.08);color:var(--text);border-radius:12px;padding:12px 14px;font-size:14px;outline:none;transition:border-color .2s;min-height:48px}.field:focus{border-color:#60a5fa73;box-shadow:0 0 0 4px #3b82f61f}.setting-row{display:flex;justify-content:space-between;align-items:center;padding:18px 0;border-bottom:1px solid rgba(255,255,255,.06);gap:12px}.setting-row:last-child{border-bottom:none}.setting-label{font-size:14px;font-weight:700;color:var(--text)}.setting-sub{font-size:12px;color:var(--text3);margin-top:3px}.setting-input{background:#050b198c;border:1px solid rgba(255,255,255,.08);color:var(--text);border-radius:10px;padding:8px 12px;font-size:13px;font-family:var(--mono);text-align:right;outline:none;width:130px;min-height:44px}.setting-input:focus{border-color:#60a5fa73}.settings-profile-card{margin-bottom:16px}.settings-profile-row{display:flex;align-items:center;gap:16px;margin-bottom:16px}.settings-profile-avatar{width:62px;height:62px;border-radius:50%;background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:22px;overflow:hidden;flex-shrink:0}.settings-profile-avatar img{width:100%;height:100%;object-fit:cover}.settings-profile-name{font-size:17px;font-weight:900;color:var(--text)}.settings-profile-email{font-size:12px;color:var(--text2);margin-top:4px;word-break:break-all}.settings-profile-provider{display:inline-flex;align-items:center;gap:5px;margin-top:8px;font-size:10px;font-weight:700;color:var(--text3);background:#ffffff0d;border:1px solid rgba(255,255,255,.08);padding:3px 10px;border-radius:999px}.settings-signout-btn{width:100%;min-height:48px;border-radius:14px;background:#ef44441a;border:1px solid rgba(239,68,68,.18);color:#fca5a5;font-size:14px;font-weight:700;display:flex;align-items:center;justify-content:center;gap:8px}.settings-signout-btn:active{background:#ef444433}.sync-badge{position:fixed;top:78px;left:50%;transform:translate(-50%);background:#0f172ae0;border:1px solid rgba(96,165,250,.28);color:#dbeafe;padding:10px 18px;border-radius:999px;font-size:11px;z-index:999;pointer-events:none;opacity:0;transition:opacity .4s;white-space:nowrap;box-shadow:0 18px 36px #02081752}.sync-badge.visible{opacity:1}.filter-tabs{display:flex;gap:6px;margin-bottom:14px;overflow-x:auto;padding-bottom:2px}.filter-tab{min-height:38px;padding:0 14px;border-radius:999px;border:1px solid rgba(255,255,255,.07);background:#ffffff0a;color:var(--text3);font-size:12px;font-weight:600;cursor:pointer;font-family:var(--font);transition:all .2s;white-space:nowrap;flex-shrink:0}.filter-tab.active{background:linear-gradient(135deg,#3b82f6eb,#2563ebeb);border-color:transparent;color:#fff;box-shadow:0 8px 22px #2563eb38}.skeleton{background:linear-gradient(90deg,var(--bg3) 25%,var(--bg4) 50%,var(--bg3) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:8px}.empty-state{text-align:center;padding:48px 24px;color:var(--text3);font-size:13px;line-height:1.7;display:flex;flex-direction:column;align-items:center;gap:10px}.empty-state-icon{font-size:44px;opacity:.7}.empty-state-title{font-size:15px;font-weight:800;color:var(--text2)}.empty-state-desc{font-size:13px;color:var(--text3);line-height:1.7;max-width:220px}.empty-state-hint{margin-top:4px;padding:7px 14px;border-radius:999px;background:#60a5fa1a;border:1px solid rgba(96,165,250,.2);font-size:12px;font-weight:700;color:var(--accent2)}.app-loading-overlay{position:fixed;inset:0;background:#020617cc;display:flex;align-items:center;justify-content:center;z-index:5000;opacity:0;pointer-events:none;transition:opacity .25s ease}.app-loading-overlay.show{opacity:1;pointer-events:auto}.app-loading-box{min-width:160px;padding:22px 20px;border-radius:24px;background:#0f172aeb;border:1px solid rgba(255,255,255,.08);color:#fff;display:flex;flex-direction:column;align-items:center;gap:12px;box-shadow:0 20px 50px #00000059}.app-loading-spinner{width:28px;height:28px;border-radius:50%;border:3px solid rgba(255,255,255,.18);border-top-color:#60a5fa;animation:spin .8s linear infinite}.sheet-overlay{position:fixed;inset:0;z-index:3000;background:#000000a6;display:flex;align-items:flex-end;justify-content:center;opacity:0;pointer-events:none;transition:opacity .24s ease}.sheet-overlay.show{opacity:1;pointer-events:auto}.sheet-overlay.ai-fullscreen{align-items:flex-end;padding-top:env(safe-area-inset-top)}.sheet-panel{width:min(100%,560px);background:linear-gradient(180deg,#0f172afa,#0f172af0);border:1px solid rgba(255,255,255,.08);border-radius:28px 28px 0 0;padding:18px 18px calc(20px + env(safe-area-inset-bottom));box-shadow:0 -10px 40px #00000040;transform:translateY(28px);transition:transform .28s cubic-bezier(.2,.8,.2,1)}.sheet-overlay.show .sheet-panel{transform:translateY(0)}.sheet-handle{width:42px;height:5px;border-radius:999px;background:#ffffff2e;margin:0 auto 16px}.sheet-title{font-size:20px;font-weight:900;color:var(--text);margin-bottom:6px}.sheet-sub{font-size:13px;color:var(--text2);margin-bottom:18px;line-height:1.5}.sheet-input{width:100%;min-height:52px;border-radius:16px;border:1px solid rgba(255,255,255,.08);background:#ffffff0a;color:var(--text);padding:0 16px;font-size:16px;font-family:var(--mono);outline:none;margin-bottom:16px}.sheet-input:focus{border-color:#60a5fa73;box-shadow:0 0 0 4px #3b82f61f}.sheet-current-balance{padding:14px 16px;border-radius:16px;background:#ffffff0a;border:1px solid rgba(255,255,255,.06);color:var(--text2);margin-bottom:14px;font-size:14px}.sheet-current-balance strong{color:var(--text);font-family:var(--mono)}.sheet-actions{display:flex;gap:10px}.sheet-primary-btn,.sheet-secondary-btn,.sheet-danger-btn,.sheet-close-btn,.sheet-menu-btn{border:none;font-family:var(--font);cursor:pointer}.sheet-primary-btn,.sheet-secondary-btn,.sheet-danger-btn{flex:1;min-height:50px;border-radius:16px;font-size:15px;font-weight:800}.sheet-primary-btn{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff}.sheet-secondary-btn{background:#ffffff0d;color:var(--text);border:1px solid rgba(255,255,255,.07)}.sheet-danger-btn{background:#ef444424;color:#fca5a5;border:1px solid rgba(239,68,68,.18)}.sheet-close-btn{width:100%;min-height:48px;border-radius:16px;margin-top:14px;background:#ffffff0d;color:var(--text);border:1px solid rgba(255,255,255,.07)}.sheet-profile-top{display:flex;align-items:center;gap:14px;margin-bottom:18px}.sheet-profile-avatar{width:58px;height:58px;border-radius:50%;background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:20px;overflow:hidden}.sheet-profile-avatar img{width:100%;height:100%;object-fit:cover}.sheet-profile-name{font-size:18px;font-weight:900;color:var(--text)}.sheet-profile-email{font-size:13px;color:var(--text2);margin-top:4px}.sheet-menu-list{display:flex;flex-direction:column;gap:8px}.sheet-menu-btn{width:100%;min-height:52px;border-radius:16px;padding:0 16px;background:#ffffff0a;color:var(--text);border:1px solid rgba(255,255,255,.07);display:flex;align-items:center;justify-content:space-between;font-size:14px;font-weight:700}.sheet-menu-btn.danger{color:#fca5a5}.home-grid,.forecast-grid,.cards-grid,.settings-grid{display:block}@media (min-width: 640px){.page{padding:calc(72px + env(safe-area-inset-top,0px)) 20px 0}.summary-grid{grid-template-columns:repeat(4,1fr)}.balance-amount{font-size:40px}.topbar{padding:calc(env(safe-area-inset-top) + 12px) 26px 12px}}@media (min-width: 1100px){body{padding-bottom:0;padding-left:108px}.bottom-nav{position:fixed;inset:84px auto auto 16px;width:76px;height:calc(100vh - 104px);max-height:720px;padding:8px 0;flex-direction:column;justify-content:flex-start;gap:6px;border:1px solid rgba(30,58,95,.55);border-radius:22px;background:#0a0f1ee6;box-shadow:var(--shadow-sm)}.nav-btn{flex:0 0 auto;padding:12px 0;gap:6px}.nav-btn span{font-size:11px}.nav-indicator{top:50%;left:0;right:auto;width:3px;height:30px;border-radius:0 3px 3px 0;transform:translateY(-50%)}.page{max-width:1480px;padding:calc(78px + env(safe-area-inset-top,0px)) 24px 28px}.home-grid{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(380px,.95fr);gap:16px;align-items:start}.forecast-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(360px,.9fr);gap:16px;align-items:start}.cards-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:16px;align-items:start}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}#page-entries{max-width:1040px}.sync-badge{top:78px}#fab-speed-dial{bottom:28px;right:28px}}@media (max-width: 640px){.topbar{padding:calc(env(safe-area-inset-top) + 10px) 16px 12px}.topbar-title{font-size:18px}.balance-card{padding:22px 18px;border-radius:24px}.summary-item{min-height:108px}.summary-item-value{font-size:24px}.event-delta{font-size:15px}.ledger-toolbar{flex-wrap:wrap}.ledger-month-chip{order:-1;width:100%}}body.light-theme{background:#edf3fa}body.light-theme .topbar{background:#edf3fa;border-bottom-color:#2563eb1f}body.light-theme .card,body.light-theme .chart-container,body.light-theme .summary-item,body.light-theme .balance-card,body.light-theme .card-month-item{background:#fff}body.light-theme .entry-item{background:#ffffffd9;border-color:#00000014}body.light-theme .entry-item:hover{border-color:#2563eb33}body.light-theme .sheet-panel{background:linear-gradient(180deg,#fff,#f5f8ff);border-color:#00000014}body.light-theme .forecast-table td{border-bottom-color:#cbd5e180}body.light-theme .forecast-table tr:hover td{background:#e2e8f059}body.light-theme .forecast-table tr.danger td{background:#fee2e280}body.light-theme .forecast-table tr.income-row td{background:#dcfce766}body.light-theme .balance-label{color:#1e40af}body.light-theme .balance-amount{color:#1e3a8a;text-shadow:0 2px 12px rgba(37,99,235,.18)}body.light-theme .balance-amount.danger{color:var(--red);text-shadow:0 2px 12px rgba(220,38,38,.18)}body.light-theme .balance-card-edit-chip{color:#1d4ed8;background:#2563eb14;border-color:#2563eb26}body.light-theme .topbar-balance{background:#0000000d;border-color:#0000001a}body.light-theme .event-date{color:var(--text)}body.light-theme .event-tag{background:#0000000a;border-color:#00000014;color:var(--text2)}body.light-theme .event-row:hover{background:#e2e8f066}body.light-theme .card-title{color:var(--text2)}body.light-theme .icon-btn{background:#0000000a;border-color:#00000014}body.light-theme .icon-btn:hover{background:#00000014}body.light-theme .info-chip{background:#0000000d;border-color:#0000001a}body.light-theme .info-chip.warning{background:#f973161a;border-color:#f9731640}body.light-theme .info-chip.success{background:#10b9811a;border-color:#10b98140}body.light-theme .week-chip,body.light-theme .stat-item,body.light-theme .entries-summary-item{background:#0000000a;border-color:#00000012}body.light-theme:before{opacity:0}body.light-theme .card-num-input{background:#0000000a;border-color:#0000001a;color:var(--text)}body.light-theme .card-num-input:focus{border-color:var(--accent);background:#fff}body.light-theme .ledger-day{background:#ffffffd9;border-color:#00000014}body.light-theme .ledger-day:hover{border-color:#2563eb40}body.light-theme .ledger-day.today{border-color:var(--accent);box-shadow:0 0 0 1px #2563eb4d inset}body.light-theme .ledger-day.selected{background:#2563eb12;border-color:var(--accent)}body.light-theme .ledger-editor-card{background:linear-gradient(180deg,#fff,#f5f8ff);border-color:#2563eb26}body.light-theme .field,body.light-theme .form-input,body.light-theme .form-select,body.light-theme .setting-input{background:#ffffffe6;border-color:#0000001f;color:var(--text)}body.light-theme .field:focus,body.light-theme .form-input:focus,body.light-theme .form-select:focus{border-color:var(--accent);background:#fff}body.light-theme .sheet-input{background:#0000000a;border-color:#0000001f;color:var(--text)}body.light-theme .sheet-input:focus{border-color:var(--accent);background:#fff}body.light-theme .btn-ghost{background:#0000000a;border-color:#0000001a;color:var(--text)}body.light-theme .btn-ghost:hover{background:#00000014}body.light-theme .filter-tab,body.light-theme .period-btn{background:#0000000a;border-color:#00000014;color:var(--text2)}body.light-theme .ledger-month-chip{background:linear-gradient(135deg,#2563eb1a,#2563eb0d);border-color:#2563eb33}body.light-theme .goal-card{background:#ffffffe6;border-color:#00000014}body.light-theme .goal-monthly-req{background:#2563eb0f;border-color:#2563eb1f}body.light-theme .report-mom-item{background:#0000000a;border-color:#00000012}body.light-theme .balance-card{background:linear-gradient(-45deg,#dbeafe,#ede9fe,#dbeafe,#e0f2fe);background-size:400% 400%;animation:cardGradientDrift 12s ease infinite;border-color:#2563eb33}body.light-theme .balance-card:before{background:radial-gradient(circle,rgba(99,102,241,.12) 0%,transparent 70%)}body.light-theme .balance-card:after{background:radial-gradient(circle,rgba(14,165,233,.1) 0%,transparent 70%)}body.light-theme .bottom-nav{background:#ffffffeb;border-top-color:#0000001a;border-color:#0000001a}body.light-theme .ledger-sub-tab{background:#0000000a;border-color:#00000014;color:var(--text2)}body.light-theme .ledger-cal-sum-item{background:#fff;border-color:#00000014}body.light-theme .ledger-cat-group-btn{background:#0000000a;border-color:#00000014;color:var(--text2)}body.light-theme .ledger-cat-group-btn.active{background:#2563eb1a;border-color:#2563eb40;color:var(--accent)}body.light-theme .ledger-cat-chip{background:#0000000a;border-color:#00000014;color:var(--text2)}body.light-theme .lday-summary-item,body.light-theme .lstat-summary-item{background:#fff;border-color:#00000014}body.light-theme .lday-item{border-bottom-color:#0000000f}body.light-theme .ledger-day.heat-1{background:#f9731612}body.light-theme .ledger-day.heat-2{background:#ef44441f}body.light-theme .ledger-day.heat-3{background:#dc26262e}body.light-theme .ledger-day.heat-4{background:#b91c1c3d;border-color:#ef44444d}body.light-theme .card{background:#ffffffeb;border-color:#00000012}body.light-theme .form-sheet{background:linear-gradient(180deg,#fff,#f5f8ff)}.ledger-sub-tabs{display:flex;gap:6px;margin-bottom:12px}.ledger-sub-tab{flex:1;min-height:40px;border-radius:12px;border:1px solid rgba(255,255,255,.07);background:#ffffff0a;color:var(--text3);font-size:13px;font-weight:700;cursor:pointer;font-family:var(--font);transition:all .2s}.ledger-sub-tab.active{background:linear-gradient(135deg,#3b82f6e6,#2563ebe6);border-color:transparent;color:#fff;box-shadow:0 8px 22px #2563eb38}.ledger-cal-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:12px}.ledger-cal-sum-item{padding:10px 6px;border-radius:12px;background:var(--bg3);border:1px solid var(--border);text-align:center}.ledger-cal-sum-lbl{display:block;font-size:9px;color:var(--text3);font-weight:700;margin-bottom:3px}.ledger-cal-sum-val{display:block;font-size:12px;font-family:var(--mono);font-weight:800;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ledger-cal-sum-val.red{color:var(--red2)}.ledger-cal-sum-val.green{color:var(--green2)}.ledger-cal-sum-val.orange{color:var(--orange)}.ledger-day-amounts{display:flex;flex-direction:column;gap:1px;margin-top:3px;min-width:0;overflow:hidden}.ledger-day-expense{font-size:10px;font-weight:700;color:var(--red2);font-family:var(--mono);text-align:right;word-break:break-all;line-height:1.2}.ledger-day-income{font-size:9px;font-weight:700;color:var(--green2);font-family:var(--mono);text-align:right;word-break:break-all;line-height:1.2}.ledger-day.heat-1{background:linear-gradient(180deg,#f9731614,#f973160a),#0f172ab8}.ledger-day.heat-2{background:linear-gradient(180deg,#ef444424,#ef444412),#0f172ab8}.ledger-day.heat-3{background:linear-gradient(180deg,#dc262638,#dc26261a),#0f172ab8}.ledger-day.heat-4{background:linear-gradient(180deg,#b91c1c4d,#b91c1c24),#0f172ab8;border-color:#ef444447}.sheet-panel-tall{max-height:85dvh;display:flex;flex-direction:column;overflow:hidden}#ledger-day-items-list{overflow-y:auto;max-height:50dvh}.lday-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:4px}.lday-summary-item{padding:10px 8px;border-radius:12px;background:var(--bg3);border:1px solid var(--border);text-align:center}.lday-lbl{display:block;font-size:9px;color:var(--text3);font-weight:700;margin-bottom:3px}.lday-val{display:block;font-size:14px;font-family:var(--mono);font-weight:800;color:var(--text)}.lday-val.red{color:var(--red2)}.lday-val.green{color:var(--green2)}.lday-item{display:flex;align-items:center;gap:8px;padding:12px 6px;border-bottom:1px solid rgba(255,255,255,.05)}.lday-item:last-child{border-bottom:none}.lday-item-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.lday-item-info{flex:1;min-width:0}.lday-item-cat{font-size:13px;font-weight:700;color:var(--text)}.lday-item-memo{font-size:11px;color:var(--text3);margin-left:5px}.lday-item-amt{font-size:14px;font-family:var(--mono);font-weight:800;flex-shrink:0}.lday-item-amt.red{color:var(--red2)}.lday-item-amt.green{color:var(--green2)}.ledger-cat-groups{display:flex;gap:5px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none;margin-bottom:4px}.ledger-cat-groups::-webkit-scrollbar{display:none}.ledger-cat-group-btn{flex-shrink:0;padding:6px 12px;border-radius:999px;border:1px solid rgba(255,255,255,.07);background:#ffffff0a;color:var(--text3);font-size:11px;font-weight:600;cursor:pointer;font-family:var(--font);transition:all .2s;white-space:nowrap}.ledger-cat-group-btn.active{background:#3b82f62e;border-color:#60a5fa66;color:var(--accent3)}.ledger-cat-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:2px}.ledger-cat-chip{padding:7px 13px;border-radius:999px;border:1px solid rgba(255,255,255,.08);background:#ffffff0a;color:var(--text2);font-size:12px;font-weight:600;cursor:pointer;font-family:var(--font);transition:all .18s}.ledger-cat-chip.active{font-weight:800}.sheet-overlay-top{z-index:3500}.lstat-summary-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.lstat-summary-item{padding:12px 8px;border-radius:14px;background:var(--bg3);border:1px solid var(--border);text-align:center}.lstat-summary-label{font-size:9px;color:var(--text3);font-weight:700;margin-bottom:5px;letter-spacing:.4px}.lstat-summary-val{font-size:16px;font-family:var(--mono);font-weight:900;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lstat-summary-val.red{color:var(--red2)}.lstat-summary-val.green{color:var(--green2)}.lstat-cat-row{display:flex;align-items:center;gap:7px;padding:4px 0}.lstat-cat-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.lstat-cat-name{font-size:11px;color:var(--text2);min-width:56px}.lstat-cat-bar{flex:1;height:5px;background:#ffffff12;border-radius:3px;overflow:hidden}.lstat-cat-amt{font-size:11px;font-family:var(--mono);font-weight:700;color:var(--text);min-width:52px;text-align:right}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border2);border-radius:2px}.info-chip{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;border-radius:999px;background:#ffffff0f;border:1px solid rgba(255,255,255,.08);font-size:11px;font-weight:700;color:var(--text);white-space:nowrap}.info-chip.warning{border-color:#f9731659;color:var(--orange);background:#f9731617}.info-chip.success{border-color:#10b98159;color:var(--green2);background:#10b98117}.summary-item-sub{font-size:10px;color:var(--text3);margin-top:5px;font-weight:600;letter-spacing:.2px}.budget-bar{height:3px;border-radius:2px;background:#ffffff14;margin-top:8px;overflow:hidden}.budget-bar-fill{height:100%;border-radius:2px;transition:width .6s ease}.weekly-summary{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px;margin-bottom:14px;scrollbar-width:none}.weekly-summary::-webkit-scrollbar{display:none}.week-chip{flex-shrink:0;padding:8px 14px;border-radius:12px;background:var(--bg3);border:1px solid var(--border);text-align:center;min-width:60px}.week-chip-label{font-size:9px;color:var(--text3);font-weight:700;margin-bottom:3px;letter-spacing:.5px;text-transform:uppercase}.week-chip-value{font-size:12px;font-family:var(--mono);font-weight:800;color:var(--red2)}.week-chip-value.zero{color:var(--text3)}.entries-summary{display:flex;gap:8px;margin-bottom:12px}.entries-summary-item{flex:1;min-width:0;padding:10px 12px;border-radius:14px;background:var(--bg3);border:1px solid var(--border)}.entries-summary-label{font-size:9px;color:var(--text3);font-weight:700;margin-bottom:3px;letter-spacing:.5px;text-transform:uppercase}.entries-summary-value{font-size:15px;font-family:var(--mono);font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.danger-day-row{display:flex;justify-content:space-between;align-items:center;padding:7px 0;border-bottom:1px solid var(--border);font-size:12px}.danger-day-row:last-child{border-bottom:none}.danger-day-date{color:var(--text2);font-family:var(--mono);font-weight:700}.danger-day-balance{color:var(--red2);font-family:var(--mono);font-weight:800}.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.stat-item{padding:12px;background:var(--bg3);border-radius:12px;border:1px solid var(--border)}.stat-label{font-size:9px;color:var(--text3);font-weight:700;margin-bottom:5px;letter-spacing:.5px;text-transform:uppercase}.stat-value{font-size:18px;font-family:var(--mono);font-weight:900;color:var(--text);white-space:nowrap;overflow:hidden}.goal-card{background:var(--card-grad),#0f172ab3;border:1px solid rgba(255,255,255,.07);border-radius:22px;padding:18px;margin-bottom:10px;transition:border-color .2s,transform .2s;animation:fadeIn .3s ease}.goal-card:hover{transform:translateY(-2px);border-color:#60a5fa2e}.goal-card-top{display:flex;align-items:center;gap:12px;margin-bottom:12px}.goal-emoji{font-size:28px;flex-shrink:0}.goal-info{flex:1;min-width:0}.goal-name{font-size:16px;font-weight:800;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.goal-date{font-size:11px;color:var(--text3);margin-top:3px}.goal-amounts{display:flex;align-items:baseline;gap:2px;margin-bottom:8px}.goal-progress-track{height:6px;border-radius:3px;background:#ffffff14;overflow:hidden;margin-bottom:8px}.goal-progress-fill{height:100%;border-radius:3px;transition:width .8s cubic-bezier(.4,0,.2,1)}.goal-monthly-req{font-size:11px;color:var(--text3);padding:6px 10px;border-radius:8px;background:#3b82f612;border:1px solid rgba(59,130,246,.12)}.goal-monthly-req strong{color:var(--accent2)}.ai-insight-card{border:1px solid rgba(99,102,241,.25);background:#6366f112}#fab-speed-dial{position:fixed;bottom:calc(72px + env(safe-area-inset-bottom));right:18px;width:52px;height:52px;z-index:2000}.fab-main-btn{position:absolute;bottom:0;right:0;width:52px;height:52px;border-radius:50%;background:linear-gradient(135deg,#6366f1,#8b5cf6);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 20px #6366f180;padding:0;transition:box-shadow .2s}.fab-main-btn:active{transform:scale(.94)}.fab-main-icon{font-size:28px;color:#fff;font-weight:300;line-height:1;transition:transform .25s cubic-bezier(.34,1.56,.64,1);display:block;pointer-events:none}#fab-speed-dial.open .fab-main-icon{transform:rotate(45deg)}.fab-sub{position:absolute;right:0;display:flex;align-items:center;gap:10px;opacity:0;pointer-events:none;transition:opacity .2s ease,transform .25s cubic-bezier(.34,1.56,.64,1)}#fab-sub-ledger{bottom:66px;transform:translateY(16px)}#fab-sub-chat{bottom:124px;transform:translateY(16px)}#fab-speed-dial.open .fab-sub{opacity:1;pointer-events:auto;transform:translateY(0)}#fab-speed-dial.open #fab-sub-ledger{transition-delay:0s}#fab-speed-dial.open #fab-sub-chat{transition-delay:.06s}.fab-sub-label{font-size:11px;font-weight:700;color:#fff;background:#0009;padding:4px 9px;border-radius:8px;white-space:nowrap;backdrop-filter:blur(6px);pointer-events:none}.fab-sub-btn{width:44px;height:44px;border-radius:50%;background:var(--bg2);border:1px solid var(--border2);display:flex;align-items:center;justify-content:center;font-size:20px;cursor:pointer;box-shadow:0 2px 12px #0000004d;transition:transform .15s;flex-shrink:0}.fab-sub-btn:active{transform:scale(.9)}#fab-backdrop{position:fixed;inset:0;z-index:1999;display:none}.report-cat-legend-row{display:flex;align-items:center;gap:7px;padding:3px 0}.report-mom-item{padding:12px;border-radius:14px;background:var(--bg3);border:1px solid var(--border)}.report-mom-label{font-size:10px;color:var(--text3);font-weight:700;margin-bottom:4px;letter-spacing:.4px}.report-mom-value{font-size:20px;font-family:var(--mono);font-weight:900}.report-mom-delta{font-size:11px;color:var(--text3);margin-top:3px;font-family:var(--mono)}.house-level-card{padding:16px 18px}.house-level-inner{display:flex;align-items:center;gap:14px;margin-bottom:10px}.house-emoji{font-size:44px;flex-shrink:0;animation:houseBounce .6s ease;display:block}.house-level-info{flex:1}.house-progress-track{height:8px;border-radius:4px;background:#ffffff14;overflow:hidden;margin-top:4px}.house-progress-fill{height:100%;border-radius:4px;background:linear-gradient(90deg,#6366f1,#8b5cf6);transition:width 1s ease}@keyframes houseBounce{0%{transform:scale(.8)}60%{transform:scale(1.1)}to{transform:scale(1)}}.streak-chip{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;border-radius:999px;background:#f973161f;border:1px solid rgba(249,115,22,.3);font-size:11px;font-weight:700;color:var(--orange)}.assets-list{display:flex;flex-direction:column;gap:10px}.asset-card{display:flex;align-items:center;gap:12px;padding:12px;border-radius:14px;background:var(--bg3);border:1px solid var(--border);transition:border-color .2s}.asset-card:hover{border-color:#60a5fa40}.asset-icon{font-size:26px;flex-shrink:0}.asset-info{flex:1;min-width:0}.asset-name{font-size:14px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.asset-amount{font-family:var(--mono);font-size:16px;font-weight:900;color:var(--text);white-space:nowrap}.purpose-tag{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;border:1px solid;font-size:10px;font-weight:700}.budget-cat-row{display:flex;align-items:center;gap:8px;padding:10px 0;border-bottom:1px solid var(--border)}.budget-cat-row:last-child{border-bottom:none}.budget-progress{height:6px;border-radius:3px;flex:1;background:#ffffff14;overflow:hidden;min-width:60px}.budget-progress-fill{height:100%;border-radius:3px;transition:width .5s}.budget-over{color:var(--red2);font-size:11px}.badge-grid{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.badge-item{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 12px;border-radius:14px;background:var(--bg3);border:1px solid var(--border);min-width:70px;text-align:center}.badge-item.earned{border-color:#6366f166;background:#6366f114}.badge-item.locked{opacity:.35;filter:grayscale(1)}.coin-particle{position:absolute;top:-30px;animation:coinFall 2.5s ease-in forwards}@keyframes coinFall{to{transform:translateY(110vh) rotate(720deg);opacity:0}}.goal-invite-code{font-family:var(--mono);font-size:20px;font-weight:900;letter-spacing:4px;padding:12px;border-radius:12px;background:var(--bg3);border:1px solid var(--border);text-align:center;color:var(--accent2)}.goal-invite-code-inline{font-family:var(--mono);font-size:12px;font-weight:900;letter-spacing:2px;color:var(--accent2);padding:2px 6px;border-radius:6px;background:#6366f11f;border:1px solid rgba(99,102,241,.25)}body.light-theme .asset-card,body.light-theme .badge-item{background:var(--bg3);border-color:var(--border)}body.light-theme .badge-item.earned{background:#6366f10f;border-color:#6366f14d}body.light-theme .house-progress-fill{background:linear-gradient(90deg,#4f46e5,#7c3aed)}body.light-theme .streak-chip{background:#ea580c1a;border-color:#ea580c40;color:var(--orange)}body.light-theme .fab-main-btn{box-shadow:0 4px 20px #6366f159}.topbar-balance-pill{display:flex;flex-direction:column;align-items:flex-end;gap:1px;cursor:pointer;padding:5px 10px;border-radius:14px;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);transition:background .2s}.topbar-balance-pill:active{background:#ffffff1a}.topbar-balance-pill-inner{display:flex;align-items:center;gap:4px}.topbar-balance-label{font-size:9px;color:var(--text3);font-weight:700;letter-spacing:.5px;text-transform:uppercase}.topbar-balance-icon{font-size:10px;opacity:.7}#topbar-balance{font-family:var(--mono);font-size:14px;font-weight:900;color:var(--text);letter-spacing:-.3px}.topbar-sub{font-size:9px;color:var(--text3);font-weight:600;letter-spacing:.8px;line-height:1;margin-bottom:1px}.topbar-title{font-size:18px;font-weight:900;color:var(--text);letter-spacing:2px;line-height:1;font-family:var(--mono)}.topbar-left{display:flex;flex-direction:column;justify-content:center}.balance-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.balance-card-label{font-size:11px;color:var(--text3);font-weight:700;letter-spacing:.4px;text-transform:uppercase}.balance-eye-btn{background:none;border:none;cursor:pointer;padding:6px;border-radius:50%;color:var(--text3);display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s;flex-shrink:0}.balance-eye-btn:hover{background:#ffffff14;color:var(--text)}.balance-eye-btn:active{background:#ffffff24}.balance-display-wrap{position:relative;display:flex;align-items:center;min-height:48px}.balance-amount{font-family:var(--mono);font-size:36px;font-weight:900;color:var(--text);letter-spacing:-1px;line-height:1;transition:opacity .2s}.balance-hidden-mask{display:flex;flex-direction:column;align-items:flex-start;gap:2px}.balance-mask-dots{font-size:28px;color:var(--text3);letter-spacing:4px;line-height:1}.balance-mask-hint{font-size:10px;color:var(--text3);font-weight:600;letter-spacing:.5px}body.light-theme .balance-eye-btn:hover{background:#0000000f}.report-summary-header{font-size:11px;font-weight:700;color:var(--text3);letter-spacing:.5px;text-transform:uppercase;margin-bottom:8px}.report-header-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.report-header-item{background:var(--bg3);border-radius:14px;padding:12px 10px;text-align:center;border:1px solid var(--border)}.report-header-label{font-size:10px;color:var(--text3);font-weight:700;letter-spacing:.3px;margin-bottom:4px}.report-header-val{font-family:var(--mono);font-size:16px;font-weight:900;line-height:1}.report-cat-card{cursor:pointer;transition:border-color .2s,transform .15s}.report-cat-card:hover{border-color:#60a5fa4d;transform:translateY(-1px)}.report-cat-card:active{transform:scale(.99)}.report-cat-card-hint{font-size:10px;color:var(--text3);margin-top:8px;text-align:center}.report-cat-modal-overlay{position:fixed;inset:0;background:#000000b8;z-index:9000;display:flex;align-items:flex-end;justify-content:center;opacity:0;pointer-events:none;transition:opacity .25s}.report-cat-modal-overlay.open{opacity:1;pointer-events:all}.report-cat-modal-panel{width:100%;max-width:520px;max-height:88vh;overflow-y:auto;background:var(--bg2);border-radius:28px 28px 0 0;padding:24px 20px calc(28px + env(safe-area-inset-bottom));border-top:1px solid rgba(255,255,255,.08);transform:translateY(100%);transition:transform .3s cubic-bezier(.4,0,.2,1)}.report-cat-modal-overlay.open .report-cat-modal-panel{transform:translateY(0)}.report-cat-modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.report-cat-modal-title{font-size:18px;font-weight:900;color:var(--text)}.report-cat-modal-close{background:none;border:none;cursor:pointer;color:var(--text3);padding:6px;border-radius:50%;display:flex;align-items:center;justify-content:center}.report-cat-modal-close:hover{background:#ffffff14;color:var(--text)}.report-modal-cat-list{margin-top:16px;display:flex;flex-direction:column;gap:6px}.report-modal-cat-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;background:var(--bg3);border:1px solid var(--border)}.report-modal-cat-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.report-modal-cat-name{flex:1;font-size:13px;font-weight:700;color:var(--text)}.report-modal-cat-amount{font-family:var(--mono);font-size:13px;font-weight:900;color:var(--text)}.report-modal-cat-pct{font-size:11px;color:var(--text3);min-width:32px;text-align:right}.report-top-item{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--border)}.report-top-item:last-child{border-bottom:none}.report-top-rank{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:900;flex-shrink:0;background:#ffffff14;color:var(--text3)}.report-top-rank.gold{background:#eab3082e;color:#eab308}.report-top-rank.silver{background:#94a3b82e;color:#94a3b8}.report-top-rank.bronze{background:#b453092e;color:#b45309}.report-top-info{flex:1;min-width:0}.report-top-memo{font-size:12px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.report-top-cat{font-size:10px;color:var(--text3);margin-top:1px}.report-top-amount{font-family:var(--mono);font-size:14px;font-weight:900;color:var(--red2);flex-shrink:0}.report-health-circle{display:flex;align-items:center;justify-content:center;gap:20px;padding:12px 0 8px}.report-health-score-wrap{display:flex;flex-direction:column;align-items:center;gap:4px}.report-health-score-num{font-family:var(--mono);font-size:48px;font-weight:900;line-height:1}.report-health-score-label{font-size:11px;color:var(--text3);font-weight:700;letter-spacing:.5px}.report-health-items{flex:1;display:flex;flex-direction:column;gap:8px}.report-health-row{display:flex;align-items:center;gap:8px}.report-health-row-label{font-size:11px;color:var(--text3);width:60px;flex-shrink:0}.report-health-bar-wrap{flex:1;height:5px;border-radius:3px;background:#ffffff14;overflow:hidden}.report-health-bar{height:100%;border-radius:3px;transition:width .7s ease}.report-health-row-val{font-family:var(--mono);font-size:11px;font-weight:700;color:var(--text);min-width:28px;text-align:right}.report-mom-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.goal-share-row{margin-top:8px;display:flex;justify-content:flex-end}.goal-share-btn{background:#6366f11f;border:1px solid rgba(99,102,241,.3);color:var(--accent2);font-size:11px;font-weight:700;padding:6px 12px;border-radius:999px;cursor:pointer;transition:background .15s}.goal-share-btn:hover{background:#6366f138}.goal-share-btn:active{background:#6366f14d}body.light-theme .report-cat-modal-panel{background:var(--bg2)}body.light-theme .report-modal-cat-row,body.light-theme .report-header-item{background:var(--bg3);border-color:var(--border)}body.light-theme .topbar-balance-pill{background:#0000000a;border-color:#00000014}.ledger-sub-tab:not(.active){opacity:.65}.summary-item{cursor:pointer;transition:transform .15s,border-color .15s}.summary-item:hover{transform:translateY(-2px);border-color:#60a5fa40}.summary-item:active{transform:scale(.98)}.info-chip{display:inline-flex;align-items:center;gap:5px;padding:7px 12px;border-radius:12px;font-size:12px;font-weight:700;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);color:var(--text2);cursor:pointer;transition:background .15s;white-space:nowrap}.info-chip:hover{background:#ffffff1a}.event-row{cursor:pointer;border-radius:10px;padding:8px 6px;transition:background .12s;margin-bottom:4px}.detail-sheet-header{font-size:18px;font-weight:900;color:var(--text);margin-bottom:16px}.detail-item-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--border)}.detail-item-label{font-size:13px;color:var(--text2)}.detail-item-value{font-family:var(--mono);font-size:14px;font-weight:700;color:var(--text)}.ledger-day-fixed{font-size:9px;color:var(--accent2);opacity:.7;font-style:italic;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ledger-day-fixed-inc{color:var(--green2)}.month-picker-sheet{padding:20px}.month-picker-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:12px}.month-picker-btn{padding:10px 6px;border-radius:10px;border:1px solid var(--border);background:var(--bg3);color:var(--text2);font-size:13px;font-weight:700;cursor:pointer;text-align:center;transition:all .15s;font-family:var(--font)}.month-picker-btn.current{background:linear-gradient(135deg,#3b82f6e6,#2563ebe6);border-color:transparent;color:#fff}.month-picker-year-nav{display:flex;align-items:center;gap:12px;justify-content:center}.month-picker-year{font-size:18px;font-weight:900;color:var(--text);font-family:var(--mono)}.goal-card-urgent{border-color:#ef44444d!important;background:#ef444408,var(--card-grad),#0f172ab3!important}.goal-card-warning{border-color:#f973164d!important}.ledger-sub-tab{transition:all .18s cubic-bezier(.4,0,.2,1)}.ledger-sub-tab:not(.active){opacity:.6}.ledger-sub-tab.active{transform:scale(1.02)}#entries-panel-fixed,#entries-panel-cards{animation:fadeIn .22s ease}.summary-item[data-action]{cursor:pointer;transition:transform .15s,border-color .15s,box-shadow .15s}.summary-item[data-action]:hover{transform:translateY(-2px);border-color:#60a5fa4d;box-shadow:0 6px 20px #00000026}.summary-item[data-action]:active{transform:scale(.98)}.info-chip{display:inline-flex;align-items:center;gap:5px;padding:7px 12px;border-radius:12px;font-size:12px;font-weight:700;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);color:var(--text2);cursor:pointer;transition:background .15s,transform .12s;white-space:nowrap}.info-chip:hover{background:#ffffff1c;transform:translateY(-1px)}.info-chip:active{transform:scale(.97)}.info-chip.success{background:#10b9811f;border-color:#10b98140;color:var(--green2)}.info-chip.warning{background:#ef44441f;border-color:#ef444440;color:var(--red2)}.info-chip.salary{background:#6366f11f;border-color:#6366f140;color:var(--accent2)}.event-row{cursor:pointer;border-radius:10px;padding:8px 6px;transition:background .12s;margin:0 -6px 2px}.event-row:hover{background:#ffffff0d}.event-row:active{background:#ffffff17}.house-level-card{cursor:pointer;transition:transform .15s,border-color .15s}.house-level-card:hover{transform:translateY(-2px);border-color:#6366f14d}.house-level-card:active{transform:scale(.98)}.house-tap-hint{font-size:10px;color:var(--text3);text-align:center;margin-top:6px;letter-spacing:.3px}.detail-sheet{max-height:80vh;overflow-y:auto}.detail-sheet-header{font-size:18px;font-weight:900;color:var(--text);margin-bottom:16px;display:flex;align-items:center;gap:8px}.detail-item-row{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--border)}.detail-item-row:last-child{border-bottom:none}.detail-item-label{font-size:13px;color:var(--text2);font-weight:600}.detail-item-value{font-family:var(--mono);font-size:15px;font-weight:700;color:var(--text)}.detail-stat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:16px}.detail-stat-item{padding:12px;border-radius:14px;background:var(--bg3);border:1px solid var(--border);text-align:center}.detail-stat-val{font-family:var(--mono);font-size:20px;font-weight:900;color:var(--text);line-height:1}.detail-stat-lbl{font-size:10px;color:var(--text3);font-weight:700;margin-top:4px}.month-picker-sheet{padding:24px 20px}.month-picker-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:16px}.month-picker-btn{padding:12px 6px;border-radius:10px;border:1px solid var(--border);background:var(--bg3);color:var(--text2);font-size:13px;font-weight:700;cursor:pointer;text-align:center;transition:all .15s;font-family:var(--font)}.month-picker-btn:hover{background:#3b82f626;border-color:#3b82f64d;color:var(--text)}.month-picker-btn.current-month{background:linear-gradient(135deg,#3b82f6e6,#2563ebe6);border-color:transparent;color:#fff;box-shadow:0 4px 14px #2563eb40}.month-picker-year-nav{display:flex;align-items:center;gap:16px;justify-content:center;margin-bottom:4px}.month-picker-year{font-size:20px;font-weight:900;color:var(--text);font-family:var(--mono);min-width:80px;text-align:center}.ledger-day-fixed{font-size:8px;color:var(--accent2);opacity:.75;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.2;font-style:italic}.ledger-day-fixed-inc{color:var(--green2)!important}.ledger-month-chip-btn{cursor:pointer;user-select:none;transition:opacity .15s}.ledger-month-chip-btn:hover{opacity:.75}.ledger-month-chip-btn:after{content:" ▾";font-size:10px;opacity:.5}body.light-theme .info-chip{background:#0000000a;border-color:#00000014;color:var(--text2)}body.light-theme .event-row:hover{background:#00000008}body.light-theme .month-picker-btn{background:var(--bg3);border-color:var(--border)}.card-def-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--border)}.card-def-row:last-child{border-bottom:none}.card-def-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.wish-card{border-radius:16px;border:1px solid var(--border);background:var(--card-grad),#0f172ab3;padding:14px 16px;margin-bottom:10px;transition:transform .15s,border-color .15s}.wish-card:hover{transform:translateY(-1px);border-color:#60a5fa33}.wish-card.bought{opacity:.55}.wish-card-top{display:flex;gap:10px}.wish-name{font-size:15px;font-weight:800;color:var(--text);line-height:1.3;margin-bottom:2px}.wish-price{font-size:16px;font-weight:900;font-family:var(--mono);color:var(--accent2)}.wish-priority-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:8px;font-size:10px;font-weight:700;border:1px solid;white-space:nowrap}.wish-link-btn{padding:4px 10px;border-radius:8px;font-size:11px;font-weight:700;background:#3b82f61f;border:1px solid rgba(59,130,246,.25);color:var(--accent2);cursor:pointer;white-space:nowrap;font-family:var(--font)}.wish-link-btn:hover{background:#3b82f633}.wish-impact-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:10px;padding-top:8px;border-top:1px solid var(--border)}.wish-impact-badge{padding:3px 8px;border-radius:8px;font-size:10px;font-weight:700;white-space:nowrap}.wish-impact-badge.ok{background:#10b9811f;color:var(--green2)}.wish-impact-badge.warn{background:#ef44441f;color:var(--red2)}.wish-impact-text{font-size:10px;color:var(--text3);flex:1;min-width:120px}.wish-impact-date{font-size:10px;color:var(--text3);font-family:var(--mono)}.watchlist-card{border-radius:16px;border:1px solid var(--border);background:var(--card-grad),#0f172ab3;padding:14px 16px;margin-bottom:10px;transition:border-color .15s}.watchlist-card:hover{border-color:#60a5fa33}.wish-form-panel{max-height:90vh;overflow-y:auto}.sheet-title{font-size:17px;font-weight:900;color:var(--text);margin-bottom:16px}body.light-theme .wish-card,body.light-theme .watchlist-card{background:var(--bg2)}.badge-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.badge-item{display:flex;flex-direction:column;align-items:center;gap:3px;padding:10px 6px;border-radius:14px;text-align:center;border:1px solid var(--border);background:var(--bg3);transition:transform .15s,box-shadow .2s;cursor:default}.badge-item.earned{transform:none}.badge-item.earned:hover{transform:translateY(-3px);box-shadow:0 6px 20px #0003}.badge-item.locked{opacity:.55}@keyframes legendaryPulse{0%,to{box-shadow:0 0 8px #f59e0b4d}50%{box-shadow:0 0 20px #f59e0b99}}.badge-item.earned[style*=glow]{animation:legendaryPulse 2.5s ease-in-out infinite}.ledger-sub-tabs{display:flex;gap:6px;margin-bottom:14px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding:2px 0}.ledger-sub-tabs::-webkit-scrollbar{display:none}.ledger-sub-tab{flex-shrink:0;padding:8px 16px;border-radius:20px;font-size:12px;font-weight:800;border:1.5px solid var(--border);background:var(--bg3);color:var(--text3);cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);white-space:nowrap;font-family:var(--font)}.ledger-sub-tab.active{background:linear-gradient(135deg,var(--accent),var(--accent2));border-color:transparent;color:#fff;box-shadow:0 4px 14px #3b82f659;transform:translateY(-1px)}.ledger-sub-tab:not(.active):hover{background:var(--bg2);border-color:var(--accent2);color:var(--text2)}.btn-nav-arrow{width:36px;height:36px;border-radius:50%;padding:0;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);color:var(--text2);cursor:pointer;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;transition:background .18s,color .18s,border-color .18s,transform .12s;position:relative;overflow:hidden}.btn-nav-arrow:hover{background:#60a5fa24;color:var(--accent2);border-color:#60a5fa47}.btn-nav-arrow:active{transform:scale(.88)}body.light-theme .btn-nav-arrow{background:#0000000a;border-color:#0000001f}body.light-theme .btn-nav-arrow:hover{background:#2563eb14;color:var(--accent);border-color:#2563eb33}.ledger-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;gap:8px}.ledger-toolbar .btn:not(.btn-nav-arrow){padding:8px 14px;border-radius:12px;font-size:13px;font-weight:700;background:var(--bg3);border:1px solid var(--border);transition:all .15s;min-width:60px}.ledger-toolbar .btn:not(.btn-nav-arrow):hover{background:var(--bg2);border-color:var(--accent2);color:var(--accent2)}.ledger-month-nav{display:flex;align-items:stretch;background:linear-gradient(135deg,#3b82f624,#2563eb0f);border:1px solid rgba(96,165,250,.28);border-radius:14px;overflow:hidden;box-shadow:0 4px 18px #2563eb1f;flex-shrink:0}.ledger-month-nav-arrow{width:36px;flex-shrink:0;background:none;border:none;padding:0;color:var(--accent2);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s;position:relative;overflow:hidden}.ledger-month-nav-arrow:hover{background:#60a5fa24}.ledger-month-nav-arrow:active{background:#60a5fa3d}.ledger-month-nav-label{flex:1;text-align:center;white-space:nowrap;font-size:14px;font-weight:900;color:var(--text);letter-spacing:.3px;padding:10px;border-left:1px solid rgba(96,165,250,.2);border-right:1px solid rgba(96,165,250,.2)}body.light-theme .ledger-month-nav{background:linear-gradient(135deg,#2563eb1a,#2563eb0a);border-color:#2563eb38}body.light-theme .ledger-month-nav-label{border-left-color:#2563eb26;border-right-color:#2563eb26}.ledger-month-chip{font-size:15px;font-weight:900;color:var(--text);padding:8px 16px;border-radius:12px;background:var(--bg3);border:1px solid var(--border);letter-spacing:.5px}#btn-ledger-month-label{cursor:pointer;user-select:none}#btn-ledger-month-label:hover{background:#60a5fa2e}#btn-ledger-month-label:after{content:" ▾";font-size:10px;opacity:.5}.ledger-cal-summary{display:flex;gap:12px;margin-bottom:12px;flex-wrap:wrap}.ledger-cal-summary-item{flex:1;min-width:70px;padding:8px 10px;border-radius:10px;background:var(--bg3);border:1px solid var(--border);text-align:center}#ledger-view-budget .btn,#ledger-view-stats .btn{border-radius:12px;padding:8px 14px;font-weight:700}.badge.hyundai{background:linear-gradient(135deg,#1d4ed8,#2563eb);color:#fff;padding:2px 7px;border-radius:6px;font-size:9px;font-weight:800;letter-spacing:.5px;vertical-align:middle}.badge.kookmin{background:linear-gradient(135deg,#047857,#059669);color:#fff;padding:2px 7px;border-radius:6px;font-size:9px;font-weight:800;letter-spacing:.5px;vertical-align:middle}.entry-meta{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin-top:2px}.house-level-card{position:relative;overflow:hidden;background:linear-gradient(135deg,#0f172ae6,#1e293bcc);border:1.5px solid rgba(99,102,241,.2);transition:transform .2s,border-color .2s,box-shadow .2s}.house-level-card:hover{transform:translateY(-2px);border-color:#6366f166;box-shadow:0 8px 24px #0003}.house-level-card:before{content:"";position:absolute;top:-40%;right:-20%;width:200px;height:200px;background:radial-gradient(circle,rgba(99,102,241,.1) 0%,transparent 70%);pointer-events:none}.house-progress-track{height:6px;background:var(--bg3);border-radius:3px;margin-top:8px;overflow:hidden}.house-progress-fill{height:6px;border-radius:3px;transition:width .6s cubic-bezier(.4,0,.2,1)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes floatUp{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-40px)}}body.light-theme .ledger-sub-tab{background:#f1f5f9;border-color:#e2e8f0;color:#64748b}body.light-theme .ledger-sub-tab.active{background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff;border-color:transparent}body.light-theme .badge-item{background:#f8fafc;border-color:#e2e8f0}@keyframes badgeIconPop{0%{transform:scale(.2) rotate(-15deg);opacity:0}60%{transform:scale(1.25) rotate(6deg);opacity:1}80%{transform:scale(.92) rotate(-3deg)}to{transform:scale(1) rotate(0)}}@keyframes badgeShine{0%{transform:translate(-100%) rotate(30deg);opacity:0}30%{opacity:.6}to{transform:translate(200%) rotate(30deg);opacity:0}}@keyframes badgeParticleFall{0%{transform:translateY(0) rotate(0) scale(1);opacity:1}to{transform:translateY(180px) rotate(720deg) scale(.4);opacity:0}}@keyframes badgeParticleFloat{0%{transform:translateY(0) scale(1);opacity:1}to{transform:translateY(-120px) scale(.3);opacity:0}}#badge-detail-icon-wrap:after{content:"";position:absolute;top:-20px;left:-40px;width:60px;height:200px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.35),transparent);animation:badgeShine 1.6s ease .3s both;pointer-events:none}#badge-detail-icon-wrap{position:relative;overflow:hidden}.bottom-nav:after{content:"";position:fixed;bottom:0;right:0;width:40px;height:calc(72px + max(env(safe-area-inset-bottom),10px));background:linear-gradient(to left,rgba(10,15,30,.95) 20%,transparent);pointer-events:none;z-index:121;border-bottom-right-radius:0}body.light-theme .bottom-nav:after{background:linear-gradient(to left,rgba(243,247,251,.95) 20%,transparent)}.wish-drag-handle{display:flex;align-items:center;justify-content:center;width:22px;flex-shrink:0;cursor:grab;touch-action:none;padding:0 2px;opacity:.4;transition:opacity .2s}.wish-drag-handle:active{cursor:grabbing}.wish-card:hover .wish-drag-handle{opacity:.7}.wish-card-top{display:flex;align-items:center;gap:8px}.wish-select-wrap{display:flex;align-items:center;flex-shrink:0}.wish-card.drag-over{border:2px dashed var(--accent)!important;background:#6366f10f!important}.wish-card[draggable=true]{cursor:default}.ai-card-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 12px;background:linear-gradient(135deg,#6366f124,#8b5cf614);border-bottom:1px solid rgba(99,102,241,.15)}.ai-header-left{display:flex;align-items:center;gap:10px}.ai-robot-icon{font-size:26px;animation:aiPulse 3s ease-in-out infinite;flex-shrink:0}@keyframes aiPulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}.ai-card-title{font-size:14px;font-weight:800;color:var(--text)}.ai-model-badge{font-size:10px;color:#8b5cf6e6;font-weight:600;margin-top:2px}.ai-refresh-btn{width:34px;height:34px;border-radius:50%;background:#6366f126;border:1px solid rgba(99,102,241,.3);color:#a78bfa;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,transform .2s;flex-shrink:0}.ai-refresh-btn:hover{background:#6366f147;transform:rotate(30deg)}.ai-refresh-btn.spinning svg{animation:spin .8s linear infinite}.ai-card-body{padding:14px 16px 8px;min-height:72px;max-height:220px;overflow-y:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:rgba(99,102,241,.25) transparent}.ai-card-body::-webkit-scrollbar{width:3px}.ai-card-body::-webkit-scrollbar-track{background:transparent}.ai-card-body::-webkit-scrollbar-thumb{background:#6366f14d;border-radius:2px}.ai-card-footer{padding:6px 16px 12px;display:flex;justify-content:flex-end;align-items:center}.ai-updated-at{font-size:10px;color:var(--text3)}.ai-skeleton-wrap{display:flex;flex-direction:column;gap:0}.ai-skeleton{height:12px;border-radius:6px;margin-bottom:8px;background:linear-gradient(90deg,var(--bg3) 25%,var(--bg4) 50%,var(--bg3) 75%);background-size:200% 100%;animation:shimmer 1.4s infinite}.ai-content{font-size:13px;color:var(--text2);line-height:1.8}.ai-content strong{color:var(--text);font-weight:800}.ai-content em{color:var(--accent3);font-style:italic}.ai-content .ai-h1,.ai-content .ai-h2{font-size:14px;font-weight:800;color:var(--text);margin:14px 0 6px;padding-left:10px;border-left:3px solid var(--accent2)}.ai-content .ai-h3{font-size:13px;font-weight:700;color:var(--accent2);margin:10px 0 5px}.ai-content .ai-bullet{display:flex;align-items:flex-start;gap:7px;margin:5px 0;padding-left:4px}.ai-content .ai-bullet-dot{color:var(--accent2);flex-shrink:0;margin-top:1px;font-size:12px}.ai-content .ai-numbered{display:flex;align-items:flex-start;gap:8px;margin:6px 0;padding-left:4px}.ai-content .ai-num-badge{background:#6366f133;color:#a78bfa;border-radius:50%;width:20px;height:20px;min-width:20px;display:inline-flex;align-items:center;justify-content:center;font-size:10px;font-weight:800;flex-shrink:0;margin-top:1px}.ai-content .ai-divider{height:1px;background:var(--border);margin:10px 0}.ai-error{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--red2);padding:4px 0}.ai-analysis-content-inner .ai-h2{font-size:15px;background:#6366f114;border-radius:0 8px 8px 0;padding:6px 12px;margin:16px 0 8px -4px}.ai-analysis-panel{position:fixed;bottom:0;left:max(0px,calc(50% - 320px));right:max(0px,calc(50% - 320px));top:max(env(safe-area-inset-top,0px),8px);background:var(--bg2);border-radius:20px 20px 0 0;border-top:1px solid rgba(99,102,241,.3);display:flex;flex-direction:column;overflow:hidden;transform:translateY(110%);transition:transform .32s cubic-bezier(.2,.8,.2,1);z-index:3001}.sheet-overlay.show .ai-analysis-panel{transform:translateY(0)}.ai-analysis-drag-bar{width:36px;height:4px;background:#ffffff1f;border-radius:2px;margin:12px auto 0;flex-shrink:0}.ai-analysis-header{display:flex;align-items:center;gap:12px;padding:12px 18px 14px;background:linear-gradient(135deg,#6366f12e,#8b5cf61f);border-bottom:1px solid rgba(99,102,241,.2);flex-shrink:0}.ai-analysis-header-icon{font-size:28px;animation:aiPulse 3s ease-in-out infinite;flex-shrink:0}.ai-analysis-title{font-size:17px;font-weight:800;color:var(--text)}.ai-analysis-sub{font-size:12px;color:#8b5cf6e6;margin-top:2px}.ai-analysis-body{flex:1;min-height:0;overflow-y:scroll;-webkit-overflow-scrolling:touch;touch-action:pan-y;overscroll-behavior:contain;padding:16px 20px calc(20px + env(safe-area-inset-bottom));font-size:14px;color:var(--text2);line-height:1.8}.ai-card-footer{justify-content:space-between}.ai-insight-expand-btn{font-size:11px;padding:4px 12px;border-radius:10px;color:#8b5cf6e6;background:#6366f11f;border:1px solid rgba(99,102,241,.25);cursor:pointer;font-family:var(--font);font-weight:700;transition:background .15s,transform .1s;letter-spacing:.2px}.ai-insight-expand-btn:hover{background:#6366f138}.ai-insight-expand-btn:active{transform:scale(.97)}.ai-ledger-btn{width:100%;padding:14px 18px;background:linear-gradient(135deg,#6366f126,#8b5cf61a);border:1px solid rgba(99,102,241,.3);border-radius:16px;display:flex;align-items:center;gap:12px;color:var(--text);font-family:var(--font);cursor:pointer;transition:background .2s,border-color .2s,transform .15s}.ai-ledger-btn:hover{background:linear-gradient(135deg,#6366f140,#8b5cf62e);border-color:#6366f180;transform:translateY(-1px)}.ai-ledger-btn:active{transform:scale(.99)}.ai-ledger-btn-icon{font-size:28px;flex-shrink:0}.ai-ledger-btn-text{flex:1;text-align:left}.ai-ledger-btn-title{font-size:14px;font-weight:800;color:#a78bfa}.ai-ledger-btn-sub{font-size:11px;color:var(--text3);margin-top:2px}.ai-btn-spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.2);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}.ai-chat-panel{width:100%;max-width:640px;margin:0 auto;background:var(--bg2);border-radius:24px 24px 0 0;border-top:1px solid rgba(99,102,241,.3);max-height:88dvh;display:flex;flex-direction:column;animation:slideUp .3s ease;overflow:hidden}.ai-chat-header{display:flex;align-items:center;gap:10px;padding:12px 18px 13px;background:linear-gradient(135deg,#6366f129,#8b5cf61a);border-bottom:1px solid rgba(99,102,241,.18);flex-shrink:0}.ai-chat-messages-wrap{flex:1;overflow-y:auto;padding:14px 16px 8px;display:flex;flex-direction:column;gap:12px}.ai-chat-empty{text-align:center;padding:32px 20px;color:var(--text3)}.ai-chat-row{display:flex;align-items:flex-end;gap:8px}.ai-chat-row.user{justify-content:flex-end}.ai-chat-row.ai{justify-content:flex-start}.ai-chat-avatar{width:30px;height:30px;border-radius:50%;background:#6366f133;border:1px solid rgba(99,102,241,.3);display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0}.ai-chat-bubble{max-width:80%;padding:10px 14px;font-size:13px;line-height:1.65}.ai-chat-bubble.user{background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;border-radius:16px 16px 4px}.ai-chat-bubble.ai{background:var(--bg3);border:1px solid var(--border);color:var(--text);border-radius:16px 16px 16px 4px}.ai-typing-dots{display:flex;gap:4px;padding:2px 0;align-items:center}.ai-typing-dots span{width:7px;height:7px;border-radius:50%;background:#8b5cf6b3;animation:typingBounce 1.2s ease-in-out infinite}.ai-typing-dots span:nth-child(2){animation-delay:.2s}.ai-typing-dots span:nth-child(3){animation-delay:.4s}@keyframes typingBounce{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-6px)}}.ai-chat-input-row{display:flex;gap:8px;padding:10px 16px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--border);flex-shrink:0}.ai-chat-input-field{flex:1;font-size:13px}.ai-chat-send-btn{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,#6366f1,#8b5cf6);border:none;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:transform .15s,box-shadow .15s;box-shadow:0 4px 12px #6366f159}.ai-chat-send-btn:hover{transform:scale(1.06);box-shadow:0 6px 18px #6366f173}.ledger-tag-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.ledger-tag-btn{padding:5px 10px;border-radius:20px;font-size:12px;font-weight:600;font-family:var(--font);cursor:pointer;border:1.5px solid var(--border2);background:var(--bg3);color:var(--text2);transition:all .15s}.ledger-tag-btn.active{background:#6366f12e;border-color:#6366f1;color:#a5b4fc}.lday-item-tag{font-size:10px;padding:1px 6px;border-radius:10px;background:#6366f126;color:#a5b4fc;font-weight:600;margin-left:2px}.health-score-mini{padding:14px 16px;transition:opacity .15s}.health-score-mini:active{opacity:.7}.annual-review-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:14px}.annual-review-stat-card{background:var(--bg3);border:1px solid var(--border);border-radius:14px;padding:12px;text-align:center}.ar-stat-icon{font-size:20px;margin-bottom:4px}.ar-stat-label{font-size:10px;color:var(--text3);margin-bottom:4px}.ar-stat-value{font-size:16px;font-weight:800;font-family:var(--mono)}.annual-review-highlights{display:flex;flex-direction:column;gap:10px}.ar-highlight-row{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;background:var(--bg3);border:1px solid var(--border);border-radius:12px}.ar-hl-icon{font-size:20px;flex-shrink:0}.ar-hl-title{font-size:11px;color:var(--text3);margin-bottom:2px}.ar-hl-val{font-size:14px;font-weight:700;color:var(--text)}.weekly-summary-card{padding:14px 16px}#sim-slider{-webkit-appearance:none;height:6px;background:var(--bg3);border-radius:6px;border:1px solid var(--border2);outline:none}#sim-slider::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;border-radius:50%;background:#6366f1;cursor:pointer;box-shadow:0 2px 8px #6366f166}.trend-arrow{font-size:9px;font-weight:700;padding:1px 5px;border-radius:8px;vertical-align:middle;margin-left:3px}.trend-up{color:var(--red2);background:#f871711f}.trend-down{color:var(--green2);background:#34d3991f}#today-timeline .card{animation:fadeIn .3s ease}.ai-coaching-body{font-size:12px;color:var(--text2);line-height:1.75}.ai-coaching-body .ai-h2{font-size:12px;font-weight:800;color:var(--text);margin:10px 0 4px}.ai-coaching-body .ai-h3{font-size:11px;font-weight:700;color:var(--accent2);margin:8px 0 3px}.ai-coaching-body .ai-bullet{display:flex;gap:6px;margin:3px 0}.ai-coaching-body .ai-bullet-dot{color:var(--accent2);flex-shrink:0}.lday-item{transition:transform .22s ease}.template-chip{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border-radius:20px;background:var(--bg3);border:1px solid var(--border);font-size:11px;cursor:pointer;white-space:nowrap;transition:background .15s}.template-chip:active{background:var(--bg4)}.template-chip-icon{font-size:13px}.template-chip-amt{font-weight:700;color:var(--accent2);font-family:var(--mono)}.heatmap-legend{display:flex;align-items:center;gap:4px;font-size:9px;color:var(--text3);margin-top:6px}.heatmap-legend-cell{width:11px;height:11px;border-radius:2px}.topbar-search-btn{width:36px;height:36px;border-radius:50%;background:#ffffff12;border:1px solid rgba(255,255,255,.1);color:var(--text2);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,transform .2s}.topbar-search-btn:hover{background:#ffffff21;transform:scale(1.08)}body.light-theme .topbar-search-btn{background:#0000000d;border-color:#0000001a}@keyframes searchSlideIn{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}#search-overlay{position:fixed;inset:0;z-index:3000;background:var(--bg);display:flex;flex-direction:column;animation:searchSlideIn .22s cubic-bezier(.25,.46,.45,.94);padding-top:env(safe-area-inset-top,0px)}.search-header{display:flex;align-items:center;gap:10px;padding:12px 16px 10px;border-bottom:1px solid var(--border);background:var(--bg);position:sticky;top:0;z-index:1}.search-input-wrap{flex:1;display:flex;align-items:center;gap:8px;background:var(--bg3);border:1px solid var(--border);border-radius:14px;padding:9px 12px;transition:border-color .2s}.search-input-wrap:focus-within{border-color:var(--accent)}#search-input{flex:1;background:none;border:none;outline:none;font-size:15px;color:var(--text);font-family:var(--font)}#search-input::placeholder{color:var(--text3)}.search-cancel-btn{background:none;border:none;cursor:pointer;font-size:13px;font-weight:700;color:var(--accent2);white-space:nowrap;padding:4px 0}.search-results{flex:1;overflow-y:auto;padding:8px 0}.search-result-item{display:flex;align-items:center;gap:12px;padding:12px 16px;cursor:pointer;transition:background .15s;border-bottom:1px solid var(--border2)}.search-result-item:active{background:var(--bg3)}.search-result-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.search-result-info{flex:1;min-width:0}.search-result-cat{font-size:13px;font-weight:700;color:var(--text)}.search-result-meta{font-size:11px;color:var(--text3);margin-top:2px;display:flex;gap:6px;align-items:center;flex-wrap:wrap}.search-result-amt{font-family:var(--mono);font-size:14px;font-weight:800;white-space:nowrap}.search-empty{text-align:center;padding:48px 20px;font-size:13px;color:var(--text3)}.search-result-mark{color:var(--accent2);font-weight:900}@keyframes cardStagger{0%{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}#page-home.active .balance-card{animation:cardStagger .32s cubic-bezier(.2,.8,.2,1) .02s both}#page-home.active #today-timeline{animation:cardStagger .32s cubic-bezier(.2,.8,.2,1) .07s both}#page-home.active #home-budget-widget{animation:cardStagger .32s cubic-bezier(.2,.8,.2,1) .1s both}#page-home.active #weekly-summary-card{animation:cardStagger .32s cubic-bezier(.2,.8,.2,1) .13s both}#page-home.active #health-score-mini{animation:cardStagger .32s cubic-bezier(.2,.8,.2,1) .16s both}#page-home.active #ai-insight-card{animation:cardStagger .32s cubic-bezier(.2,.8,.2,1) .2s both}.ledger-day-top{display:flex;align-items:flex-start;justify-content:space-between}.ledger-day-dot-count{font-size:8px;font-weight:800;background:var(--accent);color:#fff;border-radius:6px;padding:0 4px;line-height:14px;min-width:14px;text-align:center}.ledger-day.today .ledger-day-dot-count{background:#fff;color:var(--accent)}#ledger-day-inline-panel{animation:fadeInDown .2s ease}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}#ledger-day-inline-panel .lday-item{border-bottom:1px solid var(--border2)}#ledger-day-inline-panel .lday-item:last-child{border-bottom:none}#home-budget-widget .card{padding:14px 16px;cursor:pointer;transition:opacity .15s}#home-budget-widget .card:active{opacity:.8}.home-forecast-card{transition:transform .12s ease,box-shadow .12s ease}.home-forecast-card:active{transform:scale(.985)}.forecast-status-badge{margin-left:auto;font-size:10px;font-weight:700;padding:2px 9px;border-radius:20px}.forecast-mini-cell{text-align:center;padding:10px 6px;background:var(--bg3);border-radius:12px;border:1px solid var(--border)}.forecast-mini-label{font-size:9px;color:var(--text3);margin-bottom:4px}.forecast-mini-val{font-size:14px;font-weight:900;font-family:var(--mono);line-height:1.2}.forecast-mini-sub{font-size:9px;color:var(--text3);margin-top:3px}#page-home.active #home-forecast-widget{animation:cardStagger .32s cubic-bezier(.2,.8,.2,1) .11s both}.memo-suggestions{display:flex;flex-wrap:wrap;gap:5px;margin-top:5px;min-height:0}.memo-sug-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:20px;background:var(--bg3);border:1px solid var(--border2);color:var(--text2);font-size:11px;font-family:var(--font);cursor:pointer;white-space:nowrap;transition:background .12s,border-color .12s;max-width:160px;overflow:hidden;text-overflow:ellipsis}.memo-sug-chip:hover{background:var(--accent)22;border-color:var(--accent);color:var(--text)}.memo-sug-cat{font-size:9px;color:var(--text3);background:var(--bg4);padding:1px 5px;border-radius:8px;flex-shrink:0}.accent-swatch-row{display:flex;flex-wrap:wrap;gap:8px}.accent-swatch{width:28px;height:28px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:transform .15s,box-shadow .15s;flex-shrink:0}.accent-swatch:hover,.accent-swatch.active{transform:scale(1.15)}
