:root{--bg-primary:#0f172a;--bg-card:#1e293bb3;--bg-card-hover:#1e293b;--border-color:#ffffff1a;--text-primary:#f8fafc;--text-secondary:#94a3b8;--accent-purple:#a855f7;--accent-teal:#14b8a6;--accent-red:#ef4444;--accent-green:#22c55e;--accent-blue:#3b82f6;--font-main:"Inter", system-ui, sans-serif;--spacing-sm:.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--radius-md:12px;--radius-lg:16px;--shadow-glow:0 0 15px #a855f726}body{font-family:var(--font-main);background-color:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;min-height:100vh;margin:0}*{box-sizing:border-box}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:.4s ease-out forwards fadeIn}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.skeleton{background-color:var(--bg-card-hover);border-radius:var(--radius-md);animation:2s cubic-bezier(.4,0,.6,1) infinite pulse}.glass-card{background:var(--bg-card);-webkit-backdrop-filter:blur(10px);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-lg);transition:background .2s,transform .2s,box-shadow .2s}.glass-card:hover{background:var(--bg-card-hover);box-shadow:var(--shadow-glow)}.btn{color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;background:0 0;justify-content:center;align-items:center;gap:.5rem;padding:.5rem 1rem;font-family:inherit;font-weight:500;transition:all .2s;display:inline-flex}.btn:hover{background:#ffffff1a}.btn-primary{background:linear-gradient(135deg, var(--accent-purple), var(--accent-blue));border:none;font-weight:600}.btn-primary:hover{opacity:.9;transform:translateY(-1px)}.btn-danger{background:var(--accent-red);color:#fff;border:none}.btn-danger:hover{background:#dc2626}.container{max-width:1200px;padding:var(--spacing-md);margin:0 auto}.input-control{border:1px solid var(--border-color);color:var(--text-primary);background:#0f172a99;border-radius:8px;width:100%;padding:.6rem;font-family:inherit}.input-control:focus{outline:2px solid var(--accent-purple);border-color:#0000}.header-container{z-index:50;border-radius:0 0 var(--radius-lg) var(--radius-lg);border-top:none;margin-bottom:2rem;padding:1rem;position:sticky;top:0}.header-content{justify-content:space-between;align-items:center;display:flex}.logo-section{align-items:center;gap:1rem;display:flex}.mobile-menu-btn{color:var(--text-primary);cursor:pointer;background:0 0;border:none;padding:.5rem;display:none}.logo-brand{align-items:center;gap:.5rem;display:flex}.logo-icon{color:var(--accent-purple);font-size:1.5rem}.logo-brand h1{background:linear-gradient(90deg, #f8fafc, var(--text-secondary));-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin:0;font-size:1.25rem;font-weight:700}.desktop-nav{gap:1rem;display:flex}.nav-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:.5rem;padding:.5rem 1rem;font-family:inherit;font-weight:500;transition:all .2s;display:flex}.nav-btn:hover{color:var(--text-primary);background:#ffffff0d}.nav-btn.active{color:var(--text-primary);background:#ffffff1a;box-shadow:inset 0 1px 1px #ffffff1a}.user-controls{align-items:center;gap:1.5rem;display:flex}.role-toggle{border:1px solid var(--border-color);cursor:pointer;background:#0f172acc;border-radius:20px;justify-content:space-between;width:160px;padding:.25rem;display:flex;position:relative}.role-slider{background:#ffffff1a;border-radius:16px;width:calc(50% - .25rem);height:calc(100% - .5rem);transition:transform .3s cubic-bezier(.4,0,.2,1);position:absolute;top:.25rem;left:.25rem}.role-slider.admin-active{background:#a855f733;border:1px solid #a855f74d;transform:translate(100%)}.role-label{z-index:1;color:var(--text-secondary);flex:1;justify-content:center;align-items:center;gap:.25rem;padding:.25rem .5rem;font-size:.75rem;font-weight:600;transition:color .3s;display:flex}.role-label.active-text{color:var(--text-primary)}.role-label.admin-glow{color:var(--accent-purple);text-shadow:0 0 8px #a855f780}.profile-avatar{color:var(--text-secondary);background:#ffffff0d;border-radius:50%;justify-content:center;align-items:center;padding:.4rem;display:flex}.mobile-nav{border-top:1px solid var(--border-color);flex-direction:column;gap:.5rem;margin-top:1rem;padding-top:1rem;display:flex}.mobile-nav-btn{color:var(--text-secondary);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:8px;align-items:center;gap:1rem;padding:.75rem 1rem;font-family:inherit;font-size:1rem;font-weight:500;display:flex}.mobile-nav-btn.active{color:var(--text-primary);background:#ffffff1a}@media (width<=768px){.desktop-nav{display:none}.mobile-menu-btn{display:block}.role-toggle{width:90px}.role-label span{display:none}}.dashboard-layout{gap:var(--spacing-lg);flex-direction:column;display:flex}.summary-cards-grid{gap:var(--spacing-lg);grid-template-columns:repeat(auto-fit,minmax(300px,1fr));display:grid}.summary-card{flex-direction:column;gap:.5rem;display:flex}.card-header{justify-content:space-between;align-items:center;display:flex}.card-title{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;font-size:.9rem;font-weight:500}.icon-wrapper{border-radius:50%;justify-content:center;align-items:center;padding:.5rem;display:flex}.icon-wrapper.purple{color:var(--accent-purple);background:#a855f726}.icon-wrapper.green{color:var(--accent-green);background:#22c55e26}.icon-wrapper.red{color:var(--accent-red);background:#ef444426}.icon-wrapper.blue{color:var(--accent-blue);background:#3b82f626}.card-amount{background:linear-gradient(90deg,#fff,#cbd5e1);-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin:0;font-size:2.25rem;font-weight:700}.balance-card .card-amount{background:linear-gradient(90deg, #fff, var(--accent-purple));-webkit-text-fill-color:transparent;-webkit-background-clip:text}.empty-state-text{color:var(--text-secondary);margin:0;font-size:.85rem;font-style:italic}.dashboard-charts-grid{gap:var(--spacing-lg);grid-template-columns:2fr 1fr;display:grid}.chart-card{flex-direction:column;min-height:350px;display:flex}.chart-header{margin-bottom:1rem}.chart-header h3{color:var(--text-primary);margin:0;font-size:1.1rem}.chart-container{flex:1;width:100%;min-height:250px;position:relative}.insights-list{flex-direction:column;gap:1rem;display:flex}.insight-item{border:1px solid var(--border-color);border-radius:var(--radius-md);background:#0f172a80;flex-direction:column;gap:.5rem;padding:1rem;display:flex}.insight-header{color:var(--text-secondary);align-items:center;gap:.5rem;font-size:.9rem;display:flex}.insight-value{color:var(--text-primary);font-size:1.25rem;font-weight:600}.insight-value.positive{color:var(--accent-green)}.insight-value.negative{color:var(--accent-red)}@media (width<=900px){.dashboard-charts-grid{grid-template-columns:1fr}}.transactions-layout{gap:var(--spacing-md);flex-direction:column;display:flex}.transactions-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.transactions-header h2{align-items:center;gap:.5rem;margin:0;display:flex}.actions-group{gap:.5rem;display:flex}.filters-bar{border-radius:var(--radius-md);border:1px solid var(--border-color);background:#1e293b66;flex-wrap:wrap;gap:1rem;padding:1rem;display:flex}.filter-group{border:1px solid var(--border-color);background:#0f172a99;border-radius:8px;flex:1;align-items:center;min-width:200px;padding:0 .5rem;display:flex}.filter-group input,.filter-group select{color:var(--text-primary);background:0 0;border:none;outline:none;width:100%;padding:.6rem;font-family:inherit}.filter-group select option{background:var(--bg-primary)}.transactions-table-container{border-radius:var(--radius-md);border:1px solid var(--border-color);overflow-x:auto}.transactions-list{border-collapse:collapse;text-align:left;width:100%}.transactions-list th{color:var(--text-secondary);text-transform:uppercase;border-bottom:1px solid var(--border-color);background:#1e293bcc;padding:1rem;font-size:.85rem;font-weight:600}.transactions-list td{border-bottom:1px solid #ffffff0d;padding:1rem;font-size:.95rem}.transactions-list tbody tr:hover{background:#ffffff05}.badge{border-radius:12px;padding:.25rem .6rem;font-size:.75rem;font-weight:600;display:inline-block}.badge.income{color:var(--accent-green);background:#22c55e26}.badge.expense{color:var(--accent-red);background:#ef444426}.transaction-actions{gap:.5rem;display:flex}.action-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:.25rem;transition:all .2s}.action-btn:hover{color:var(--text-primary);background:#ffffff1a}.action-btn.delete:hover{color:var(--accent-red);background:#ef44441a}.empty-state{color:var(--text-secondary);text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:4rem 2rem;display:flex}.empty-state svg{opacity:.5;margin-bottom:1rem}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{background:var(--bg-card-hover);border:1px solid var(--border-color);border-radius:var(--radius-lg);width:90%;max-width:500px;padding:2rem;box-shadow:0 25px 50px -12px #00000080}.form-group{margin-bottom:1rem}.form-group label{color:var(--text-secondary);margin-bottom:.5rem;font-size:.9rem;display:block}.modal-actions{justify-content:flex-end;gap:1rem;margin-top:2rem;display:flex}
