@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}:root{--brand-primary: #4a6cf7;--brand-secondary: #6a7c94;--brand-accent: #00d9ff;--brand-dark: #2a3b4c;--brand-light: #f8faff;--user-primary: var(--brand-primary);--user-secondary: #5d87ff;--user-success: #4cc9f0;--user-info: #4895ef;--user-warning: #f72585;--user-danger: #e63946;--user-accent: #c4d7ff}body{background-color:var(--brand-dark);color:#fff;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;margin:0;padding:0}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes slideUp{0%{transform:translate(-50%) translateY(100px);opacity:0}to{transform:translate(-50%) translateY(0);opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0;transform:translate(-50%) translateY(-50px)}}.dashboard-container{max-width:1800px;margin:0 auto;padding:2rem 2vw}h1{font-size:2.5rem;font-weight:700;letter-spacing:-1px;margin-bottom:2rem;background:linear-gradient(90deg,var(--brand-primary),var(--brand-accent));-webkit-background-clip:text;background-clip:text;color:transparent}h2{font-size:1.75rem;font-weight:600;color:#fff;margin:2rem 0 1rem}input[type=file]{background:var(--brand-light);color:var(--brand-dark);padding:.75rem 1rem;border-radius:8px;border:2px solid var(--brand-primary);cursor:pointer;font-family:Inter,sans-serif;transition:all .2s ease}input[type=file]:hover{border-color:var(--brand-accent)}.charts-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(600px,1fr));gap:2.5rem;margin:2rem 0}.chart-col{background:#ffffff0d;border-radius:12px;padding:2rem 2rem 1.5rem;box-shadow:0 4px 6px #0000001a;margin:0}.subscriptions-grid-responsive{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem;margin-top:2rem}.subscription-card{background:#ffffff0d;border-radius:12px;padding:2rem;box-shadow:0 4px 6px #0000001a;transition:transform .2s ease,box-shadow .2s ease}.subscription-card:hover{transform:translateY(-2px);box-shadow:0 6px 12px #00000026}.subscription-card h3{font-size:1.25rem;font-weight:600;color:var(--brand-accent);margin:0 0 1rem}.mini-stats-table{width:100%;border-collapse:collapse;margin-bottom:1rem}.mini-stats-table td{padding:.5rem 0;color:#ffffffe6}.mini-stats-table td:first-child{color:#ffffffb3}.subscription-actions{display:flex;gap:1rem;margin-top:1rem}.optimize-btn,.alt-btn{padding:.5rem 1rem;border-radius:8px;border:none;font-weight:500;cursor:pointer;transition:all .2s ease;font-family:Inter,sans-serif}.optimize-btn{background:linear-gradient(135deg,var(--brand-primary),var(--brand-accent));color:#fff}.alt-btn{background:#ffffff1a;color:#fff}.optimize-btn:hover,.alt-btn:hover{transform:translateY(-1px);box-shadow:0 4px 8px #0003}@media (max-width: 1200px){.charts-row,.subscriptions-grid-responsive{grid-template-columns:1fr}}@media (max-width: 768px){.dashboard-container{padding:1rem .5rem}.charts-row{grid-template-columns:1fr;gap:1.2rem}.chart-col{padding:1rem}.subscriptions-grid-responsive{grid-template-columns:1fr;gap:1rem}h1{font-size:2rem}h2{font-size:1.5rem}}@media (max-width: 900px){.subscriptions-grid-responsive{grid-template-columns:1fr;gap:1.2rem}}.upload-area{width:100%;box-sizing:border-box;background:var(--brand-light);border:2px dashed var(--brand-primary);border-radius:12px;padding:2rem 1.5rem;text-align:center;color:var(--brand-dark);font-size:1.1rem;font-weight:500;cursor:pointer;transition:border-color .2s,background .2s;margin-bottom:2rem;position:relative;box-shadow:0 2px 8px #4a6cf70a}.upload-area.drag-active{border-color:var(--brand-accent);background:#e3f6ff}.upload-prompt{color:var(--brand-dark);font-size:2.2rem;font-weight:500}.upload-link{color:var(--brand-primary);text-decoration:underline;cursor:pointer;font-weight:600;transition:color .2s}.upload-link:hover{color:var(--brand-accent)}.charts-grid-2x2{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:2rem;margin:2rem 0 0}.chart-placeholder{background:none;box-shadow:none;margin:0}@media (max-width: 1200px){.charts-grid-2x2{grid-template-columns:1fr;grid-template-rows:auto;gap:1.5rem}}.big-numbers-row{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem;margin-bottom:2.5rem}.big-number-tile{background:#ffffff12;border-radius:14px;box-shadow:0 2px 8px #4a6cf712;padding:2rem 1.5rem 1.5rem;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0}.big-number-label{color:var(--brand-accent);font-size:1.1rem;font-weight:600;margin-bottom:.5rem;letter-spacing:.5px;text-align:center}.big-number-value{color:#fff;font-size:2.5rem;font-weight:700;letter-spacing:-1px;text-shadow:0 2px 8px rgba(74,108,247,.08);text-align:center}@media (max-width: 1000px){.big-numbers-row{grid-template-columns:1fr 1fr;gap:1.2rem}}@media (max-width: 600px){.big-numbers-row{grid-template-columns:1fr;gap:1rem}.big-number-tile{padding:1.2rem .7rem 1rem}.big-number-value{font-size:2rem}}.ai-btn{background:linear-gradient(135deg,#00d9ff,#4a6cf7);color:#fff;border:none;border-radius:8px;font-weight:600;padding:.5rem 1.1rem;cursor:pointer;transition:background .2s,box-shadow .2s;margin-left:.5rem;font-family:Inter,sans-serif;box-shadow:0 2px 8px #4a6cf714}.ai-btn:disabled{opacity:.6;cursor:not-allowed}.ai-btn:hover:not(:disabled){background:linear-gradient(135deg,#4a6cf7,#00d9ff);box-shadow:0 4px 12px #4a6cf726}.ai-suggestion-box{background:#00d9ff14;border-left:4px solid #00d9ff;border-radius:8px;margin-top:1.2rem;padding:1rem 1.2rem;color:#fff;font-size:1.05rem;box-shadow:0 2px 8px #4a6cf712;max-height:320px;overflow-y:auto;word-break:break-word}.ai-suggestion-box.error{background:#f7258514;border-left:4px solid #f72585;color:#f72585}.app-layout{display:flex;min-height:100vh;background:#2c3847}.sidebar{width:220px;background:#232b36;display:flex;flex-direction:column;align-items:center;padding-top:1.5rem;box-shadow:2px 0 8px #00000012;height:100vh;position:fixed;top:0;left:0;z-index:101;justify-content:flex-start}.sidebar-logo{font-size:2.2rem;margin-bottom:2rem}.sidebar-nav{width:100%}.sidebar-item{display:flex;align-items:center;gap:1rem;padding:.9rem 1rem;color:#bfc9da;font-size:1.1rem;cursor:pointer;border:none;background:none;width:100%;box-sizing:border-box;transition:background .15s,color .15s;border-left:4px solid transparent}.sidebar-item:hover,.sidebar-item-active{background:#2d8cff22;color:#fff;border-left:4px solid #2d8cff;font-weight:600}.sidebar-item-disabled{opacity:.4;cursor:not-allowed;color:#6a7c94}.sidebar-item-disabled:hover{background:none;color:#6a7c94;border-left:4px solid transparent;font-weight:400}.sidebar-icon{font-size:1.3rem}.sidebar-label{flex:1}.main-area{flex:1;display:flex;flex-direction:column;min-width:0;margin-left:220px}.topbar{display:flex;align-items:center;justify-content:space-between;background:#232b36;height:64px;padding:0 2.5rem;box-shadow:0 2px 8px #00000012;position:sticky;top:0;z-index:100;width:100%;box-sizing:border-box}.topbar-title{font-size:1.6rem;font-weight:700;color:#2d8cff;letter-spacing:1px;font-family:Inter,sans-serif}.topbar-right{display:flex;align-items:center;gap:1.5rem}.topbar-search{background:#1a2230;border:none;border-radius:6px;padding:.5rem 1rem;color:#fff;font-size:1rem;outline:none;width:180px}.topbar-user{color:#bfc9da;font-size:1.1rem}.main-content{padding:2.5rem 2.5rem 2.5rem 2rem;flex:1;min-width:0}.topbar-hamburger{display:none;flex-direction:column;justify-content:center;gap:4px;width:32px;height:32px;background:none;border:none;margin-right:1.2rem;cursor:pointer;z-index:200}.topbar-hamburger span{display:block;width:22px;height:3px;background:#fff;border-radius:2px;transition:all .2s}.sidebar-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000059;z-index:110;display:block}@media (max-width: 900px){.sidebar{position:fixed;left:-220px;top:0;height:100vh;z-index:120;transition:left .25s}.sidebar.sidebar-open{left:0;box-shadow:2px 0 16px #0000002e}.main-area{margin-left:0}.topbar{padding-left:1rem;padding-right:1rem}.topbar-hamburger{display:flex}.sidebar-overlay{display:block}}@media (max-width: 600px){.main-content{padding:1rem .5rem}.topbar-title{font-size:1.1rem}.topbar-search{width:100px;font-size:.9rem}.sidebar,.sidebar.sidebar-open{width:170px}}.about-stats{margin-top:2.5rem;padding:2rem 1.5rem;background:#ffffff08;border-radius:14px;box-shadow:0 2px 8px #4a6cf712;max-width:900px;margin-left:auto;margin-right:auto}.about-stats-row{display:grid;grid-template-columns:repeat(5,1fr);gap:2rem;margin-top:2rem}.about-stats-tile{background:#ffffff12;border-radius:12px;box-shadow:0 2px 8px #4a6cf714;padding:1.5rem 1rem 1.2rem;display:flex;flex-direction:column;align-items:center;min-width:0}.about-stats-label{color:var(--brand-accent);font-size:1.05rem;font-weight:600;margin-bottom:.5rem;letter-spacing:.5px;text-align:center}.about-stats-value{color:#fff;font-size:2rem;font-weight:700;letter-spacing:-1px;text-shadow:0 2px 8px rgba(74,108,247,.08);text-align:center}@media (max-width: 1100px){.about-stats-row{grid-template-columns:1fr 1fr 1fr;gap:1.2rem}}@media (max-width: 700px){.about-stats-row{grid-template-columns:1fr 1fr;gap:1rem}.about-stats-tile{padding:1rem .5rem .8rem}.about-stats-value{font-size:1.3rem}}@media (max-width: 500px){.about-stats-row{grid-template-columns:1fr;gap:.7rem}}.transaction-filter-select{color:#fff!important}.transaction-filter-select option{background:#2a3b4c!important;color:#fff!important}
