:root{--bg: #14171c;--bg-elev: #1c2027;--bg-elev2: #242a33;--line: #2c333d;--text: #eef1f5;--text-dim: #8a94a6;--accent: #0c8ce9;--green: #34c759;--red: #ff453a;--radius: 16px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--tabbar-h: 64px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;margin:0;width:100%;max-width:100%;overflow-x:clip}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Roboto,sans-serif;font-size:16px;overscroll-behavior:none}button{font-family:inherit;cursor:pointer}input,select{font-family:inherit;font-size:16px}.app{max-width:560px;margin:0 auto;min-height:100%;display:flex;flex-direction:column;overflow-x:clip}.screen{flex:1;padding:calc(var(--safe-top) + 12px) 16px calc(var(--tabbar-h) + var(--safe-bottom) + 16px)}.screen-title{font-size:28px;font-weight:800;margin:8px 0 16px}.tabbar{position:fixed;bottom:0;left:0;right:0;height:calc(var(--tabbar-h) + var(--safe-bottom));padding-bottom:var(--safe-bottom);background:#14171ceb;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-top:1px solid var(--line);display:flex;z-index:20}.tabbar-inner{max-width:560px;margin:0 auto;width:100%;display:flex}.tab{flex:1;background:none;border:none;color:var(--text-dim);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:11px;padding:8px 0}.tab.active{color:var(--accent)}.tab .ico{font-size:22px;line-height:1}.card{background:var(--bg-elev);border-radius:var(--radius);padding:16px}.card+.card{margin-top:12px}.row{display:flex;align-items:center;gap:12px}.icon-badge{width:46px;height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:23px;flex:none;box-shadow:inset 0 1.5px 1px #ffffff47,inset 0 -2px 3px #00000038,0 3px 7px #00000052}.muted{color:var(--text-dim)}.spacer{flex:1}.fab{position:fixed;right:max(16px,calc(50% - 264px));bottom:calc(var(--tabbar-h) + var(--safe-bottom) + 16px);width:60px;height:60px;border-radius:50%;background:var(--accent);color:#fff;border:none;font-size:32px;font-weight:300;box-shadow:0 8px 24px #0c8ce980;z-index:15;display:flex;align-items:center;justify-content:center}.day-group{margin-bottom:18px}.day-header{display:flex;justify-content:space-between;align-items:baseline;padding:0 4px 8px;font-size:13px;color:var(--text-dim);font-weight:600}.tx{display:flex;align-items:center;gap:12px;padding:10px 8px;border-radius:12px}.tx:active{background:var(--bg-elev2)}.tx-main{flex:1;min-width:0}.tx-title{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tx-sub{font-size:13px;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tx-amount{font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}.amount-income{color:var(--green)}.amount-expense{color:var(--text)}.amount-transfer{color:var(--text-dim)}.summary{background:linear-gradient(135deg,#0c8ce9,#0a6fc0);border-radius:20px;padding:20px;color:#fff;margin-bottom:20px}.summary .label{opacity:.85;font-size:13px}.summary .value{font-size:34px;font-weight:800;margin-top:4px}.btn{border:none;border-radius:12px;padding:14px 18px;font-size:16px;font-weight:600;background:var(--bg-elev2);color:var(--text);width:100%}.btn-primary{background:var(--accent);color:#fff}.btn-danger{background:transparent;color:var(--red)}.btn-row{display:flex;gap:10px}.seg{display:flex;background:var(--bg-elev);border-radius:12px;padding:4px;margin-bottom:18px}.seg button{flex:1;border:none;background:none;color:var(--text-dim);padding:10px;border-radius:9px;font-weight:600;font-size:15px}.seg button.active{background:var(--bg-elev2);color:var(--text)}.amount-display{text-align:center;font-size:44px;font-weight:800;font-variant-numeric:tabular-nums;padding:12px 0 4px;min-height:64px}.amount-display .cur{color:var(--text-dim);font-size:28px;margin-left:6px}.cat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:8px 0 16px}.tile-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:4px 0 18px}.cat-tile{--c: #5c6470;border:none;border-radius:18px;aspect-ratio:1 / .92;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;padding:8px 6px;color:#fff;background:linear-gradient(165deg,#ffffff38,#00000047),var(--c);box-shadow:0 4px 12px #00000059;transition:transform .12s ease,box-shadow .12s ease}.cat-tile:active{transform:scale(.96)}.cat-tile.active{box-shadow:0 0 0 3px #fff,0 6px 16px #00000073;transform:scale(1.02)}.cat-emoji{font-size:34px;line-height:1;filter:drop-shadow(0 2px 2px rgba(0,0,0,.3))}.cat-name{font-size:12px;font-weight:600;text-align:center;line-height:1.1;text-shadow:0 1px 3px rgba(0,0,0,.45);max-width:100%;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.cat-cell{background:none;border:none;color:var(--text);display:flex;flex-direction:column;align-items:center;gap:6px;padding:6px 2px;border-radius:12px}.cat-cell.active{background:var(--bg-elev)}.cat-cell .icon-badge{width:56px;height:56px;font-size:28px;transition:transform .12s ease}.cat-cell.active .icon-badge{transform:scale(1.08);box-shadow:inset 0 1.5px 1px #ffffff47,0 0 0 3px #ffffffd9,0 4px 10px #0006}.cat-cell span{font-size:11px;text-align:center;line-height:1.1;color:var(--text);max-width:100%;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:8px}.keypad button{background:var(--bg-elev);border:none;color:var(--text);font-size:26px;font-weight:600;padding:16px 0;border-radius:12px}.keypad button:active{background:var(--bg-elev2)}.field{margin-bottom:14px}.field label{display:block;font-size:13px;color:var(--text-dim);margin-bottom:6px}.field input,.field select{width:100%;background:var(--bg-elev);border:1px solid var(--line);border-radius:12px;padding:14px;color:var(--text);outline:none}.field input:focus,.field select:focus{border-color:var(--accent)}.chips{display:flex;gap:8px;flex-wrap:wrap}.chip{border:1px solid var(--line);background:var(--bg-elev);color:var(--text);border-radius:20px;padding:8px 14px;font-size:14px}.chip.active{background:var(--accent);border-color:var(--accent);color:#fff}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:40;display:flex;align-items:flex-end;justify-content:center}.sheet{background:var(--bg);width:100%;max-width:560px;border-radius:20px 20px 0 0;padding:0 16px calc(var(--safe-bottom) + 16px);max-height:96vh;overflow-y:auto;overflow-x:clip}.sheet-header{position:sticky;top:0;background:var(--bg);display:flex;align-items:center;justify-content:space-between;padding:calc(var(--safe-top) + 14px) 0 12px;margin-bottom:10px;z-index:3}.sheet-header h2{margin:0;font-size:20px}.link-btn{background:none;border:none;color:var(--accent);font-size:16px;padding:6px}.stat-bar{height:10px;border-radius:5px;background:var(--bg-elev2);overflow:hidden;margin-top:6px}.stat-bar>div{height:100%}.empty{text-align:center;color:var(--text-dim);padding:48px 16px}.empty .big{font-size:48px;margin-bottom:12px}.status-dot{width:8px;height:8px;border-radius:50%;display:inline-block}
