*{box-sizing:border-box;margin:0;padding:0}body{align-items:center;height:100vh;scroll-behavior:smooth}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background-image:url(/assets/logo.png);background-repeat:no-repeat;background-position:center center;background-size:50% auto;pointer-events:none;z-index:-9999}body::-webkit-scrollbar{width:0px;height:0px}#root{align-items:center;height:100vh;display:flex;flex-direction:column}hr{border:none;border-top:1px solid var(--border-color);margin:10px 0}:root{font-family:Inter,system-ui,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--warn-color: #ff4b4b;--warn-color-hover: #e03d3d;--border-color: #232323;--hover-border-color: #ffffff;--text-color: #ffffff;--max-width: 320px;--border-radius: 10px;--animation-speed: .3s;--animation-speed2x: .15s;--buttons-gap: 2px;--button-size: 41px;--button-max-height: 7.5vh}.white-border{border-color:var(--border-color);border-width:1px;border-style:solid}.categories-list button:active{background:#00000080;border-color:var(--hover-border-color)}@media (hover: hover) and (pointer: fine){.white-border:hover{background:#00000080;border-color:var(--hover-border-color)}}.button{display:flex;background:#0000004d;width:var(--button-size);height:var(--button-size);font-size:25px;cursor:pointer;color:var(--text-color);border-radius:var(--border-radius);justify-content:center;align-items:center;opacity:1;visibility:visible;transition:background-color var(--animation-speed) ease,color var(--animation-speed) ease,border-color var(--animation-speed) ease,opacity var(--animation-speed) ease,visibility var(--animation-speed) ease}.button:active{background:var(--text-color);color:#000;transform:scale(.96);transition:none}.button.hidden{opacity:0;visibility:hidden;pointer-events:none}.menu{display:flex;flex-direction:column;padding:10px 14px;position:fixed;top:0;left:-300px;width:300px;max-width:100%;height:100%;background:#00000080;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-right:1px solid var(--border-color);z-index:9999;transition:left var(--animation-speed) ease-in-out}.menu.visible{left:0}.menu-header{display:flex;align-items:center;gap:8px}.user-info{display:flex;align-items:center;min-width:0}.user-icon{width:40px;height:40px;border-radius:50%;object-fit:cover;margin:0 15px}.user-name{font-size:16px;color:#fff}.menu-list{width:100%;display:flex;flex-direction:column;margin-top:20px;gap:10px}.menu-list .button{width:auto;justify-content:left;gap:10px;padding:0 7px}.menu-list .button span{font-size:18px;margin:auto}.import-status{font-size:14px;padding:6px 10px;border-radius:6px;text-align:center}.import-status.success{background:#32b46433;color:#4caf82;border:1px solid rgba(50,180,100,.4)}.import-status.error{background:#dc3c3c33;color:#e57373;border:1px solid rgba(220,60,60,.4)}.appVersion{position:absolute;bottom:10px;width:100%;text-align:center;font-size:14px;color:var(--text-muted-color);color:gray}.input-container{width:100%;max-width:min(800px,98%);margin:0 auto;position:fixed;z-index:20;background:#00000080;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--border-color);border-top:0;height:70px;overflow:hidden;transition:height var(--animation-speed);bottom:0;border-radius:var(--border-radius) var(--border-radius) 0 0}.input-container.mobile{bottom:40px;border-radius:var(--border-radius)}.input-container.open{height:100%;border:0;border-radius:0;bottom:0;max-width:min(800px,100%)}.bottom-panel{position:absolute;bottom:0;left:0;width:100%;display:flex;flex-direction:column}.input-row{display:flex;align-items:center;gap:8px;padding:14px 15px;height:70px}#number-input{flex:1;border-radius:var(--border-radius);outline:none;text-align:center;cursor:pointer;height:41px;display:flex;justify-content:center;align-items:center;font-size:24px;transition:scale var(--animation-speed2x) ease,color var(--animation-speed2x) ease,border-color var(--animation-speed2x) ease}#number-input.added{scale:1.2;background-color:#000}#number-input.error{border-color:var(--warn-color);animation:shake .5s;color:var(--warn-color)}.menuButton{flex-shrink:0}.flying-text{position:absolute;font-size:24px;font-weight:700;color:#000;pointer-events:none;transition:transform .5s ease-in-out,opacity .5s ease-out}@keyframes shake{0%{transform:translate(1px)}10%{transform:translate(-1px)}20%{transform:translate(-3px)}30%{transform:translate(3px)}40%{transform:translate(1px)}50%{transform:translate(-1px)}60%{transform:translate(-3px)}70%{transform:translate(3px)}80%{transform:translate(-1px)}90%{transform:translate(1px)}to{transform:translate(1px)}}.categories-list{position:absolute;max-width:800px;left:0;top:0;transition:height var(--animation-speed) ease-in-out;margin:12px var(--buttons-gap) var(--buttons-gap) var(--buttons-gap);width:calc(100% - var(--buttons-gap) - var(--buttons-gap));max-height:50vh;overflow-y:auto}.categories-list h3{color:#fff;margin-bottom:10px;font-size:20px;text-align:center}.categoriesGrid{flex-wrap:wrap;display:grid;grid-template-columns:repeat(3,1fr);gap:var(--buttons-gap)}.categories-list.bottom{bottom:95px;top:unset;margin:var(--buttons-gap) var(--buttons-gap) 12px var(--buttons-gap)}.categories-list button{justify-content:flex-start;padding:8px;font-size:24px;width:100%;height:60px;max-height:var(--button-max-height);background:#000}.categories-list button:active{background:#fff;color:#000}@media (hover: hover) and (pointer: fine){.categories-list button:hover{background:#fff;color:#000}}.categories-list button span{margin:auto;font-size:18px}.categories-list button *{vertical-align:middle}@media (max-width: 474px){.categories-list button span{font-size:14px}}@media (max-width: 374px){.categories-list button button span{display:none}}@media (max-width: 345px){.categories-list button span{font-size:10px}}.keyboard{width:calc(100% - var(--buttons-gap) - var(--buttons-gap));margin:0 var(--buttons-gap) var(--buttons-gap) var(--buttons-gap);display:flex;flex-direction:column;gap:var(--buttons-gap)}.keyboard .numberButtons{display:grid;gap:var(--buttons-gap);grid-template-columns:repeat(3,1fr);width:100%;overflow:hidden;max-height:600px;transition:max-height var(--animation-speed2x) ease-in-out}.keyboard .numberButtons.hidden{max-height:0}.keyboard button{font-size:24px;width:100%;height:60px;max-height:var(--button-max-height);background:#000}.keyboard button:active{background:#fff;color:#000}@media (hover: hover) and (pointer: fine){.keyboard button:hover{background:#fff;color:#000}}.keyboard .show-hide-keyboard{border:none;background:none;z-index:1}.closeButton{width:41px;height:41px;font-size:25px;cursor:pointer;padding:7px;color:#fff;border-radius:var(--border-radius);transition:background-color var(--animation-speed) ease,transform var(--animation-speed) ease}.closeButton.top{display:block;position:absolute;right:17px;top:17px;z-index:0}.closeButton:hover{background-color:var(--warn-color-hover)}.spends-container{width:100%;max-width:800px;height:100%;padding:70px 0 115px;margin:0 auto;display:flex;flex-direction:column;align-items:flex-start;overflow-y:auto}.total-row{flex-shrink:0}.slide-wrapper{width:100%}@keyframes slide-in-from-right{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes slide-in-from-left{0%{transform:translate(-100%)}to{transform:translate(0)}}.slide-wrapper.slide-forward{animation:slide-in-from-right .3s cubic-bezier(.25,.46,.45,.94)}.slide-wrapper.slide-backward{animation:slide-in-from-left .3s cubic-bezier(.25,.46,.45,.94)}.spends-container.loading{display:flex;justify-content:center;align-items:center;height:100vh}.spends-container ul.collapsible{list-style:none;padding:0;margin:0;width:100%;border-radius:var(--border-radius);overflow:hidden;border:1px solid var(--border-color)}.spends-container li{width:100%;margin:1px 0;vertical-align:middle}.spends-container li:first-child,.spends-container li:last-child{margin-top:0}.spends-container ul ul{max-height:0;overflow:hidden;list-style:none;transition:max-height var(--animation-speed) ease}.spends-container input.toggle{display:none}.spends-container input.toggle:checked+label+ul{max-height:1000px}.spends-container .category-label{display:flex;justify-content:flex-start;align-items:center;border:none;padding:8px;font-size:20px;cursor:pointer;text-align:left;background:#00000080;transition:background var(--animation-speed) ease}.spends-container .category-label:hover{background:#000000b3}.spends-container .total{cursor:default;background:#92929280}.spends-container .total:hover{background:#92929280}.spends-container label span{font-size:16px}.spends-container label .category{margin-left:10px}.spends-container label .amount{margin-left:10px;color:gray}.spends-container label .sum{margin-left:auto}.spends-container .total .sum{font-weight:700}.spends-container ul ul li{display:flex;justify-content:flex-start;align-items:center;border:none;padding:5px 10px;cursor:pointer;text-align:left;background:#191919;transition:background var(--animation-speed) ease}.spends-container ul ul li>button{margin-left:auto;flex-shrink:0}.spends-container ul ul li label{width:100%;background:none;cursor:pointer;margin-right:-50px}.spends-container button:focus{outline:none}.spend-amount{flex:1;cursor:pointer;background:none;border:none;color:inherit;font-size:inherit;text-align:left;padding:0}.spend-edit-row{display:flex;align-items:center;gap:6px;flex:1;padding:6px 8px;min-height:52px}.spend-cat-btn{width:var(--button-size);height:var(--button-size);font-size:22px;padding:0;flex-shrink:0}.spend-edit-input{flex:1;background:#ffffff12;border:1px solid var(--border-color);border-radius:var(--border-radius);color:var(--text-color);font-size:16px;padding:8px 10px;outline:none;min-width:0}.spend-edit-input:focus{border-color:#fff}.spend-edit-btn{width:var(--button-size);height:var(--button-size);font-size:18px;padding:0;display:flex;align-items:center;justify-content:center;flex-shrink:0}.removeButton{width:41px;height:41px;font-size:25px;cursor:pointer;padding:7px;color:#fff;border-radius:var(--border-radius);transition:background-color var(--animation-speed) ease,transform var(--animation-speed) ease}.removeButton:hover{background-color:var(--warn-color-hover)}.category-picker-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:200;display:flex;align-items:flex-end;justify-content:center}.category-picker-panel{background:#1a1a1a;border:1px solid var(--border-color);border-radius:var(--border-radius) var(--border-radius) 0 0;width:100%;max-width:800px;max-height:50vh;overflow-y:auto;padding:10px;animation:category-slide-up .25s ease}@keyframes category-slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.category-picker-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--buttons-gap)}.category-picker-item{display:flex;align-items:center;gap:8px;padding:10px 12px;font-size:20px;background:#ffffff0d;border-radius:var(--border-radius);border:1px solid transparent;transition:background var(--animation-speed2x),border-color var(--animation-speed2x)}.category-picker-item span{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.category-picker-item:active{transform:scale(.96)}.category-picker-item.active{background:#fff;color:#000;border-color:#fff}@media (hover: hover) and (pointer: fine){.category-picker-item:hover{background:#ffffff26;border-color:var(--border-color)}.category-picker-item.active:hover{background:#fff;color:#000}}.datePicker{display:flex;justify-content:space-between;align-items:center;padding:10px 20px;border-radius:0 0 var(--border-radius) var(--border-radius);width:100%;max-width:800px;margin:0 auto;position:fixed;background:#00000080;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--border-color);border-top:0;height:70px;overflow:hidden;transition:height var(--animation-speed);top:0;z-index:10}.periodSelect{z-index:1}.datePicker .button{width:auto;font-size:14px;padding:0 10px;text-align:center}.datePicker select.button{padding:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.dateSwitchContainer{position:absolute;left:0;right:0;display:flex;justify-content:center;align-items:center;pointer-events:none}.dateSwitchContainer>*{pointer-events:all}.today-button{position:absolute;right:20px;animation:fadeIn var(--animation-speed) ease-in-out}.daySwitch{display:flex;justify-content:center;align-items:center;width:100%;max-width:25%;margin:0 auto;padding:10px;gap:0}.monthSwitch,.yearSwitch{display:flex;justify-content:center;align-items:center;width:100%;margin:0 auto;padding:10px;gap:0}.login-container{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;width:100vw;background-color:var(--background-color);padding:20px;box-sizing:border-box;gap:28px}.login-logo{width:110px;height:110px;border-radius:50%;object-fit:cover}.login-card{width:100%;max-width:360px;display:flex;flex-direction:column;gap:16px}.login-tabs{display:flex;background:#ffffff12;border:1px solid rgba(255,255,255,.12);border-radius:8px;overflow:hidden;padding:3px;gap:3px}.login-tab{flex:1;padding:9px 0;background:none;border:none;border-radius:6px;color:#ffffff73;font-size:15px;cursor:pointer;transition:background var(--animation-speed) ease,color var(--animation-speed) ease}.login-tab.active{background:#ffffff2e;color:#fff}.login-form{display:flex;flex-direction:column;gap:10px}.login-input{background:#ffffff0f;border:1px solid var(--border-color);border-radius:8px;color:#fff;font-size:15px;padding:12px 14px;outline:none;transition:border-color var(--animation-speed) ease;width:100%;box-sizing:border-box}.login-input:focus{border-color:#fff6}.login-input::placeholder{color:var(--text-muted-color, #888)}.login-heading{font-size:18px;font-weight:600;color:#fff;margin:0;text-align:center}.login-subtext{font-size:13px;color:#ffffff80;text-align:center;margin:0}.login-info{font-size:13px;color:#4caf82;text-align:center}.login-forgot-link{background:none;border:none;color:#ffffff73;font-size:13px;cursor:pointer;padding:0;text-align:center;transition:color var(--animation-speed) ease}.login-forgot-link:hover{color:#ffffffbf}.login-back-link{background:none;border:none;color:#ffffff73;font-size:13px;cursor:pointer;padding:0;text-align:center;margin-top:4px;transition:color var(--animation-speed) ease}.login-back-link:hover{color:#ffffffbf}.login-error{font-size:13px;color:#e57373;text-align:center}.login-submit{background:#ffffff1f;border:1px solid var(--border-color);border-radius:8px;color:#fff;font-size:15px;padding:12px;cursor:pointer;transition:background var(--animation-speed) ease;margin-top:2px}.login-submit:hover:not(:disabled){background:#fff3}.login-submit:disabled{opacity:.5;cursor:default}.login-divider{display:flex;align-items:center;gap:10px;color:var(--text-muted-color, #888);font-size:13px}.login-divider:before,.login-divider:after{content:"";flex:1;height:1px;background:var(--border-color)}.login-social{display:flex;flex-direction:column;gap:10px}.login-social-btn{display:flex;align-items:center;justify-content:center;gap:10px;background:#ffffff0f;border:1px solid var(--border-color);border-radius:8px;color:#fff;font-size:15px;padding:11px;cursor:pointer;transition:background var(--animation-speed) ease}.login-social-btn:hover{background:#ffffff24}.categories-page{position:fixed;top:0;right:0;bottom:0;left:0;max-width:800px;margin:0 auto;padding:12px;display:flex;flex-direction:column;gap:10px;background:transparent}.categories-page-header{display:flex;align-items:center;gap:12px;padding:8px 0;flex-shrink:0}.categories-page-header h2{font-size:20px;font-weight:600;margin:0;flex:1}.saving-indicator{font-size:13px;color:gray}.categories-page-error{color:var(--warn-color);font-size:14px;padding:8px 12px;border:1px solid var(--warn-color);border-radius:var(--border-radius);background:#ff4b4b14}.categories-page-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--buttons-gap);border-radius:var(--border-radius);border:1px solid var(--border-color);flex:1;overflow-y:auto;min-height:0}.categories-page-item{background:#00000080}.cat-display-row{display:flex;align-items:center;gap:10px;padding:8px;min-height:52px}.drag-handle{color:gray;font-size:20px;flex-shrink:0}.cat-icon-preview{font-size:22px;width:28px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.cat-name{flex:1;font-size:16px}.cat-row-actions{display:flex;gap:var(--buttons-gap);flex-shrink:0}.cat-action-btn{width:var(--button-size);height:var(--button-size);font-size:18px;padding:0;display:flex;align-items:center;justify-content:center}.cat-action-btn:disabled{opacity:.25;cursor:default;pointer-events:none}.cat-action-btn.danger{color:var(--warn-color);border-color:var(--warn-color)}@media (hover: hover) and (pointer: fine){.cat-action-btn.danger:hover{background:var(--warn-color);color:#fff}}.cat-edit-row,.cat-add-form{display:flex;align-items:center;gap:6px;padding:8px;min-height:52px}.cat-icon-btn{width:var(--button-size);height:var(--button-size);font-size:22px;padding:0;flex-shrink:0}.cat-name-input{flex:1;background:#ffffff12;border:1px solid var(--border-color);border-radius:var(--border-radius);color:var(--text-color);font-size:16px;padding:8px 10px;outline:none;min-width:0}.cat-name-input:focus{border-color:#fff}.cat-add-btn{width:100%;justify-content:center;gap:8px;font-size:18px;height:var(--button-size);padding:0 16px}.cat-add-btn span{font-size:16px}.cat-reset-btn{background:none;border:none;color:gray;font-size:13px;cursor:pointer;padding:4px 0;text-decoration:underline;text-align:center;margin-top:4px}.cat-reset-btn:hover{color:#fff}.icon-picker-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:200;display:flex;align-items:flex-end;justify-content:center}.icon-picker-panel{background:#1a1a1a;border:1px solid var(--border-color);border-radius:var(--border-radius) var(--border-radius) 0 0;width:100%;max-width:800px;max-height:70vh;display:flex;flex-direction:column;overflow:hidden;animation:slide-up .25s ease}@keyframes slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.icon-picker-header{display:flex;align-items:center;gap:8px;padding:10px 10px 10px 14px;border-bottom:1px solid var(--border-color);flex-shrink:0}.icon-picker-search{flex:1;display:flex;align-items:center;background:#ffffff12;border:1px solid var(--border-color);border-radius:var(--border-radius);padding:0 10px;gap:8px}.icon-picker-search .search-icon{color:gray;font-size:18px;flex-shrink:0}.icon-picker-search input{flex:1;background:none;border:none;outline:none;color:var(--text-color);font-size:16px;padding:8px 0}.icon-picker-close{font-size:22px;padding:6px;color:gray}.icon-picker-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:var(--buttons-gap);overflow-y:auto;padding:10px}.icon-picker-item{font-size:24px;aspect-ratio:1;display:flex;align-items:center;justify-content:center;background:#ffffff0d;border-radius:var(--border-radius);border:1px solid transparent;transition:background var(--animation-speed2x),border-color var(--animation-speed2x)}.icon-picker-item:active,.icon-picker-item.active{background:#fff;color:#000;border-color:#fff}@media (hover: hover) and (pointer: fine){.icon-picker-item:hover{background:#ffffff26;border-color:var(--border-color)}.icon-picker-item.active:hover{background:#fff;color:#000}}
