@import"https://fonts.googleapis.com/css2?family=Kantumruy+Pro:ital,wght@0,300;0,400;0,500;0,600;0,700;1,400&display=swap";:root{--navy-950:#081226;--navy-900:#0d1b36;--navy-800:#132548;--navy-700:#1c3564;--blue-600:#2f5fe0;--blue-500:#3f6df0;--blue-100:#e8edfc;--white:#ffffff;--bg:#f4f6fb;--ink:#0f1b34;--slate:#5b6884;--slate-light:#8b96ad;--line:#e2e6f2;--line-soft:#eef1f9;--green:#1e8a5f;--green-bg:#e7f6ef;--red:#c23b3b;--red-bg:#fbeaea;--amber:#b07d1f;--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-top: env(safe-area-inset-top, 0px)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:Kantumruy Pro,sans-serif;-webkit-font-smoothing:antialiased;overscroll-behavior-y:contain}.num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}button,input,select{font-family:Kantumruy Pro,sans-serif}.app{display:grid;grid-template-columns:220px 1fr;min-height:100vh}.sidebar{background:var(--navy-950);color:var(--white);padding:28px 18px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:10px;margin-bottom:32px;padding:0 6px}.brand-mark{width:30px;height:30px;border-radius:8px;background:linear-gradient(135deg,var(--blue-500),var(--blue-600));display:flex;align-items:center;justify-content:center;font-weight:700;font-size:15px;color:#fff;flex-shrink:0}.brand-name{font-size:18px;font-weight:600;letter-spacing:.01em}.side-nav{display:flex;flex-direction:column;gap:2px;flex:1}.side-nav button{display:flex;align-items:center;gap:10px;text-align:left;background:none;border:none;color:var(--slate-light);font-size:14.5px;font-weight:500;padding:11px 12px;border-radius:9px;cursor:pointer;transition:background .15s ease,color .15s ease}.side-nav button:hover{background:#ffffff0f;color:#fff}.side-nav button.active{background:var(--blue-600);color:#fff}.side-nav .dot{width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.5;flex-shrink:0}.sidebar-foot{font-size:12px;color:var(--slate-light);border-top:1px solid rgba(255,255,255,.08);padding-top:16px;margin-top:16px}.bottom-nav{display:none}main{padding:32px 36px 90px}.page-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:26px;gap:12px}.page-head h1{font-size:24px;font-weight:600;margin:0 0 4px;letter-spacing:-.01em}.page-head .sub{font-size:13.5px;color:var(--slate)}.summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}.summary-grid .cell{background:var(--white);border:1px solid var(--line);border-radius:14px;padding:16px}.summary-grid .label{font-size:12px;color:var(--slate);font-weight:500}.summary-grid .value{font-size:21px;font-weight:600;margin-top:8px}.value.pos{color:var(--green)}.value.neg{color:var(--red)}.goal-block{background:var(--navy-950);color:#fff;border-radius:16px;padding:20px 22px;margin-bottom:24px}.goal-top{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:var(--slate-light);margin-bottom:12px;gap:10px}.goal-top .glabel{color:#fff;font-weight:600}.goal-top button{background:#ffffff1a;border:none;color:#fff;padding:6px 12px;border-radius:20px;cursor:pointer;font-size:12px;flex-shrink:0}.goal-top button:hover{background:#ffffff2e}.goal-bar-track{height:9px;background:#ffffff1f;border-radius:20px;overflow:hidden}.goal-bar-fill{height:100%;background:linear-gradient(90deg,var(--blue-500),#6ea0ff);border-radius:20px;transition:width .4s ease}.goal-caption{margin-top:12px;font-size:13px;color:var(--slate-light)}.section-title{font-size:12.5px;font-weight:600;color:var(--slate);letter-spacing:.03em;margin:0 0 14px;text-transform:uppercase}.history-table{width:100%;border-collapse:collapse;background:var(--white);border:1px solid var(--line);border-radius:14px;overflow:hidden}.history-table th{text-align:right;font-size:11.5px;color:var(--slate);font-weight:600;padding:11px 14px;background:var(--line-soft);border-bottom:1px solid var(--line)}.history-table th:first-child,.history-table td:first-child{text-align:left}.history-table td{padding:11px 14px;font-size:13.5px;text-align:right;border-bottom:1px solid var(--line-soft)}.history-table tr:last-child td{border-bottom:none}.history-table .m-name{font-weight:500}.history-table .net.pos{color:var(--green);font-weight:600}.history-table .net.neg{color:var(--red);font-weight:600}.empty-row{text-align:center;padding:24px;color:var(--slate-light);font-size:13.5px}.toolbar{display:flex;gap:8px;margin-bottom:18px;flex-wrap:wrap;align-items:center}.toolbar select,.toolbar input[type=text]{padding:9px 12px;border:1px solid var(--line);border-radius:9px;background:var(--white);font-size:13px;color:var(--ink)}.toolbar select:focus,.toolbar input:focus{outline:none;border-color:var(--blue-500)}.toolbar .grow{flex:1;min-width:150px}form.entry{background:var(--white);border:1px solid var(--line);border-radius:16px;padding:20px;margin-bottom:24px}.entry h2{font-size:14.5px;font-weight:600;margin:0 0 16px}.entry .row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}.entry label{display:block;font-size:11.5px;font-weight:500;color:var(--slate);margin-bottom:6px}.entry input,.entry select{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:var(--bg);font-size:14.5px;color:var(--ink)}.entry input:focus,.entry select:focus{outline:none;border-color:var(--blue-500);background:#fff}.type-toggle{display:flex;gap:8px;margin-bottom:14px}.type-toggle button{flex:1;padding:10px;border:1px solid var(--line);border-radius:9px;background:var(--bg);font-size:13.5px;font-weight:500;cursor:pointer;color:var(--slate)}.type-toggle button.active.expense{background:var(--red-bg);border-color:var(--red);color:var(--red)}.type-toggle button.active.income{background:var(--green-bg);border-color:var(--green);color:var(--green)}.entry .submit{width:100%;padding:12px;background:var(--blue-600);color:#fff;border:none;border-radius:9px;font-size:14px;font-weight:600;cursor:pointer;margin-top:2px}.entry .submit:hover{background:var(--navy-700)}.month-group{margin-bottom:20px}.month-group .month-label{font-size:12px;font-weight:600;color:var(--amber);margin:0 0 8px}.txn{display:grid;grid-template-columns:44px 1fr auto auto;align-items:center;gap:12px;padding:12px 14px;background:var(--white);border:1px solid var(--line-soft);border-radius:10px;margin-bottom:6px}.txn .date{font-size:12px;color:var(--slate);font-weight:500}.txn .desc{font-size:14px;min-width:0}.txn .desc .cat{font-size:11px;color:var(--slate);display:block;margin-top:2px}.txn .amt{font-size:14px;font-weight:600;text-align:right;white-space:nowrap}.txn .amt.income{color:var(--green)}.txn .amt.expense{color:var(--red)}.txn .del{background:none;border:none;color:var(--slate-light);cursor:pointer;font-size:17px;line-height:1;padding:4px;border-radius:6px}.txn .del:hover{color:var(--red);background:var(--red-bg)}.empty{padding:36px 0;text-align:center;color:var(--slate);font-size:14px}.data-card{background:var(--white);border:1px solid var(--line);border-radius:16px;padding:22px;margin-bottom:16px}.data-card h2{font-size:15.5px;font-weight:600;margin:0 0 8px}.data-card p{font-size:13.5px;color:var(--slate);line-height:1.6;margin:0 0 16px}.data-card .btn{display:inline-block;padding:11px 20px;background:var(--blue-600);color:#fff;border:none;border-radius:9px;font-size:13.5px;font-weight:600;cursor:pointer;text-decoration:none}.data-card .btn:hover{background:var(--navy-700)}.data-card .btn.danger{background:var(--red)}.data-card .btn.danger:hover{background:#9c2f2f}.data-card input[type=file]{display:none}.file-status{font-size:12.5px;color:var(--green);margin-top:12px;font-weight:500}.install-banner{background:var(--blue-100);border:1px solid #c9d8fb;border-radius:14px;padding:14px 16px;margin-bottom:20px;display:flex;align-items:center;justify-content:space-between;gap:12px}.install-banner p{margin:0;font-size:13.5px;color:var(--navy-800);line-height:1.5}.install-banner button{background:var(--blue-600);color:#fff;border:none;border-radius:9px;padding:9px 16px;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap}.install-banner .dismiss{background:none;color:var(--slate);padding:9px 8px;font-weight:500}@media (max-width:860px){.app{grid-template-columns:1fr}.sidebar{display:none}main{padding:calc(18px + var(--safe-top)) 16px calc(90px + var(--safe-bottom))}.summary-grid{grid-template-columns:1fr 1fr}.bottom-nav{display:flex;position:fixed;left:0;right:0;bottom:0;background:var(--white);border-top:1px solid var(--line);padding:8px 6px calc(8px + var(--safe-bottom));z-index:20}.bottom-nav button{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;background:none;border:none;color:var(--slate-light);font-size:11px;font-weight:500;padding:6px 2px;cursor:pointer}.bottom-nav button.active{color:var(--blue-600)}.bottom-nav .icon{width:22px;height:22px;display:flex;align-items:center;justify-content:center}.bottom-nav .icon svg{width:100%;height:100%}.page-head{margin-bottom:20px}.page-head h1{font-size:21px}}@media (max-width:520px){.entry .row{grid-template-columns:1fr}.txn{grid-template-columns:36px 1fr auto;row-gap:4px}.txn .del{grid-column:3;grid-row:1}.toolbar{flex-direction:column;align-items:stretch}.install-banner{flex-direction:column;align-items:stretch;text-align:left}}
