:root{font-family:Segoe UI,system-ui,-apple-system,BlinkMacSystemFont,Helvetica Neue,sans-serif;line-height:1.5;font-weight:400;color:#0f172a;background-color:#f4f6fb;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-height:100vh;background-color:#f4f6fb}#root{min-height:100vh}button{font-family:inherit}html,body,#root{background-color:#0b1220;color:#e5e7eb}a{color:inherit}.app-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;padding:20px 24px;background:linear-gradient(160deg,#0f172aeb,#0b1120e0);border-radius:16px;box-shadow:0 26px 70px -38px #020617d9;border:1px solid rgba(148,163,184,.16)}.brand h1{margin:0;font-size:1.4rem;color:#f8fafc}.brand p{margin:4px 0 0;color:#94a3b8;font-size:.9rem}.nav-toggle{display:none;margin-left:auto;align-items:center;gap:8px;padding:8px 12px;border-radius:10px;border:1px solid rgba(148,163,184,.28);background:#1e293b99;color:#cbd5f5;font-weight:600;cursor:pointer;transition:background-color .2s ease,border-color .2s ease,color .2s ease}.nav-toggle:hover{background-color:#334155bf;border-color:#94a3b866}.app-nav a{padding:10px 14px;border-radius:10px;font-weight:600;color:#cbd5f5;text-decoration:none;background-color:#6366f12e;transition:all .2s ease;border:1px solid transparent}.app-nav a:hover,.app-nav a.active{color:#fff;background-color:#6366f14d;border-color:#6366f166}.avatar-fallback{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:#6366f140;color:#e0e7ff;font-weight:600}.user-name{display:block;font-weight:600;color:#e2e8f0}.page{display:flex;flex-direction:column;gap:24px}.page-header{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;align-items:center}.header-right{display:flex;align-items:center;gap:10px}.add-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;border:none;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;font-size:24px;font-weight:700;cursor:pointer;box-shadow:0 10px 24px -16px #6366f1cc}.add-btn:hover{filter:brightness(1.05)}.page-header h2{margin:0 0 4px;color:#f8fafc}.page-header p{margin:0;color:#f8fafc}.card{background:linear-gradient(155deg,#0f172aeb,#0b1321d9);border-radius:16px;padding:20px 24px;box-shadow:0 28px 80px -40px #020617f2;display:flex;flex-direction:column;gap:16px;border:1px solid rgba(148,163,184,.14)}.modal{background:linear-gradient(160deg,#0f172af7,#0b1321f7 52%,#080c15f7);border-radius:20px;padding:28px 32px;width:min(840px,96vw);box-shadow:0 28px 80px -32px #020617f2,0 0 0 1px #94a3b81f inset;color:#e2e8f0;border:1px solid rgba(148,163,184,.22);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);position:relative;overflow:hidden}@media (max-width: 640px){.modal{padding:24px 20px;border-radius:16px}}.modal h3{color:#e2e8f0;margin:0 0 8px;font-size:1.35rem;font-weight:700;letter-spacing:.01em}.modal .form-error{background-color:#4c0519;color:#fecaca}.modal label{color:#e2e8f0;gap:10px}.modal input,.modal select,.modal textarea{background-color:#080c15d1;border:1px solid rgba(148,163,184,.28);box-shadow:inset 0 0 0 1px #0f172ab3;color:#e2e8f0;transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease}.modal input::placeholder,.modal textarea::placeholder{color:#94a3b8}.modal input:focus,.modal select:focus,.modal textarea:focus{outline:none;border-color:#6366f199;box-shadow:0 0 0 3px #6366f12e,inset 0 0 0 1px #0f172acc;background-color:#080c15eb}.modal select{cursor:pointer;background-image:linear-gradient(120deg,#6366f11f,#0ea5e914)}.modal .link-button{color:#60a5fa}.modal .link-button:not([disabled]):hover{color:#93c5fd}.modal .form{gap:24px}.modal .form-row{gap:20px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.modal .form-row+.form-row{margin-top:4px}.modal .form .form-row:first-of-type label:nth-child(3){display:none}.modal textarea{min-height:150px}.modal .form>label{margin-top:8px}.modal .form-actions{margin-top:10px;gap:16px;justify-content:flex-end;flex-wrap:wrap}.modal .form-actions button{align-self:center}.modal .form-actions button[type=submit]{background:linear-gradient(135deg,#6366f1,#8b5cf6);box-shadow:0 22px 46px -26px #3b82f6d9;border:none}.modal .form-actions button[type=submit]:hover{box-shadow:0 24px 48px -24px #3b82f6e6}.modal .form-actions button[type=button]{background:#94a3b829;color:#cbd5f5;border:1px solid rgba(148,163,184,.32);box-shadow:none}.modal .form-actions button[type=button]:hover{background:#94a3b83d}.form{gap:18px}.source-momo{background:#ec489938;color:#f9a8d4;border-color:#ec489959}.source-vietinbank{background:#0ea5e933;color:#bae6fd;border-color:#38bdf859}.source-mbbank{background:#818cf83d;color:#ddd6fe;border-color:#818cf861}label{display:flex;flex-direction:column;gap:6px;font-weight:600;color:#cbd5f5}input,select,textarea{padding:10px 12px;border-radius:10px;border:1px solid rgba(148,163,184,.32);background-color:#0f172a99;color:#e2e8f0;font-family:inherit;resize:vertical}.form-error{margin:0;padding:10px 14px;background-color:#7f1d1d73;color:#fecaca;border-radius:10px}.form button,.item-actions button,.note-actions button,.source-deposit-form button{align-self:flex-start;padding:10px 16px;border-radius:10px;border:none;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;font-weight:600;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.item,.note-item{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px;border-radius:14px;border:1px solid rgba(148,163,184,.18);background:#0f172a99}.item span,.item time{display:block;color:#94a3b8;font-size:.9rem}.note-line{display:flex;align-items:baseline;gap:4px;color:#94a3b8;font-size:.9rem}.source-logo{width:28px;height:28px;border-radius:6px;object-fit:contain;background:#0f172abf;border:1px solid rgba(148,163,184,.28);padding:2px}.item-actions .amount{font-weight:700;color:#f8fafc}.task-info time{color:#94a3b8;font-size:.85rem}.finance-summary{display:flex;gap:18px;background:#0f172aa6;padding:14px 18px;border-radius:14px;border:1px solid rgba(148,163,184,.18)}.finance-summary span{display:block;font-size:.85rem;color:#94a3b8}.chart-flex{display:flex;align-items:center;gap:16px}.chart-legend{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.chart-legend .label{color:#cbd5f5}.chart-legend .value{color:#f8fafc;font-weight:600}.app{max-width:1100px;margin:0 auto;padding:24px;display:flex;flex-direction:column;gap:24px;color:#e2e8f0}.app-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;padding:20px 24px;background:#fff;background:linear-gradient(160deg,#0f172aeb,#0b1120e0);border-radius:16px;box-shadow:0 12px 40px -24px #0f172a66;box-shadow:0 26px 70px -38px #020617d9;border:1px solid rgba(148,163,184,.16)}.brand{display:flex;align-items:center;gap:16px}.brand h1{margin:0;font-size:1.4rem;color:#0f172a;color:#f8fafc}.brand p{margin:4px 0 0;color:#475569;color:#94a3b8;font-size:.9rem}.brand-logo{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:12px;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;font-weight:700;font-size:1.1rem}.brand-logo-img{width:48px;height:48px;border-radius:12px}.app-nav{display:flex;gap:12px}.nav-toggle{display:none;margin-left:auto;align-items:center;gap:8px;padding:8px 12px;border-radius:10px;border:1px solid rgba(148,163,184,.35);background:#6366f11f;border:1px solid rgba(148,163,184,.28);background:#1e293b99;color:#cbd5f5;font-weight:600;cursor:pointer;transition:background-color .2s ease,border-color .2s ease,color .2s ease}.nav-toggle:hover{background-color:#6366f138;border-color:#94a3b873;background-color:#334155bf;border-color:#94a3b866}.nav-toggle:focus-visible{outline:none;box-shadow:0 0 0 3px #6366f159}.nav-toggle-icon{display:inline-flex}.nav-toggle-label{font-size:.95rem}.app-nav a{padding:10px 14px;border-radius:10px;font-weight:600;color:#475569;color:#cbd5f5;text-decoration:none;background-color:#6366f114;background-color:#6366f12e;transition:all .2s ease;border:1px solid transparent}.app-nav a:hover,.app-nav a.active{color:#4338ca;background-color:#6366f12e;color:#fff;background-color:#6366f14d;border-color:#6366f166}.auth-area{display:flex;align-items:center;gap:12px}.auth-area button{padding:8px 16px;border-radius:10px;border:none;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;font-weight:600;cursor:pointer;box-shadow:0 12px 24px -18px #6366f1e6}.auth-area button:hover{filter:brightness(1.05)}.user-info{display:flex;align-items:center;gap:14px}.user-info img{display:flex;align-items:center;gap:12px}.user-info img{width:40px;height:40px;border-radius:50%}.avatar-fallback{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:#e0e7ff;color:#4338ca;background:#6366f140;color:#e0e7ff;font-weight:600}.user-name{display:block;font-weight:600;color:#1e293b;color:#e2e8f0}.user-info-details{display:flex;align-items:center;gap:12px}@media (max-width: 520px){.user-info-details{flex-direction:column;align-items:flex-start;gap:8px}}.app-main{display:flex;flex-direction:column;gap:24px;padding-bottom:32px}.transfer-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;border:none;background:linear-gradient(135deg,#f59e0b,#ef4444);color:#fff;font-size:20px;font-weight:700;line-height:1;cursor:pointer;box-shadow:0 10px 24px -16px #ef4444bf}.transfer-btn:hover{filter:brightness(1.05)}.page-header h2{margin:0 0 4px;color:#1e293b;color:#f8fafc}.page-header p{margin:0;color:#64748b;color:#94a3b8}.card{background-color:#fff;background:linear-gradient(155deg,#0f172aeb,#0b1321d9);border-radius:16px;padding:20px 24px;box-shadow:0 12px 40px -24px #0f172a66;box-shadow:0 28px 80px -40px #020617f2;display:flex;flex-direction:column;gap:16px;border:1px solid rgba(148,163,184,.14)}.modal-overlay{position:fixed;inset:0;background:#020617b3;display:flex;align-items:center;justify-content:center;padding:20px;z-index:50}.modal{background:linear-gradient(160deg,#0f172af7,#0b1321f7 52%,#080c15f7);border-radius:20px;padding:28px 32px;width:min(840px,96vw);gap:18px}.form-actions{display:flex;gap:12px}.badge,.item .badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:.8rem;font-weight:600;line-height:1.4;border:1px solid transparent}.badge+.badge{margin-left:6px}.source-momo{background:#fce7f3;color:#be185d;border-color:#f9a8d4;background:#ec489938;color:#f9a8d4;border-color:#ec489959}.source-vietinbank{background:#e0f2fe;color:#0369a1;border-color:#7dd3fc;background:#0ea5e933;color:#bae6fd;border-color:#38bdf859}.source-mbbank{background:#ede9fe;color:#5b21b6;border-color:#c4b5fd;background:#818cf83d;color:#ddd6fe;border-color:#818cf861}.form-row{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}label{display:flex;flex-direction:column;gap:6px;font-weight:600;color:#334155;color:#cbd5f5}input,select,textarea,button{font-size:1rem}input,select,textarea{padding:10px 12px;border-radius:10px;border:1px solid #cbd5f5;background-color:#f8fafc;border:1px solid rgba(148,163,184,.32);background-color:#0f172a99;color:#e2e8f0;font-family:inherit;resize:vertical}input::placeholder,textarea::placeholder{color:#94a3b8}textarea{min-height:120px}.form-error{margin:0;padding:10px 14px;background-color:#fee2e2;color:#b91c1c;background-color:#7f1d1d73;color:#fecaca;border-radius:10px}.form button,.item-actions button,.note-actions button,.source-deposit-form button{align-self:flex-start;padding:10px 16px;border-radius:10px;border:none;background:#4338ca;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;font-weight:600;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.form button:hover,.item-actions button:hover,.note-actions button:hover,.source-deposit-form button:hover{transform:translateY(-1px);box-shadow:0 10px 18px -14px #4338cae6}.form button[disabled]{opacity:.7;cursor:not-allowed;box-shadow:none}.list ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.item,.note-item{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px;border-radius:14px;border:1px solid #e2e8f0;border:1px solid rgba(148,163,184,.18);background:#0f172a99}.item.income{border-left:4px solid #22c55e}.item.expense{border-left:4px solid #ef4444}.item.completed{opacity:.65}.item strong{font-size:1.05rem}.item span,.item time{display:block;color:#64748b;color:#94a3b8;font-size:.9rem}.note-line{display:flex;align-items:baseline;gap:4px;color:#64748b;color:#94a3b8;font-size:.9rem}.item-actions{display:flex;align-items:center;gap:12px}.source-logo{width:28px;height:28px;border-radius:6px;object-fit:contain;background:#fff;border:1px solid #e2e8f0;background:#0f172abf;border:1px solid rgba(148,163,184,.28);padding:2px}.transaction-meta{display:flex;align-items:center;gap:8px;margin-top:6px}.transaction-meta .amount{font-weight:700}.amount.income{color:#22c55e}.amount.expense{color:#ef4444}.item-actions .amount{font-weight:700;color:#1e293b;color:#f8fafc}.task-info{display:flex;flex-direction:column;gap:6px;margin-left:12px}.task-info strong{font-size:1rem}.task-info time{color:#64748b;color:#94a3b8;font-size:.85rem}.list input[type=checkbox]{width:18px;height:18px}.finance-summary{display:flex;gap:18px;background:#f1f5ff;background:#0f172aa6;padding:14px 18px;border-radius:14px;border:1px solid rgba(148,163,184,.18)}.finance-summary span{display:block;font-size:.85rem;color:#475569;color:#94a3b8}.finance-summary strong{font-size:1.1rem}.positive{color:#16a34a}.charts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px}.chart-card h3{margin:0 0 8px;color:#e2e8f0;font-weight:700}.chart-flex{display:flex;flex-direction:column;gap:6px}.chart-legend li{display:grid;grid-template-columns:14px 1fr auto;gap:8px;align-items:center;display:flex;flex-direction:column;gap:6px}.chart-legend li{display:grid;grid-template-columns:14px 1fr auto;gap:8px;align-items:center}.chart-legend .swatch{width:14px;height:14px;border-radius:3px}.chart-legend .label{color:#334155;color:#cbd5f5}.chart-legend .value{color:#0f172a;color:#f8fafc;font-weight:600}.negative{color:#dc2626}.chart-actions-card{padding-top:14px}.chart-actions{display:flex;flex-wrap:wrap;gap:10px}.chart-actions .icon-btn{width:auto;padding:8px 12px;font-weight:700}.chart-actions-row .icon-btn{background:#02061799;border:1px solid #334155;color:#e2e8f0}.chart-actions-row .icon-btn:hover{background:#1e293bb3;border-color:#475569}.budget-toast-container{display:flex;flex-direction:column;gap:12px}.budget-toast{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;padding:14px 18px;border-radius:14px;background:linear-gradient(135deg,#7f1d1da6,#450a0ab8);border:1px solid rgba(248,113,113,.28);color:#fecaca;box-shadow:0 26px 60px -32px #7f1d1db3}.budget-toast strong{color:#fca5a5}.budget-toast-content p{margin:4px 0 0;font-size:.9rem;line-height:1.4;color:#fde8e8}.budget-toast-actions{display:flex;align-items:center;gap:8px}.budget-toast-btn{padding:8px 12px;border-radius:10px;border:1px solid transparent;background:#f8717147;color:#fee2e2;font-weight:600;cursor:pointer;transition:filter .2s ease,border-color .2s ease}.budget-toast-btn.secondary{background:#7f1d1d38;color:#fecaca;border:1px solid rgba(248,113,113,.4)}.budget-toast-btn.ghost{background:transparent;color:#fca5a5;border:1px solid transparent}.budget-toast-btn:disabled{opacity:.7;cursor:not-allowed}.budget-toast-btn:not([disabled]):hover{filter:brightness(1.05);border-color:#f8717173}.budget-toast-btn.secondary:not([disabled]):hover{background:#7f1d1d47}.budget-toast-btn.ghost:not([disabled]):hover{text-decoration:underline}.budget-toast-error{display:block;margin-top:6px;color:#f87171;font-weight:600}.budgets-card{gap:20px}.budgets-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}.budgets-toggle{flex:1 1 auto;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px;border-radius:12px;border:none;background:transparent;cursor:pointer;color:inherit;text-align:left;transition:background .2s ease}.budgets-toggle:hover{background:#94a3b814}.budgets-toggle:focus-visible{outline:2px solid rgba(99,102,241,.9);outline-offset:2px}.budgets-toggle-text{display:flex;flex-direction:column;align-items:flex-start;gap:2px}.budgets-header h3{margin:0}.budgets-header p{margin:4px 0 0;color:#94a3b8;font-size:.88rem}.budgets-toggle-icon{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:999px;background:#94a3b81f;color:#cbd5f5;font-size:.8rem;transition:transform .2s ease,background .2s ease}.budgets-toggle:hover .budgets-toggle-icon{background:#94a3b833}.budgets-toggle-icon.open{transform:rotate(180deg)}.budget-manage-btn{padding:8px 16px;border-radius:12px;border:none;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;font-weight:600;cursor:pointer;box-shadow:0 14px 32px -24px #4f46e5e6;transition:filter .2s ease}.budget-manage-btn:hover{filter:brightness(1.05)}.budget-list{list-style:none;margin:0;padding:0;display:grid;gap:16px}.budget-item{padding:16px 18px;border-radius:14px;border:1px solid rgba(148,163,184,.2);background:#0f172ab3;display:flex;flex-direction:column;gap:12px}.budget-item.warning{border-color:#fb923c66;background:#fb923c29}.budget-item.danger{border-color:#f8717173;background:#f8717133}.budget-item-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.budget-item-meta{display:flex;align-items:center;gap:12px}.budget-item-meta .swatch{width:18px;height:18px;border-radius:6px;flex-shrink:0}.budget-month{display:block;margin-top:2px;font-size:.82rem;color:#94a3b8}.budget-item-actions{display:flex;align-items:center;gap:12px}.link-button.danger-link{color:#fca5a5}.link-button.danger-link:not([disabled]):hover{text-decoration:underline}.budget-values{display:flex;flex-wrap:wrap;gap:16px;font-size:.92rem;color:#cbd5f5}.budget-values strong{color:#f8fafc}.budget-progress{height:10px;background:#94a3b838;border-radius:999px;overflow:hidden}.budget-progress-fill{height:100%;border-radius:999px;background:linear-gradient(135deg,#22c55e,#16a34a);transition:width .3s ease}.budget-progress-fill.warning{background:linear-gradient(135deg,#fb923c,#f97316)}.budget-progress-fill.danger{background:linear-gradient(135deg,#f87171,#ef4444)}.transaction-history-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.transaction-history-header h3{margin:0}.transaction-filter{display:flex;flex-wrap:wrap;align-items:flex-end;gap:16px}.transaction-filter-field{display:flex;flex-direction:column;gap:8px;min-width:220px}.transaction-filter-label{text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:700;color:#94a3b8d9}.transaction-filter-select-wrapper{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:12px;border:1px solid rgba(99,102,241,.35);background:linear-gradient(135deg,#1e293bd9,#0f172af2);box-shadow:0 18px 38px -28px #0f172ad9;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}.transaction-filter-select-wrapper:focus-within{border-color:#818cf8cc;box-shadow:0 0 0 2px #6366f159;transform:translateY(-1px)}.transaction-filter-icon{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:10px;background:#6366f12e;color:#a5b4fc}.transaction-filter select{flex:1;background:transparent;border:none;color:#f8fafc;font-size:.95rem;font-weight:600;appearance:none;min-width:0;padding:0;outline:none}.transaction-filter input{flex:1;background:transparent;border:none;color:#f8fafc;font-size:.95rem;font-weight:600;min-width:0;padding:0;outline:none}.transaction-filter input[type=date]{color-scheme:dark}.transaction-filter input[type=date]::-webkit-calendar-picker-indicator{filter:invert(.85);cursor:pointer}.transaction-filter select option{color:#0f172a}.transaction-filter-caret{color:#94a3b8e6;font-size:.85rem;pointer-events:none}.transaction-filter-reset{padding:9px 18px;border-radius:12px;border:1px solid rgba(148,163,184,.26);background:linear-gradient(135deg,#0f172a99,#1e293bbf);color:#e2e8f0;cursor:pointer;font-weight:600;letter-spacing:.01em;transition:transform .2s ease,border-color .2s ease,background .2s ease}.transaction-filter-reset:hover{transform:translateY(-1px);background:linear-gradient(135deg,#4f46e547,#1e293bd9);border-color:#818cf899}.transaction-filter-reset:focus-visible{outline:none;box-shadow:0 0 0 2px #6366f18c}.transaction-filter-reset:active{transform:translateY(0);background:#4f46e573;border-color:#6366f1a6}.transaction-filter-summary{margin-top:12px;padding:10px 14px;border-radius:12px;background:linear-gradient(135deg,#1e293b99,#0f172abf);color:#e2e8f0;font-weight:600;display:inline-flex;gap:6px;align-items:center}.transaction-filter-summary strong{color:#f97316;font-weight:700}@media (max-width: 520px){.transaction-filter{align-items:stretch}.transaction-filter-field{width:100%}}.budget-status-row{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:.88rem}.budget-status{font-weight:600;color:#38bdf8}.budget-status.warning{color:#fb923c}.budget-status.danger{color:#fda4af}.budget-percent{font-weight:600;color:#f8fafc}.trend-analysis{display:flex;flex-direction:column;gap:24px}.trend-analysis__header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:18px}.trend-analysis__header h3{margin:0}.trend-analysis__header p{margin:6px 0 0;color:#cbd5e1;max-width:520px}.trend-analysis__meta{margin-top:12px;display:flex;flex-wrap:wrap;gap:12px;color:#94a3b8;font-size:.9rem}.trend-analysis__filters{display:flex;gap:18px;align-items:center;flex-wrap:wrap}.trend-analysis__filters label{display:flex;flex-direction:column;gap:8px;color:#cbd5e1;font-size:.9rem;font-weight:600}.trend-analysis__filters select{min-width:200px}.trend-analysis__chart{background:#0f172a8c;border:1px solid rgba(148,163,184,.2);border-radius:20px;padding:16px 20px 24px}.trend-analysis__chart .trend-chart{width:100%;height:auto;display:block;overflow:visible}.trend-analysis__summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.trend-summary-card{background:#0f172aa6;border:1px solid rgba(148,163,184,.18);border-radius:16px;padding:16px 20px;display:flex;flex-direction:column;gap:8px}.trend-summary-card__label{text-transform:uppercase;letter-spacing:.08em;color:#94a3b8;font-size:.75rem;font-weight:700}.trend-summary-card strong{color:#f8fafc;font-size:1.35rem}.trend-summary-card span{color:#94a3b8;line-height:1.45}.trend-positive{color:#4ade80}.trend-negative{color:#f87171}.trend-analysis__insights{background:#0f172a94;border:1px solid rgba(148,163,184,.16);border-radius:16px;padding:18px 22px}.trend-analysis__insights h4{margin:0 0 12px;color:#e2e8f0}.trend-analysis__insights ul{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:8px;color:#cbd5e1}.trend-analysis__insights li{line-height:1.5}.trend-analysis__empty{background:#0f172a8c;border:1px dashed rgba(148,163,184,.28);border-radius:16px;padding:24px;text-align:center;color:#cbd5e1;line-height:1.6}@media (max-width: 640px){.trend-analysis__header{flex-direction:column}.trend-analysis__filters,.trend-analysis__filters label,.trend-analysis__filters select{width:100%}}.list-sources .source-actions{text-align:right;display:flex;align-items:center;gap:8px}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:8px;border:1px solid rgba(148,163,184,.32);background:#0f172aa6;color:#e2e8f0;font-weight:700;line-height:1;cursor:pointer}.icon-btn:hover{background:#1e293bbf}.source-deposit-form{grid-column:1 / -1;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.source-deposit-input{max-width:220px;border-radius:12px}.source-balance-hint{display:block;margin-top:4px;font-size:.78rem;color:#94a3b8}.source-deposit-meta{flex-basis:100%;display:flex;flex-direction:column;gap:4px;font-size:.82rem;color:#cbd5f5}.source-rate-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.source-rate-row strong{color:#f8fafc}.source-rate-updated{color:#94a3b8}.source-rate-error{color:#fca5a5;font-weight:500}.source-rate-preview{color:#f8fafc}.link-button{background:none;border:none;padding:0;margin:0;color:#93c5fd;border-radius:0;font-weight:600;font-size:.8rem;cursor:pointer}.link-button[disabled]{opacity:.6;cursor:not-allowed}.link-button:not([disabled]):hover{text-decoration:underline;color:#bfdbfe}.transfer-card{display:flex;flex-direction:column;gap:18px}.modal .transfer-card{background:transparent;padding:0;box-shadow:none;gap:24px}.modal .transfer-card h3{margin:0;color:#e2e8f0;display:flex;align-items:center;gap:12px}.modal .transfer-card h3:after{content:"";flex:1;height:1px;background:linear-gradient(90deg,#94a3b899,#94a3b800)}.transfer-card .transfer-form{display:flex;flex-direction:column;gap:16px}.transfer-sources{display:grid;grid-template-columns:minmax(240px,1fr) auto minmax(240px,1fr);gap:16px;align-items:stretch}.transfer-source{border:1px solid rgba(148,163,184,.2);border-radius:12px;padding:14px;background:#0f172aad;display:flex;align-items:center;justify-content:center}.transfer-source-header{display:flex;align-items:center;gap:12px;width:100%}.transfer-source-logo{width:48px;height:48px;border-radius:12px;background:#0f172ac7;display:inline-flex;align-items:center;justify-content:center;overflow:hidden}.transfer-source-logo img{width:100%;height:100%;object-fit:contain}.transfer-logo-placeholder{width:100%;height:100%;display:inline-flex;align-items:center;justify-content:center;font-weight:700;color:#c7d2fe}.transfer-source-info{display:flex;flex-direction:column;gap:6px}.modal .transfer-source{position:relative;isolation:isolate;background:linear-gradient(155deg,#1e293bd9,#0f172ae0);border-color:#94a3b833;box-shadow:0 18px 40px -28px #020617f2;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease;overflow:hidden}.modal .transfer-source:before{content:"";position:absolute;inset:-1px;border-radius:inherit;background:radial-gradient(110% 110% at 0% 0%,rgba(99,102,241,.38),transparent 62%);opacity:0;transition:opacity .25s ease;z-index:-1}.modal .transfer-source:hover,.modal .transfer-source:focus-within{transform:translateY(-2px);border-color:#818cf880;box-shadow:0 24px 46px -30px #38bdf899}.modal .transfer-source:hover:before,.modal .transfer-source:focus-within:before{opacity:1}.modal .transfer-source-logo{background:#0f172acc;border:1px solid rgba(148,163,184,.45);box-shadow:0 16px 32px -26px #3b82f6cc}.modal .transfer-logo-placeholder{background:linear-gradient(140deg,#6366f133,#38bdf82e);color:#f8fafc}.modal .transfer-source-info strong{color:#f8fafc;font-size:1rem}.modal .transfer-source-info span{color:#cbd5f5}.modal .transfer-source select{font-weight:600;color:#f8fafc;background-color:#080c15c7}.modal .transfer-balance{color:#facc15;font-weight:700}.modal .transfer-hint{color:#9ca3c9}.modal .transfer-arrow{color:#38bdf8;background:#94a3b81f;border-radius:16px;width:52px;height:52px;box-shadow:0 20px 40px -28px #38bdf88c}.modal .transfer-summary{color:#cbd5f5;background:#0f172aad;border:1px solid rgba(148,163,184,.16);border-radius:12px;padding:12px 16px;box-shadow:inset 0 0 0 1px #0f172a99}.modal .transfer-summary strong{color:#38bdf8}.transfer-source-info strong{color:#f8fafc}.transfer-source-info span{color:#94a3b8;font-size:.85rem}.transfer-balance{color:#facc15;font-weight:600}.transfer-hint{color:#94a3b8;font-size:.78rem}.transfer-label{font-weight:600;color:#cbd5f5;display:flex;flex-direction:column;gap:6px}.transfer-arrow{display:flex;align-items:center;justify-content:center;font-size:1.6rem;color:#94a3b8;align-self:center}.transfer-inputs{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.modal .transfer-inputs label{color:#e2e8f0}.modal .transfer-inputs input{font-size:1.2rem;font-weight:600;letter-spacing:.02em}.transfer-summary{display:flex;flex-direction:column;gap:6px;font-size:.9rem;color:#94a3b8}.transfer-summary strong{color:#f8fafc}.transfer-form .form-actions button{align-self:flex-start;padding:10px 16px;border-radius:10px;border:none;font-weight:600;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.transfer-form .form-actions button:hover{transform:translateY(-1px);box-shadow:0 10px 18px -14px #4338cae6}.transfer-form .form-actions button[disabled]{opacity:.7;cursor:not-allowed;box-shadow:none}.modal .transfer-form .form-actions button[type=submit]{background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;box-shadow:0 22px 46px -26px #3b82f6d9}.modal .transfer-form .form-actions button[type=submit]:hover{box-shadow:0 24px 48px -24px #3b82f6e6}.modal .transfer-form .form-actions button[type=button]{background:#94a3b829;color:#cbd5f5;border:1px solid rgba(148,163,184,.32);box-shadow:none}.modal .transfer-form .form-actions button[type=button]:hover{background:#94a3b83d}@media (max-width: 640px){.transfer-sources{grid-template-columns:1fr}.transfer-arrow{display:none}.card{padding:18px 16px;border-radius:14px}.page-header{gap:14px}.header-right{gap:10px}.finance-summary{gap:12px}.summary-grid{gap:16px}.chart-flex{flex-direction:column;align-items:stretch;gap:18px}.chart-legend{width:100%}.chart-actions{width:100%;flex-direction:column;align-items:stretch}.chart-actions .icon-btn{justify-content:center}}@media (max-width: 480px){.app{padding:12px}.app-header{padding:16px 14px;gap:16px}.brand h1{font-size:1.1rem}.brand p{font-size:.8rem}.nav-toggle{padding:8px 10px;gap:6px}.nav-toggle-label{font-size:.9rem}.auth-area,.user-info{gap:10px}.user-info-details .user-name{flex-basis:100%}.user-info-details button{flex:1 1 100%}.finance-summary{flex-direction:column;align-items:flex-start;gap:10px}.finance-summary strong{font-size:1rem}.chart-actions{gap:8px}.chart-actions .icon-btn{width:100%}.summary-grid,.form-row{grid-template-columns:1fr}.modal{padding:20px 16px}.login{padding:32px 16px}}.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px}.mini-stats{display:flex;flex-direction:column;gap:4px;color:#475569;font-size:.9rem}.note-item{display:block}.note-content{display:flex;flex-direction:column;gap:12px}.note-header{display:flex;flex-direction:column;gap:4px}.note-header strong{font-size:1.05rem}.note-actions{display:flex;gap:10px}.note-edit{display:flex;flex-direction:column;gap:12px}.notes-list ul{gap:16px}.auth-required{align-items:flex-start;text-align:left}@media (max-width: 768px){.app{padding:16px}.app-header{align-items:flex-start;flex-direction:column;align-items:stretch;gap:20px;padding:18px 16px}.brand{width:100%;gap:12px}.brand>div{flex:1}.brand h1{font-size:1.2rem}.brand p{font-size:.85rem}.nav-toggle{display:inline-flex}.app-nav{order:3;display:none;width:100%;flex-direction:column;gap:6px;background:#0f172aeb;border:1px solid rgba(148,163,184,.2);border-radius:12px;padding:8px}.app-nav.open{display:flex}.app-nav a{display:block;text-align:left}.auth-area{order:4;width:100%;flex-direction:column;align-items:stretch;gap:12px}.auth-area>button{width:100%}.user-info{width:100%;flex-wrap:wrap;gap:12px}.user-info-details{flex:1;flex-wrap:wrap;gap:8px}.user-info-details .user-name{flex:1 1 160px}.user-info-details button{flex:0 0 auto}.header-right{width:100%;flex-wrap:wrap;justify-content:flex-start;gap:12px}.finance-summary{width:100%;flex-wrap:wrap;justify-content:space-between}.item,.note-item{flex-direction:column;align-items:flex-start}.item-actions,.note-actions{width:100%;justify-content:flex-end}}.login{min-height:calc(100vh + -0px);display:grid;place-items:center;padding:40px 24px;position:relative;isolation:isolate}.login:before,.login:after{content:"";position:absolute;inset:-30% -10% auto;height:60%;background:radial-gradient(1200px 600px at left -20% top -10%,rgba(99,102,241,.18),transparent 60%),radial-gradient(900px 500px at right 10% bottom -20%,rgba(139,92,246,.16),transparent 60%);z-index:-1}.login-layout{width:100%;max-width:1100px;display:grid;grid-template-columns:1.2fr 1fr;gap:36px;align-items:center}.login-centered{width:100%;max-width:480px}.login-hero{display:flex;flex-direction:column;gap:16px}.login-hero h1{margin:0;font-size:clamp(2rem,3vw + 1rem,3rem);line-height:1.1;color:#0f172a}.login-hero p{margin:6px 0 0;color:#475569;max-width:60ch}.brand-badge{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:14px;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;font-weight:800;letter-spacing:.5px;box-shadow:0 18px 40px -22px #6366f1b3}.login-highlights{margin:10px 0 0;padding-left:18px;color:#334155}.login-highlights li{margin:6px 0}.login-card{background:#ffffffe6;backdrop-filter:saturate(140%) blur(8px);-webkit-backdrop-filter:saturate(140%) blur(8px);border:1px solid rgba(99,102,241,.12);border-radius:18px;padding:28px;box-shadow:0 16px 46px -28px #0f172a80;display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center}.login-card h2{margin:0 0 8px}.muted{color:#64748b}.google-btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;height:52px;padding:0 22px;border-radius:9999px;border:1px solid rgba(99,102,241,.35);background:#fff;color:#0f172a;font-weight:700;letter-spacing:.2px;cursor:pointer;transition:transform .12s ease,box-shadow .2s ease,border-color .2s ease,background-color .2s ease;box-shadow:0 14px 36px -22px #6366f1e6,0 1px #ffffff14 inset}.google-btn.large{font-size:1rem}.google-btn:hover{transform:translateY(-1px);border-color:#6366f199;box-shadow:0 18px 44px -22px #6366f1f2}.google-btn:active{transform:translateY(0)}.google-btn:focus-visible{outline:none;box-shadow:0 0 0 3px #6366f173}.google-btn:disabled{opacity:.75;cursor:not-allowed;box-shadow:none}.g-icon{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:9999px;background:#fff;box-shadow:0 10px 18px -14px #000c}.login-note{margin-top:10px;color:#64748b}@media (max-width: 900px){.login-layout{grid-template-columns:1fr}.login-hero{order:1}.login-card{order:2}}
