.fab-add-transaction{z-index:100;background:linear-gradient(135deg, var(--color-indigo-500), var(--color-green-500));color:#fff;width:60px;height:60px;box-shadow:var(--shadow-lg);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:2.2rem;font-weight:700;transition:background .2s,box-shadow .2s,transform .15s;display:flex;position:fixed;bottom:32px;right:32px}.fab-add-transaction:hover{background:linear-gradient(135deg, var(--color-green-500), var(--color-indigo-500));transform:scale(1.07);box-shadow:0 8px 24px #6366f12e}@media (width<=600px){.fab-add-transaction{width:52px;height:52px;font-size:1.7rem;bottom:16px;right:16px}}:root{--bg-primary:#fff;--bg-secondary:#f5f7fa;--bg-tertiary:#eef1f6;--text-primary:#1a202c;--text-secondary:#4a5568;--text-tertiary:#718096;--border-color:#e2e8f0;--shadow-sm:0 1px 2px 0 #1a202c0d;--shadow-md:0 4px 6px -1px #1a202c1a;--shadow-lg:0 10px 25px -5px #1a202c26;--shadow-xl:0 20px 40px -10px #1a202c1f;--shadow-glass:0 8px 32px 0 #1f268726;--color-indigo-400:#818cf8;--color-indigo-500:#6366f1;--color-indigo-600:#4f46e5;--color-indigo-700:#4338ca;--color-purple-500:#a855f7;--color-blue-500:#0ea5e9;--color-blue-600:#0284c7;--color-emerald-500:#10b981;--color-emerald-600:#059669;--color-green-500:#22c55e;--color-green-600:#16a34a;--color-red-500:#ef4444;--color-red-600:#dc2626;--color-orange-500:#f97316;--color-orange-600:#ea580c;--color-amber-500:#f59e0b;--color-slate-50:#f8fafc;--color-slate-100:#f1f5f9}html.dark{--bg-primary:#0f172a;--bg-secondary:#1a2844;--bg-tertiary:#253555;--text-primary:#f1f5f9;--text-secondary:#cbd5e1;--text-tertiary:#94a3b8;--border-color:#334155;--shadow-sm:0 1px 2px 0 #0000004d;--shadow-md:0 4px 6px -1px #0006;--shadow-lg:0 10px 25px -5px #00000080;--shadow-xl:0 20px 40px -10px #0009;--shadow-glass:0 8px 32px 0 #0000004d}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%}body{background-color:var(--bg-secondary);color:var(--text-primary);letter-spacing:-.01em;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica Neue,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;line-height:1.6;transition:background-color .3s,color .3s;position:relative}body:before{content:"";pointer-events:none;z-index:-1;background-image:repeating-linear-gradient(45deg,#0000,#0000 2px,#8b5cf605 2px 4px);position:fixed;inset:0}.app-layout{background-color:var(--bg-secondary);height:100vh;display:flex}.sidebar{background-color:var(--bg-primary);border-right:1px solid var(--border-color);width:260px;box-shadow:var(--shadow-sm);z-index:40;flex-direction:column;transition:transform .3s;display:flex}.sidebar-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:24px 20px;display:flex}.logo{color:var(--color-indigo-600);align-items:center;gap:12px;font-size:18px;font-weight:700;display:flex}.logo-icon{font-size:24px}.sidebar-close{color:var(--text-primary);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:4px;transition:background-color .2s;display:none}.sidebar-close:hover{background-color:var(--bg-tertiary)}.sidebar-nav{flex:1;padding:16px 12px;overflow-y:auto}.nav-item{color:var(--text-secondary);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:12px;align-items:center;gap:12px;margin-bottom:4px;padding:12px 16px;font-size:14px;font-weight:500;text-decoration:none;transition:all .2s;display:flex}.nav-item:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}.nav-item.active{background-color:var(--color-indigo-50);color:var(--color-indigo-600)}html.dark .nav-item.active{background-color:#6366f126}.sidebar-footer{border-top:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:16px;display:flex}.user-profile{flex:1;align-items:center;gap:12px;display:flex}.user-avatar{background:linear-gradient(135deg, var(--color-indigo-500), var(--color-indigo-600));color:#fff;border-radius:8px;justify-content:center;align-items:center;width:40px;height:40px;font-size:14px;font-weight:700;display:flex}.user-info{flex:1}.user-email{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:500;overflow:hidden}.user-label{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px;font-size:11px}.logout-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;padding:8px;transition:all .2s;display:flex}.logout-btn:hover{background-color:var(--bg-tertiary);color:var(--color-red-500)}.sidebar-overlay{z-index:30;background-color:#00000080;display:none;position:fixed;inset:0}.main-content{flex-direction:column;flex:1;display:flex;overflow:hidden}.top-bar{background-color:var(--bg-primary);border-bottom:1px solid var(--border-color);height:64px;box-shadow:var(--shadow-sm);justify-content:space-between;align-items:center;padding:0 24px;display:flex}.top-bar-left{flex:1;align-items:center;gap:20px;display:flex}.menu-toggle{color:var(--text-primary);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:8px;transition:background-color .2s;display:none}.menu-toggle:hover{background-color:var(--bg-tertiary)}.page-title{color:var(--text-primary);font-size:24px;font-weight:700}.top-bar-right{align-items:center;gap:12px;display:flex}.theme-toggle{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;padding:8px;transition:all .2s;display:flex}.theme-toggle:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}.page-content{background-color:var(--bg-secondary);flex:1;padding:32px;overflow-y:auto}.summary-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px;margin-bottom:40px;display:grid}.summary-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:var(--shadow-glass);border:1px solid #ffffff40;border-radius:24px;padding:28px;transition:all .4s cubic-bezier(.23,1,.32,1);position:relative;overflow:hidden}.summary-card:hover{box-shadow:var(--shadow-xl);border-color:#6366f166;transform:translateY(-8px)}.card-header{justify-content:space-between;align-items:flex-start;margin-bottom:16px;display:flex}.card-header h3{text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);margin:0;font-size:13px;font-weight:600}.summary-card.income .card-header{color:var(--color-green-500)}.summary-card.expense .card-header{color:var(--color-red-500)}.summary-card.balance .card-header{color:var(--color-indigo-600)}.summary-card.balance{background:linear-gradient(135deg, var(--color-indigo-50), #6366f10d);border-color:var(--color-indigo-200)}html.dark .summary-card.balance{background:linear-gradient(135deg,#6366f11a,#6366f10d);border-color:#6366f14d}.card-value{color:var(--text-primary);margin:0;font-size:28px;font-weight:700}.card-value.positive{color:var(--color-green-500)}.card-value.negative{color:var(--color-red-500)}.card{background-color:var(--bg-primary);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);border-radius:16px;padding:24px;transition:all .3s}.card:hover{box-shadow:var(--shadow-md)}.modern-table,.table-card table{border-collapse:collapse;background-color:var(--bg-primary);border-radius:12px;width:100%;overflow:hidden}.modern-table thead,.table-card table thead{background-color:var(--bg-tertiary);border-bottom:1px solid var(--border-color)}.modern-table th,.table-card table th{text-align:left;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);padding:16px;font-size:12px;font-weight:600}.modern-table td,.table-card table td{border-bottom:1px solid var(--border-color);color:var(--text-primary);padding:14px 16px;font-size:14px}.modern-table tbody tr:hover,.table-card table tbody tr:hover{background-color:var(--bg-tertiary)}.modern-table tbody tr:last-child td,.table-card table tbody tr:last-child td{border-bottom:none}.btn-primary,.btn-secondary,button[type=submit],button[type=button]{cursor:pointer;border:none;border-radius:8px;align-items:center;gap:8px;padding:10px 18px;font-size:14px;font-weight:600;text-decoration:none;transition:all .2s;display:inline-flex}.btn-primary{background-color:var(--color-indigo-600);color:#fff}.btn-primary:hover{background-color:var(--color-indigo-500);box-shadow:var(--shadow-md)}.btn-secondary{background-color:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover{background-color:var(--border-color)}.badge-expense{color:var(--color-red-500);background-color:#ef44441a;border-radius:4px;padding:4px 8px;font-size:12px;font-weight:600;display:inline-block}.badge-income{color:var(--color-green-500);background-color:#10b9811a;border-radius:4px;padding:4px 8px;font-size:12px;font-weight:600;display:inline-block}.form-field{border:1px solid var(--border-color);background-color:var(--bg-primary);width:100%;color:var(--text-primary);border-radius:8px;padding:12px 14px;font-size:14px;transition:all .2s}.form-field:focus{border-color:var(--color-indigo-500);box-shadow:0 0 0 3px var(--color-indigo-50);outline:none}html.dark .form-field:focus{box-shadow:0 0 0 3px #6366f11a}.form-field::placeholder{color:var(--text-tertiary)}.login-page{background:radial-gradient(circle at top left, #6366f129, transparent 28%), linear-gradient(135deg, var(--bg-secondary), var(--bg-primary));justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card{background:var(--bg-primary);border:1px solid var(--border-color);width:min(100%,460px);box-shadow:var(--shadow-lg);text-align:center;border-radius:24px;padding:36px 28px}.login-badge{background:linear-gradient(135deg, var(--color-indigo-500), var(--color-indigo-600));color:#fff;border-radius:18px;justify-content:center;align-items:center;width:56px;height:56px;margin-bottom:16px;font-size:28px;display:inline-flex}.login-eyebrow{text-transform:uppercase;letter-spacing:.1em;color:var(--color-indigo-600);margin-bottom:8px;font-size:12px;font-weight:700}.login-card h1{color:var(--text-primary);margin-bottom:12px;font-size:28px}.login-description{color:var(--text-secondary);margin-bottom:28px;line-height:1.7}.google-login-btn{border:1px solid var(--border-color);color:#3c4043;cursor:pointer;background:#fff;border-radius:999px;justify-content:center;align-items:center;gap:12px;width:100%;padding:14px 18px;font-size:16px;font-weight:700;transition:all .2s;display:inline-flex}.google-login-btn:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}html.dark .google-login-btn{background:var(--bg-primary)}.google-login-icon{width:18px;height:18px}.login-footer{color:var(--text-tertiary);flex-wrap:wrap;justify-content:center;gap:16px;margin-top:24px;font-size:13px;display:flex}.login-footer span{background:var(--bg-secondary);border-radius:999px;padding:6px 10px}.modal-overlay{z-index:1000;background:#0f172a8c;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal-card{background:var(--bg-primary);border:1px solid var(--border-color);width:min(100%,560px);max-height:88vh;box-shadow:var(--shadow-lg);border-radius:20px;padding:24px;overflow-y:auto}.modal-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.modal-header h2{color:var(--text-primary);margin:0}.icon-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:0;font-size:24px}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.form-field-group{flex-direction:column;gap:8px;display:flex}.form-field-group label{color:var(--text-primary);font-weight:600}.form-field-group.span-2,.form-actions.span-2{grid-column:1/-1}.form-actions{justify-content:flex-end;gap:12px;margin-top:8px;display:flex}.alert{border-radius:10px;margin-bottom:16px;padding:12px 14px;font-size:14px}.alert-danger{color:var(--color-red-500);background:#ef44441f;border:1px solid #ef444433}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:.3s fadeIn}@media (width<=768px){.sidebar{width:min(260px,90%);height:100%;position:fixed;top:0;left:0;transform:translate(-100%)}.sidebar.open{transform:translate(0)}.sidebar-close,.sidebar-overlay{display:block}.menu-toggle{display:flex}.summary-grid{grid-template-columns:1fr;margin-bottom:20px}.top-bar{flex-direction:column;align-items:stretch;gap:12px;height:auto;padding:0 16px}.top-bar-left,.top-bar-right{justify-content:space-between;width:100%}.page-content{padding:16px}.summary-grid{grid-template-columns:1fr;gap:16px;margin-bottom:20px}.summary-card{padding:20px}.card-value{font-size:24px}.page-title{font-size:20px}.card{border-radius:12px;padding:20px}.form-grid{grid-template-columns:1fr}.modern-table,.table-card table{width:100%;display:block;overflow-x:auto}.modern-table th,.table-card table th,.modern-table td,.table-card table td{white-space:nowrap}.form-field-group.span-2,.form-actions.span-2{grid-column:1}.btn-primary,.btn-secondary{width:100%;padding:12px 16px;font-size:14px}.modal-card{border-radius:16px;padding:20px}.modern-table,.table-card table{font-size:12px}.modern-table th,.table-card table th{padding:12px;font-size:11px}.modern-table td,.table-card table td{padding:12px;font-size:13px}.login-card{border-radius:20px;padding:28px 20px}.login-card h1{font-size:24px}.login-description{font-size:14px}.google-login-btn{padding:12px 16px;font-size:14px}.fab-add-transaction{width:52px;height:52px;font-size:1.6rem;bottom:16px;right:16px}}@media (width>=769px) and (width<=1024px){.sidebar{width:200px}.page-content{padding:24px}.summary-grid{grid-template-columns:repeat(2,1fr);gap:18px}.page-title{font-size:22px}.modal-card{width:min(100%,480px)}.form-grid{grid-template-columns:repeat(2,1fr)}.login-card{width:min(100%,450px)}}@media (width>=1025px){.summary-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.page-content{padding:32px}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.modal-card{width:min(100%,600px)}}@media (height<=600px) and (orientation:landscape){.app-layout{height:auto}.page-content{padding:12px}.summary-grid{gap:12px;margin-bottom:12px}.card{padding:16px}}@media (hover:none) and (pointer:coarse){.btn-primary,.btn-secondary,.nav-item,.logout-btn,.theme-toggle{min-width:44px;min-height:44px;padding:12px 16px}.summary-card:hover{transform:none}.card:hover{box-shadow:var(--shadow-sm)}.fab-add-transaction:hover{transform:none}}@media (resolution>=2x){body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}@media print{.sidebar,.top-bar,.fab-add-transaction,.btn-primary,.btn-secondary{display:none}.page-content{background:#fff;padding:0}.card{box-shadow:none;page-break-inside:avoid;border:1px solid #ccc}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}.summary-card:before{content:"";opacity:.5;pointer-events:none;position:absolute;inset:0}.summary-card-income{background:linear-gradient(135deg,#10b98114,#22c55e0a);border-color:#10b98140}.summary-card-expense{background:linear-gradient(135deg,#ef444414,#f973160a);border-color:#ef444440}.summary-card-balance{background:linear-gradient(135deg,#6366f11f,#a855f70d);border-color:#6366f14d}.card-title-section{align-items:center;gap:12px;display:flex}.card-icon{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff1a;border:1px solid #fff3;border-radius:12px;justify-content:center;align-items:center;width:44px;height:44px;font-size:24px;display:inline-flex}.card-value{color:var(--text-primary);z-index:1;letter-spacing:-.02em;margin:0 0 8px;font-size:36px;font-weight:800;position:relative}.card-label{color:var(--text-tertiary);z-index:1;margin:0;font-size:12px;position:relative}.expense-chart-container{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff9;border:1px solid #ffffff4d;border-radius:24px;padding:28px;box-shadow:0 8px 32px #1f268726}.transactions-table-container{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff9;border:1px solid #ffffff4d;border-radius:24px;overflow:hidden;box-shadow:0 8px 32px #1f268726}.transactions-table{border-collapse:collapse;width:100%}.transactions-table thead{background-color:var(--bg-tertiary)}.transactions-table th{text-align:left;text-transform:uppercase;letter-spacing:.8px;color:var(--text-secondary);border-bottom:2px solid var(--border-color);padding:14px 24px;font-size:12px;font-weight:700}.transactions-table td{border-bottom:1px solid var(--border-color);color:var(--text-primary);padding:16px 24px}.transaction-amount{text-align:right;font-weight:700}.transaction-amount.income{color:var(--color-emerald-600)}.transaction-amount.expense{color:var(--color-red-600)}
