*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#f0f2f5;color:#1a1a2e;min-height:100vh}.loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;gap:1rem}.spinner{width:40px;height:40px;border:4px solid #e5e7eb;border-top-color:#2563eb;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.app{max-width:1440px;margin:0 auto;padding:0 1.25rem 2.5rem}.app-header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem 0;border-bottom:1px solid #e5e7eb;margin-bottom:1.5rem;flex-wrap:wrap;gap:1rem}.app-header h1{font-size:1.75rem;font-weight:700;color:#1e293b}.balances-summary{display:flex;gap:.75rem}.balance-chip{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:2rem;font-weight:600}.balance-chip.usd{background:#dbeafe;color:#1d4ed8}.balance-chip.eur{background:#fef3c7;color:#b45309}.currency-label{font-size:.75rem;text-transform:uppercase;opacity:.7}.balance-value{font-size:1.1rem}.app-main{display:flex;flex-direction:column;gap:1.5rem}.top-section{display:flex;gap:1.5rem;align-items:flex-start}.top-section .money-input{flex:1}@media (max-width: 900px){.top-section{flex-direction:column}}.card{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 1px 3px #0000001a,0 1px 2px #0000000f}.card h2{font-size:1.1rem;font-weight:600;color:#334155;margin-bottom:1rem}.money-input .input-row{display:flex;flex-direction:column;gap:.75rem}.currency-toggle{display:flex;background:#f1f5f9;border-radius:8px;padding:3px}.toggle-btn{flex:1;padding:.5rem 1rem;border:none;background:transparent;border-radius:6px;font-weight:500;cursor:pointer;transition:all .2s;font-size:.9rem;color:#64748b;font-family:inherit}.toggle-btn.active{background:#fff;color:#1e293b;box-shadow:0 1px 2px #0000001a}.amount-input{width:100%;padding:.75rem 1rem;border:2px solid #e2e8f0;border-radius:8px;font-size:1.1rem;font-family:inherit;transition:border-color .2s;outline:none}.amount-input:focus{border-color:#2563eb}.amount-input::placeholder{color:#94a3b8}.action-buttons{display:flex;gap:.5rem}.btn{padding:.6rem 1.25rem;border:none;border-radius:8px;font-weight:600;font-size:.9rem;cursor:pointer;transition:all .2s;font-family:inherit}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-add{flex:1;background:#16a34a;color:#fff}.btn-add:hover:not(:disabled){background:#15803d}.btn-subtract{flex:1;background:#dc2626;color:#fff}.btn-subtract:hover:not(:disabled){background:#b91c1c}.btn-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:8px;cursor:pointer;font-size:1.25rem;line-height:1;padding:0;transition:background .2s,transform .15s;background:#ffffff26;color:#fff}.btn-icon:hover{background:#ffffff40;transform:scale(1.1)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:1000;display:flex;align-items:center;justify-content:center;padding:1.5rem;animation:fadeIn .15s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:#fff;border-radius:16px;display:flex;flex-direction:column;max-height:80vh;width:100%;max-width:640px;box-shadow:0 20px 60px #00000040;animation:slideUp .2s ease-out}@keyframes slideUp{0%{transform:translateY(24px);opacity:0}to{transform:translateY(0);opacity:1}}@media (max-width: 640px){.modal-overlay{padding:0}.modal-content{max-width:100%;max-height:100vh;height:100vh;border-radius:0}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid #e5e7eb;flex-shrink:0}.modal-header h2{margin:0;font-size:1.2rem;font-weight:600;color:#1e293b}.modal-close{background:none;border:none;font-size:1.3rem;cursor:pointer;color:#64748b;padding:.25rem;line-height:1;border-radius:6px;transition:background .15s}.modal-close:hover{background:#f1f5f9;color:#1e293b}.modal-toolbar{padding:.75rem 1.5rem;display:flex;align-items:center;gap:.75rem;border-bottom:1px solid #f1f5f9;flex-shrink:0}.bank-search{flex:1;padding:.5rem .75rem;border:2px solid #e2e8f0;border-radius:8px;font-size:.9rem;font-family:inherit;outline:none;transition:border-color .2s}.bank-search:focus{border-color:#2563eb}.bank-actions{display:flex;gap:.75rem;flex-shrink:0}.btn-link{background:none;border:none;color:#2563eb;cursor:pointer;font-size:.8rem;font-family:inherit;text-decoration:underline}.btn-link:hover{color:#1d4ed8}.modal-body{flex:1;overflow-y:auto;padding:.75rem 1.5rem}.modal-footer{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;border-top:1px solid #e5e7eb;flex-shrink:0}.selected-count{font-size:.85rem;color:#64748b}.btn-done{background:#2563eb;color:#fff;padding:.5rem 1.5rem}.btn-done:hover{background:#1d4ed8}.bank-list{display:flex;flex-direction:column;gap:.15rem}.bank-list-item{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border-radius:8px;cursor:pointer;font-size:.9rem;transition:background .15s;-webkit-user-select:none;user-select:none}.bank-list-item:hover{background:#f1f5f9}.bank-list-item input[type=checkbox]{accent-color:#2563eb;width:16px;height:16px;flex-shrink:0}.bank-list-label{color:#1e293b}.totals-header{display:flex;align-items:center;justify-content:space-between;cursor:pointer;-webkit-user-select:none;user-select:none;margin-bottom:.25rem}.totals-header h2{margin-bottom:0}.collapse-toggle{background:none;border:none;font-size:.85rem;color:#64748b;cursor:pointer;font-family:inherit;padding:.2rem .5rem;border-radius:4px;transition:background .15s}.collapse-toggle:hover{background:#f1f5f9;color:#334155}.totals-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem}.total-item{padding:1rem;background:#f8fafc;border-radius:10px;border:1px solid #e2e8f0}.total-item .bank-name{font-size:.85rem;font-weight:500;color:#475569;margin-bottom:.4rem}.total-item .total-value{font-size:1.4rem;font-weight:700;color:#0f172a;margin-bottom:.3rem}.total-item .rate-info{font-size:.8rem;color:#64748b}.total-item .rate-details{font-size:.7rem;color:#94a3b8;margin-top:.3rem;display:flex;flex-direction:column;gap:.1rem}.graph-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;flex-wrap:wrap;gap:.75rem}.graph-header h2{margin-bottom:0}.period-select{padding:.5rem .75rem;border:2px solid #e2e8f0;border-radius:8px;font-size:.9rem;font-weight:500;font-family:inherit;color:#1e293b;background:#fff;cursor:pointer;outline:none;transition:border-color .2s;min-width:140px}.period-select:focus{border-color:#2563eb}.period-select:hover{border-color:#94a3b8}.graph-loading,.graph-empty{display:flex;align-items:center;justify-content:center;height:300px;color:#94a3b8}.table-wrapper{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.85rem}thead th{background:#f8fafc;padding:.7rem .6rem;text-align:left;font-weight:600;color:#475569;border-bottom:2px solid #e2e8f0;white-space:nowrap}tbody td{padding:.6rem;border-bottom:1px solid #f1f5f9;white-space:nowrap}tbody tr:hover{background:#f8fafc}tbody tr.cancelled{opacity:.5}tbody tr.cancelled td{text-decoration:line-through}.op-badge{display:inline-flex;align-items:center;gap:.2rem;padding:.2rem .5rem;border-radius:4px;font-size:.75rem;font-weight:600;text-transform:uppercase}.op-badge.add{background:#dcfce7;color:#166534}.op-badge.subtract{background:#fee2e2;color:#991b1b}.amount-cell{font-weight:600;font-variant-numeric:tabular-nums}.status-badge{display:inline-block;padding:.2rem .5rem;border-radius:4px;font-size:.7rem;font-weight:600;text-transform:uppercase}.status-badge.active{background:#dcfce7;color:#166534}.status-badge.cancelled{background:#fee2e2;color:#991b1b}.btn-cancel-sm{padding:.3rem .6rem;border:1px solid #e2e8f0;background:#fff;border-radius:6px;font-size:.75rem;color:#dc2626;cursor:pointer;transition:all .2s;font-family:inherit}.btn-cancel-sm:hover{background:#fef2f2;border-color:#fecaca}.empty-state{text-align:center;padding:2rem;color:#94a3b8;font-style:italic}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:#f1f5f9;border-radius:3px}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}
