:root{--bg-dark:#0a0a0e;--text-primary:#e2e8f0;--text-secondary:#94a3b8;--text-muted:#64748b;--brand-primary:#8b5cf6;--brand-primary-hover:#7c3aed;--accent-success:#10b981;--accent-success-dim:#10b98133;--accent-error:#ef4444;--accent-error-dim:#ef444433;--accent-warning:#f59e0b;--accent-warning-dim:#f59e0b33;--glass-bg:#17171f99;--glass-border:#ffffff14;--terminal-bg:#121217;--font-sans:"Inter", system-ui, sans-serif;--font-heading:"Outfit", system-ui, sans-serif;--font-mono:"Fira Code", monospace}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-dark);color:var(--text-primary);font-family:var(--font-sans);min-height:100vh;line-height:1.5;position:relative;overflow-x:hidden}.bg-elements{z-index:-1;pointer-events:none;width:100vw;height:100vh;position:fixed;top:0;left:0;overflow:hidden}.orb{filter:blur(80px);opacity:.4;border-radius:50%;animation:20s ease-in-out infinite alternate float;position:absolute}.orb-1{background:radial-gradient(circle,#4c1d95,#0000 70%);width:50vw;height:50vw;top:-10%;left:-10%}.orb-2{background:radial-gradient(circle,#1d4ed8,#0000 70%);width:40vw;height:40vw;animation-delay:-5s;bottom:-10%;right:-10%}.orb-3{background:radial-gradient(circle,#065f46,#0000 70%);width:30vw;height:30vw;animation-delay:-10s;top:40%;left:50%;transform:translate(-50%)}@keyframes float{0%{transform:translate(0)scale(1)}to{transform:translate(5%,10%)scale(1.1)}}.app-layout{min-height:100vh;display:flex}.main-content{flex:1;max-width:calc(100vw - 250px);margin-left:250px;padding:2rem;transition:all .3s}.sidebar{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);z-index:100;background:#17171fcc;border-right:1px solid #ffffff14;flex-direction:column;width:250px;height:100vh;padding:2rem 1rem;transition:transform .3s;display:flex;position:fixed;top:0;left:0}.mobile-header,.overlay{display:none}.glass-panel{background:var(--glass-bg);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(16px);border-radius:16px;padding:1.5rem;box-shadow:0 8px 32px #0003}.glass-panel.clickable:hover{border-color:#ffffff26;transition:transform .2s,box-shadow .2s;transform:translateY(-2px);box-shadow:0 12px 40px #0000004d}.btn{font-family:var(--font-heading);cursor:pointer;border:none;border-radius:8px;outline:none;justify-content:center;align-items:center;gap:.5rem;padding:.625rem 1.25rem;font-size:.875rem;font-weight:600;transition:all .2s;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed;filter:grayscale()}.primary{background:var(--brand-primary);color:#fff;box-shadow:0 4px 14px #8b5cf663}.primary:hover:not(:disabled){background:var(--brand-primary-hover);transform:translateY(-1px);box-shadow:0 6px 20px #8b5cf663}.secondary{color:#fff;background:#ffffff1a;border:1px solid #ffffff1a}.secondary:hover:not(:disabled){background:#ffffff26;border-color:#fff3}.danger{color:var(--accent-error);background:#ef44441a;border:1px solid #ef444433}.danger:hover:not(:disabled){background:#ef444433}.input-group{flex-direction:column;gap:.375rem;margin-bottom:1rem;display:flex}.input-group label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:500}.input-group input,.input-group select{color:#fff;background:#0003;border:1px solid #ffffff1a;border-radius:8px;padding:.75rem 1rem;font-family:inherit;font-size:.875rem;transition:all .2s}.input-group select option{background:var(--bg-dark)}.input-group input:focus,.input-group select:focus{border-color:var(--brand-primary);outline:none;box-shadow:0 0 0 3px #8b5cf633}.table-container{border:1px solid var(--glass-border);-webkit-overflow-scrolling:touch;border-radius:8px;width:100%;overflow-x:auto}table{border-collapse:collapse;text-align:left;width:100%}th,td{border-bottom:1px solid var(--glass-border);padding:1rem;font-size:.875rem}th{font-family:var(--font-heading);color:var(--text-secondary);background:#ffffff0d;font-weight:500}tr:hover td{background:#ffffff08}tr:last-child td{border-bottom:none}.badge{font-size:.75rem;font-family:var(--font-mono);border-radius:4px;padding:.25rem .5rem;font-weight:600;display:inline-block}.badge.viewer{color:#cbd5e1;background:#94a3b833}.badge.analyst{color:#34d399;background:#10b98133}.badge.admin{color:#a78bfa;background:#8b5cf633}.badge.income{color:#34d399;background:#10b98133}.badge.expense{color:#f87171;background:#ef444433}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:50;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{background:var(--bg-dark);border:1px solid var(--glass-border);border-radius:12px;width:100%;max-width:500px;padding:2rem}.modal-header{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.modal-header h2{font-family:var(--font-heading);margin:0}.close-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;transition:color .2s}.close-btn:hover{color:#fff}.dashboard-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem;margin-bottom:2rem;display:grid}.charts-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem;margin-bottom:2rem;display:grid}.stat-card{flex-direction:column;gap:.5rem;display:flex}.stat-value{font-size:2rem;font-family:var(--font-heading);color:#fff;font-weight:700}.stat-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:.875rem}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.skeleton{background-color:#8b5cf60a;border:1px solid #8b5cf60d;border-radius:8px;position:relative;overflow:hidden}.skeleton:after{content:"";background:linear-gradient(90deg,#0000,#ffffff08,#ffffff14,#ffffff08,#0000);animation:2s cubic-bezier(.4,0,.2,1) infinite shimmer;position:absolute;inset:0;transform:translate(-100%)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-spin{animation:1s linear infinite spin}@media (width<=768px){.main-content{max-width:100vw;margin-left:0;padding:5rem 1rem 1rem}.sidebar{transform:translate(-100%)}.sidebar.open{transform:translate(0)}.mobile-header{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--glass-border);z-index:90;background:#17171fe6;justify-content:space-between;align-items:center;height:4rem;padding:0 1rem;display:flex;position:fixed;top:0;left:0;right:0}.overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:95;background:#00000080;display:none;position:fixed;inset:0}.overlay.show{display:block}}
