.app-content{min-height:100vh;padding-top:60px;background:#f5f7fa}@media(max-width:640px){.app-content{padding-top:56px}}.navbar{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;height:60px;padding:0 24px;background:#fff;box-shadow:0 1px 4px #0000001a}.navbar-brand{display:flex;align-items:center;gap:8px;text-decoration:none}.navbar-logo{font-size:1.4rem}.navbar-title{font-size:1.1rem;font-weight:700;color:#2c5aa0;letter-spacing:-.3px}.nav-links{display:flex;align-items:center;gap:4px}.nav-link{padding:8px 16px;border-radius:8px;font-size:.95rem;font-weight:500;color:#555;text-decoration:none;transition:background .15s,color .15s}.nav-link:hover{background:#f0f4ff;color:#2c5aa0}.nav-link.active{background:#e8efff;color:#2c5aa0;font-weight:600}.nav-user{display:flex;align-items:center;gap:8px;margin-left:8px;padding-left:12px;border-left:1px solid #e0e0e0}.nav-username{font-size:.85rem;color:#555;font-weight:500}.nav-logout{padding:6px 12px;border:1.5px solid #d1d5db;border-radius:6px;background:none;font-size:.85rem;color:#666;cursor:pointer;transition:border-color .15s,color .15s,background .15s}.nav-logout:hover{border-color:#dc3545;color:#dc3545;background:#fff5f5}.nav-toggle-input{display:none}.nav-hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:4px}.nav-hamburger span{display:block;width:24px;height:2px;background:#333;border-radius:2px;transition:transform .2s,opacity .2s}@media(max-width:640px){.navbar{padding:0 16px;flex-wrap:wrap;height:auto;min-height:56px;align-items:center}.navbar-brand{flex:1}.nav-hamburger{display:flex}.nav-links{display:none;width:100%;flex-direction:column;align-items:stretch;padding:8px 0 12px;gap:2px}.nav-toggle-input:checked~.nav-links{display:flex}.nav-toggle-input:checked+.nav-hamburger span:nth-child(1){transform:translateY(7px) rotate(45deg)}.nav-toggle-input:checked+.nav-hamburger span:nth-child(2){opacity:0}.nav-toggle-input:checked+.nav-hamburger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.nav-link{padding:12px 8px;border-radius:6px;font-size:1rem}}.txlist-container{max-width:1100px;margin:0 auto;padding:24px 20px 48px}.txlist-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;gap:16px;flex-wrap:wrap}.txlist-header-left{display:flex;align-items:baseline;gap:10px}.txlist-title{font-size:1.6rem;font-weight:700;color:#222;margin:0}.txlist-count{font-size:.85rem;color:#888;background:#f0f0f0;padding:2px 8px;border-radius:20px}.txlist-header-actions{display:flex;align-items:center;gap:10px}.txlist-filter-btn{padding:9px 16px;border:1.5px solid #d1d5db;border-radius:8px;background:#fff;font-size:.9rem;font-weight:500;color:#555;cursor:pointer;display:flex;align-items:center;gap:6px;transition:border-color .15s,background .15s}.txlist-filter-btn:hover,.txlist-filter-btn.active{border-color:#2c5aa0;color:#2c5aa0;background:#f0f4ff}.txlist-filter-btn.has-filters{border-color:#2c5aa0;color:#2c5aa0}.filter-dot{width:7px;height:7px;border-radius:50%;background:#2c5aa0;display:inline-block}.txlist-filters{background:#f8faff;border:1px solid #dbe4ff;border-radius:12px;padding:16px 20px;margin-bottom:20px}.filters-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:14px}.filter-group{display:flex;flex-direction:column;gap:5px}.filter-group label{font-size:.8rem;font-weight:600;color:#555;text-transform:uppercase;letter-spacing:.4px}.filter-group select,.filter-group input{padding:8px 10px;border:1.5px solid #d1d5db;border-radius:8px;font-size:.9rem;color:#333;background:#fff;outline:none;transition:border-color .15s}.filter-group select:focus,.filter-group input:focus{border-color:#2c5aa0}.filters-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px}.btn-clear{background:none;border:none;font-size:.9rem;color:#888;cursor:pointer;padding:8px 12px;border-radius:6px;transition:background .15s}.btn-clear:hover{background:#f0f0f0;color:#444}.txlist-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}.txlist-empty{text-align:center;padding:60px 20px;color:#888}.txlist-empty-title{font-size:1.2rem;font-weight:600;color:#555;margin-bottom:6px}.txlist-empty-sub{font-size:.9rem}.txlist-pagination{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:32px}.page-btn{padding:8px 18px;border:1.5px solid #d1d5db;border-radius:8px;background:#fff;font-size:.9rem;font-weight:500;color:#444;cursor:pointer;transition:border-color .15s,background .15s}.page-btn:hover:not(:disabled){border-color:#2c5aa0;color:#2c5aa0;background:#f0f4ff}.page-btn:disabled{opacity:.4;cursor:not-allowed}.page-info{font-size:.9rem;color:#666;min-width:120px;text-align:center}@media(max-width:768px){.txlist-container{padding:16px 14px 64px}.txlist-title{font-size:1.3rem}.filters-grid{grid-template-columns:1fr 1fr}.txlist-grid{grid-template-columns:1fr}}@media(max-width:480px){.txlist-header{flex-direction:column;align-items:flex-start}.txlist-header-actions{width:100%;justify-content:space-between}.filters-grid{grid-template-columns:1fr}}.tx-card{background:#fff;border:1px solid #e8edf3;border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:12px;transition:box-shadow .15s}.tx-card:hover{box-shadow:0 2px 12px #00000014}.tx-card-top{display:flex;align-items:center;justify-content:space-between}.tx-badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.badge--sale{background:#d1f7e0;color:#166534}.badge--income{background:#dbeafe;color:#1d4ed8}.badge--expense{background:#fee2e2;color:#991b1b}.badge--investment{background:#ede9fe;color:#5b21b6}.tx-date{font-size:.8rem;color:#888}.tx-card-body{display:flex;flex-direction:column;gap:8px}.tx-product{font-size:1rem;font-weight:600;color:#222;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tx-amounts{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}.tx-amount-gross,.tx-amount-net,.tx-amount-fee{display:flex;flex-direction:column;gap:2px}.tx-amount-label{font-size:.7rem;color:#999;text-transform:uppercase;letter-spacing:.4px}.tx-amount-value{font-size:.9rem;font-weight:600;color:#333}.tx-amount-value--net{color:#166534}.tx-amount-value--fee{color:#991b1b;font-weight:500}.tx-card-footer{display:flex;align-items:center;gap:12px;padding-top:8px;border-top:1px solid #f0f0f0}.tx-qty{font-size:.8rem;color:#666;background:#f5f5f5;padding:2px 8px;border-radius:4px}.tx-desc{font-size:.8rem;color:#888;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tx-delete-btn{margin-left:auto;background:none;border:none;cursor:pointer;font-size:1rem;padding:4px 6px;border-radius:6px;opacity:.6;transition:opacity .15s,background .15s}.tx-delete-btn:hover{opacity:1;background:#fee2e2}@media(max-width:480px){.tx-amounts{grid-template-columns:1fr 1fr}.tx-amount-fee{grid-column:1 / -1}}.tx-form-overlay{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:200;padding:16px}.tx-form-modal{background:#fff;border-radius:16px;width:100%;max-width:520px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0003;display:flex;flex-direction:column}.tx-form-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 16px;border-bottom:1px solid #f0f0f0;position:sticky;top:0;background:#fff;z-index:1;border-radius:16px 16px 0 0}.tx-form-title{font-size:1.1rem;font-weight:700;color:#222;margin:0}.tx-form-close{background:none;border:none;font-size:1.1rem;cursor:pointer;color:#888;width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;transition:background .15s}.tx-form-close:hover{background:#f5f5f5;color:#333}.tx-form-validation-error{margin:12px 24px 0;padding:10px 14px;background:#fee2e2;color:#991b1b;border-radius:8px;font-size:.9rem}.tx-form-body{padding:20px 24px 24px;display:flex;flex-direction:column;gap:16px}.tx-form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.tx-form-group{display:flex;flex-direction:column;gap:6px}.tx-form-group label{font-size:.85rem;font-weight:600;color:#444}.tx-form-group input,.tx-form-group select{padding:10px 12px;border:1.5px solid #d1d5db;border-radius:8px;font-size:.95rem;color:#222;background:#fff;outline:none;transition:border-color .15s;width:100%}.tx-form-group input:focus,.tx-form-group select:focus{border-color:#2c5aa0;box-shadow:0 0 0 3px #2c5aa01f}.tx-form-group select{cursor:pointer}.tx-form-actions{display:flex;gap:12px;justify-content:flex-end;padding-top:4px}@media(max-width:640px){.tx-form-overlay{align-items:flex-end;padding:0}.tx-form-modal{border-radius:20px 20px 0 0;max-height:95vh}.tx-form-row{grid-template-columns:1fr}.tx-form-actions{flex-direction:column-reverse}.tx-form-actions .button{width:100%;text-align:center}}.button{background:var(--button-primary-bg, #2c5aa0);color:#fff;border:none;padding:12px 24px;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:background-color .2s ease;width:auto}.button:hover{background:var(--button-primary-hover, #1e3f73)}.button:active{transform:translateY(1px)}.button:disabled{background:#6c757d;cursor:not-allowed;opacity:.6}.button--secondary{background:#6c757d}.button--secondary:hover{background:#5a6268}.button--full-width{width:100%}.loading-container{display:flex;justify-content:center;align-items:center;min-height:200px;flex-direction:column}.loading-spinner{width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid #2c5aa0;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-text{color:#666;font-size:1rem}.error-container{background:#fee;border:1px solid #fcc;border-radius:8px;padding:20px;text-align:center;color:#c33;margin:20px 0}@media(max-width:768px){.error-container{padding:16px}}.error-container h3{margin:0 0 8px;font-size:1.2rem}.error-container p{margin:0 0 16px;font-size:1rem}.product-card{background:#fff;border-radius:12px;padding:20px;margin-bottom:16px;box-shadow:0 2px 8px #0000001a;border:1px solid #e0e0e0;transition:all .2s ease;cursor:pointer}.product-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #00000026}.product-card:active{transform:translateY(0)}@media(max-width:768px){.product-card{padding:16px;margin-bottom:12px}}.product-name{font-size:1.25rem;font-weight:600;color:#333;margin-bottom:8px;line-height:1.3}@media(max-width:768px){.product-name{font-size:1.1rem}}.product-description{color:#666;font-size:.95rem;line-height:1.4;margin-bottom:12px}@media(max-width:768px){.product-description{font-size:.9rem}}.container{max-width:1200px;margin:0 auto;padding:20px;min-height:100vh}@media(max-width:768px){.container{padding:16px}}.products-header{display:flex;align-items:center;gap:12px;margin-bottom:24px}.products-title{font-size:1.75rem;font-weight:700;color:#1a1a1a;margin:0}.products-count{font-size:.85rem;color:#888;background:#f0f0f0;padding:2px 10px;border-radius:12px}.products-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}@media(max-width:768px){.products-grid{grid-template-columns:1fr;gap:12px}}.empty-state{text-align:center;padding:40px 20px;color:#666}@media(max-width:768px){.empty-state{padding:30px 16px}}.empty-state-title{font-size:1.5rem;margin-bottom:8px;color:#333}@media(max-width:768px){.empty-state-title{font-size:1.3rem}}.empty-state-text{font-size:1rem;color:#666}.currencies-page{max-width:700px;margin:0 auto;padding:24px 20px 48px}.currencies-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;gap:12px}.currencies-header-left{display:flex;align-items:baseline;gap:10px}.currencies-title{font-size:1.6rem;font-weight:700;color:#222;margin:0}.currencies-count{font-size:.85rem;color:#888;background:#f0f0f0;padding:2px 8px;border-radius:20px}.currency-form{background:#f8faff;border:1px solid #dbe4ff;border-radius:12px;padding:20px;margin-bottom:24px;display:flex;flex-direction:column;gap:16px}.currency-form-title{font-size:1rem;font-weight:700;color:#222;margin:0}.currency-form-error{padding:10px 14px;background:#fee2e2;color:#991b1b;border-radius:8px;font-size:.9rem;margin:0}.currency-form-row{display:grid;grid-template-columns:120px 100px 1fr;gap:12px;align-items:end}.currency-form-group{display:flex;flex-direction:column;gap:5px}.currency-form-group label{font-size:.82rem;font-weight:600;color:#555}.currency-form-group input{padding:9px 11px;border:1.5px solid #d1d5db;border-radius:8px;font-size:.95rem;color:#222;outline:none;transition:border-color .15s}.currency-form-group input:focus{border-color:#2c5aa0;box-shadow:0 0 0 3px #2c5aa01a}.currency-form-actions{display:flex;justify-content:flex-end}.currencies-list{display:flex;flex-direction:column;gap:10px}.currency-card{display:flex;align-items:center;gap:16px;padding:14px 16px;background:#fff;border:1px solid #e8edf3;border-radius:10px;transition:box-shadow .15s}.currency-card:hover{box-shadow:0 2px 8px #00000012}.currency-symbol{font-size:1.1rem;font-weight:700;color:#2c5aa0;min-width:36px;text-align:center;background:#e8efff;padding:6px 10px;border-radius:8px}.currency-info{flex:1;display:flex;flex-direction:column;gap:2px}.currency-code{font-size:.95rem;font-weight:600;color:#222}.currency-name{font-size:.82rem;color:#888}.currency-delete{background:none;border:none;cursor:pointer;font-size:1rem;padding:6px 8px;border-radius:6px;opacity:.5;transition:opacity .15s,background .15s}.currency-delete:hover{opacity:1;background:#fee2e2}.currencies-empty{text-align:center;padding:48px 20px;color:#888;font-size:.95rem}@media(max-width:600px){.currencies-page{padding:16px 14px 48px}.currencies-title{font-size:1.3rem}.currency-form-row{grid-template-columns:1fr 1fr}.currency-form-group--name{grid-column:1 / -1}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f5f5}#root{min-height:100vh}.auth-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:16px;color:#555;font-size:1rem}.auth-loading-spinner{width:36px;height:36px;border:3px solid #e0e0e0;border-top-color:#2c5aa0;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
