*{margin:0;padding:0;box-sizing:border-box}:root{--primary: #1e293b;--primary-light: #334155;--primary-dark: #0f172a;--secondary: #64748b;--accent: #3b82f6;--success: #10b981;--success-light: #d1fae5;--danger: #ef4444;--danger-light: #fee2e2;--warning: #f59e0b;--warning-light: #fef3c7;--info: #3b82f6;--info-light: #dbeafe;--white: #ffffff;--gray-50: #f9fafb;--gray-100: #f3f4f6;--gray-200: #e5e7eb;--gray-300: #d1d5db;--gray-400: #9ca3af;--gray-500: #6b7280;--gray-600: #4b5563;--gray-700: #374151;--gray-800: #1f2937;--gray-900: #111827;--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 10px 10px -5px rgba(0, 0, 0, .04);--sidebar-width: 260px;--sidebar-collapsed-width: 80px;--header-height: 70px;--transition-fast: .15s ease-in-out;--transition-base: .25s ease-in-out;--transition-slow: .35s ease-in-out}body{font-family:var(--font-family);font-size:var(--font-size-base);color:var(--gray-900);background-color:var(--gray-50);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.sidebar{position:fixed;left:0;top:0;bottom:0;width:var(--sidebar-width);background:var(--white);border-right:1px solid var(--gray-200);display:flex;flex-direction:column;transition:width var(--transition-base);z-index:1000}.sidebar-header{height:var(--header-height);padding:var(--spacing-lg);border-bottom:1px solid var(--gray-200);display:flex;align-items:center;justify-content:space-between}.logo{display:flex;align-items:center;gap:var(--spacing-md);font-weight:700;font-size:var(--font-size-xl);color:var(--primary)}.logo .material-icons{font-size:2rem;color:var(--accent)}.sidebar-toggle{display:flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;color:var(--gray-600);padding:var(--spacing-sm);border-radius:var(--radius-md);transition:all var(--transition-fast)}.sidebar-toggle:hover{background:var(--gray-100);color:var(--primary)}.sidebar.collapsed{width:var(--sidebar-collapsed-width)}.sidebar.collapsed .nav-text,.sidebar.collapsed .user-details,.sidebar.collapsed .logo span:not(.material-icons){display:none}.sidebar.collapsed .sidebar-header{justify-content:center;padding:var(--spacing-md);position:relative}.sidebar.collapsed .logo{display:none}.sidebar.collapsed .sidebar-header{justify-content:center;padding:var(--spacing-md);height:auto;border-bottom:none;margin-bottom:var(--spacing-md)}.sidebar.collapsed .sidebar-toggle{position:static;margin:0 auto;width:40px;height:40px;background:var(--gray-100);color:var(--primary)}.sidebar.collapsed .sidebar-toggle:hover{background:var(--accent);color:var(--white)}.sidebar.collapsed .nav-item{justify-content:center;padding:var(--spacing-md)}.sidebar.collapsed .nav-item .material-icons{margin:0;font-size:1.5rem}.sidebar.collapsed~.main-content{margin-left:var(--sidebar-collapsed-width)}.sidebar-nav{flex:1;padding:var(--spacing-lg);overflow-y:auto}.nav-item{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);margin-bottom:var(--spacing-xs);color:var(--gray-600);text-decoration:none;border-radius:var(--radius-md);transition:all var(--transition-fast);font-weight:500}.nav-item:hover{background:var(--gray-50);color:var(--primary)}.nav-item.active{background:var(--accent);color:var(--white)}.nav-item .material-icons{font-size:1.25rem}.sidebar-footer{padding:var(--spacing-lg);border-top:1px solid var(--gray-200)}.user-info{display:flex;align-items:center;gap:var(--spacing-md)}.user-avatar .material-icons{font-size:2.5rem;color:var(--gray-400)}.user-details{flex:1}.user-name{font-weight:600;color:var(--gray-900);font-size:var(--font-size-sm)}.user-role{font-size:var(--font-size-xs);color:var(--gray-500)}.btn-logout{background:none;border:none;color:var(--gray-500);cursor:pointer;padding:var(--spacing-sm);border-radius:var(--radius-md);transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center}.btn-logout:hover{color:var(--danger);background:var(--danger-light)}.main-content{margin-left:var(--sidebar-width);min-height:100vh;padding:var(--spacing-2xl);transition:margin-left var(--transition-base)}.page{display:none;animation:fadeIn var(--transition-base)}.page.active{display:block}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-2xl)}.page-header h2{font-size:var(--font-size-3xl);font-weight:700;color:var(--gray-900);margin-bottom:var(--spacing-xs)}.page-subtitle{font-size:var(--font-size-base);color:var(--gray-500)}.header-actions{display:flex;gap:var(--spacing-md);align-items:center}.metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-lg);margin-bottom:var(--spacing-2xl)}.metric-card{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-lg);padding:var(--spacing-xl);transition:all var(--transition-base)}.metric-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.metric-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg)}.metric-icon{width:48px;height:48px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center}.metric-icon.revenue{background:var(--success-light);color:var(--success)}.metric-icon.expense{background:var(--danger-light);color:var(--danger)}.metric-icon.profit{background:var(--info-light);color:var(--info)}.metric-icon.balance{background:var(--warning-light);color:var(--warning)}.metric-change{font-size:var(--font-size-sm);font-weight:600;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm)}.metric-change.positive{color:var(--success);background:var(--success-light)}.metric-change.negative{color:var(--danger);background:var(--danger-light)}.metric-badge{font-size:var(--font-size-sm);font-weight:600;color:var(--gray-600);background:var(--gray-100);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm)}.metric-label{font-size:var(--font-size-sm);color:var(--gray-500);font-weight:500;text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--spacing-xs)}.metric-value{font-size:var(--font-size-3xl);font-weight:700;color:var(--gray-900)}.content-grid{display:grid;grid-template-columns:2fr 1fr;gap:var(--spacing-lg);margin-bottom:var(--spacing-2xl)}.card{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-lg);overflow:hidden}.card-header{padding:var(--spacing-xl);border-bottom:1px solid var(--gray-200);display:flex;justify-content:space-between;align-items:center}.card-header h3{font-size:var(--font-size-lg);font-weight:600;color:var(--gray-900)}.card-body{padding:var(--spacing-xl)}.chart-legend{display:flex;gap:var(--spacing-lg)}.legend-item{display:flex;align-items:center;gap:var(--spacing-sm);font-size:var(--font-size-sm);color:var(--gray-600)}.legend-dot{width:12px;height:12px;border-radius:50%}.legend-dot.revenue{background:var(--success)}.legend-dot.expense{background:var(--danger)}.transaction-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.transaction-item{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);border-radius:var(--radius-md);transition:background var(--transition-fast)}.transaction-item:hover{background:var(--gray-50)}.transaction-icon{width:40px;height:40px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;flex-shrink:0}.transaction-icon.revenue{background:var(--success-light);color:var(--success)}.transaction-icon.expense{background:var(--danger-light);color:var(--danger)}.transaction-details{flex:1}.transaction-title{font-weight:500;color:var(--gray-900);font-size:var(--font-size-sm)}.transaction-date{font-size:var(--font-size-xs);color:var(--gray-500)}.transaction-amount{font-weight:600;font-size:var(--font-size-base)}.transaction-amount.revenue{color:var(--success)}.transaction-amount.expense{color:var(--danger)}.data-table-container{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-lg);overflow:hidden}.table-toolbar{padding:var(--spacing-lg);border-bottom:1px solid var(--gray-200);display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-md)}.search-box{display:flex;align-items:center;gap:var(--spacing-sm);background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius-md);padding:var(--spacing-sm) var(--spacing-md);flex:1;max-width:400px}.search-box .material-icons{color:var(--gray-400);font-size:1.25rem}.search-box input{border:none;background:none;outline:none;flex:1;font-family:var(--font-family);font-size:var(--font-size-sm);color:var(--gray-900)}.table-actions,.filter-group{display:flex;gap:var(--spacing-sm)}.data-table{width:100%;border-collapse:collapse}.data-table thead{background:var(--gray-50)}.data-table th{padding:var(--spacing-md) var(--spacing-lg);text-align:left;font-weight:600;font-size:var(--font-size-xs);color:var(--gray-600);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--gray-200)}.data-table td{padding:var(--spacing-lg);border-bottom:1px solid var(--gray-200);font-size:var(--font-size-sm);color:var(--gray-700)}.data-table tbody tr{transition:background var(--transition-fast)}.data-table tbody tr:hover{background:var(--gray-50)}.badge{display:inline-flex;align-items:center;padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em}.badge.success{background:var(--success-light);color:var(--success)}.badge.danger{background:var(--danger-light);color:var(--danger)}.badge.warning{background:var(--warning-light);color:var(--warning)}.badge.info{background:var(--info-light);color:var(--info)}.btn{display:inline-flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);border:none;border-radius:var(--radius-md);font-family:var(--font-family);font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:all var(--transition-fast);text-decoration:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);color:var(--white)}.btn-primary:hover:not(:disabled){background:#2563eb;box-shadow:var(--shadow-md)}.btn-secondary{background:var(--white);color:var(--gray-700);border:1px solid var(--gray-300)}.btn-secondary:hover:not(:disabled){background:var(--gray-50);border-color:var(--gray-400)}.btn-success{background:var(--success);color:var(--white)}.btn-success:hover:not(:disabled){background:#059669}.btn-danger{background:var(--danger);color:var(--white)}.btn-danger:hover:not(:disabled){background:#dc2626}.btn-icon{padding:var(--spacing-sm);background:var(--white);border:1px solid var(--gray-300)}.btn-icon:hover:not(:disabled){background:var(--gray-50)}.btn .material-icons{font-size:1.125rem}.form-group{margin-bottom:var(--spacing-lg)}.form-label{display:block;font-weight:500;font-size:var(--font-size-sm);color:var(--gray-700);margin-bottom:var(--spacing-sm)}.form-label.required:after{content:"*";color:var(--danger);margin-left:var(--spacing-xs)}.form-control{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--gray-300);border-radius:var(--radius-md);font-family:var(--font-family);font-size:var(--font-size-sm);color:var(--gray-900);transition:all var(--transition-fast)}.form-control:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #3b82f61a}.form-control:disabled{background:var(--gray-100);cursor:not-allowed}select.form-control,.period-select{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--gray-300);border-radius:var(--radius-md);font-family:var(--font-family);font-size:var(--font-size-sm);color:var(--gray-700);background:var(--white);cursor:pointer;transition:all var(--transition-fast)}select.form-control:focus,.period-select:focus{outline:none;border-color:var(--accent)}textarea.form-control{min-height:100px;resize:vertical}.report-container{display:flex;flex-direction:column;gap:var(--spacing-2xl)}.report-section{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-lg);padding:var(--spacing-2xl)}.report-title{font-size:var(--font-size-2xl);font-weight:700;color:var(--gray-900);margin-bottom:var(--spacing-xl);padding-bottom:var(--spacing-md);border-bottom:2px solid var(--gray-200)}.report-card{border:1px solid var(--gray-200);border-radius:var(--radius-md);overflow:hidden}.report-row{display:grid;grid-template-columns:2fr 1fr 1fr;padding:var(--spacing-md) var(--spacing-lg);gap:var(--spacing-md);align-items:center}.report-row.header{background:var(--gray-50);font-weight:600;font-size:var(--font-size-xs);color:var(--gray-600);text-transform:uppercase;letter-spacing:.05em;border-bottom:2px solid var(--gray-300)}.report-row.subtitle{background:var(--gray-50);font-weight:600;font-size:var(--font-size-sm);color:var(--gray-900);border-top:1px solid var(--gray-200)}.report-row.detail{padding-left:var(--spacing-2xl);font-size:var(--font-size-sm);color:var(--gray-600)}.report-row.total{background:var(--primary);color:var(--white);font-weight:700;font-size:var(--font-size-lg);border-top:2px solid var(--primary-dark)}.report-group{border-bottom:1px solid var(--gray-200)}.report-group:last-child{border-bottom:none}.amount{text-align:right;font-weight:600;font-variant-numeric:tabular-nums}.amount.positive{color:var(--success)}.amount.negative{color:var(--danger)}.amount.profit{color:var(--white)}.report-charts{grid-template-columns:repeat(2,1fr)}.link{color:var(--accent);text-decoration:none;font-size:var(--font-size-sm);font-weight:500;transition:color var(--transition-fast)}.link:hover{color:#2563eb;text-decoration:underline}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:2000;animation:fadeIn var(--transition-base);padding:var(--spacing-lg)}.modal{background:var(--white);border-radius:var(--radius-lg);max-width:600px;width:100%;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow-xl);animation:slideUp var(--transition-base)}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-header{padding:var(--spacing-xl);border-bottom:1px solid var(--gray-200);display:flex;justify-content:space-between;align-items:center}.modal-title{font-size:var(--font-size-xl);font-weight:600;color:var(--gray-900)}.modal-close{background:none;border:none;cursor:pointer;color:var(--gray-400);padding:var(--spacing-sm);border-radius:var(--radius-md);transition:all var(--transition-fast)}.modal-close:hover{background:var(--gray-100);color:var(--gray-600)}.modal-body{padding:var(--spacing-xl);overflow-y:auto;flex:1}.modal-footer{padding:var(--spacing-xl);border-top:1px solid var(--gray-200);display:flex;justify-content:flex-end;gap:var(--spacing-md)}@media (max-width: 1024px){.content-grid,.report-charts{grid-template-columns:1fr}}@media (max-width: 768px){.sidebar{transform:translate(-100%)}.sidebar.open{transform:translate(0)}.sidebar-toggle{display:block}.main-content{margin-left:0;padding:var(--spacing-lg)}.page-header{flex-direction:column;gap:var(--spacing-lg)}.header-actions{width:100%;flex-direction:column}.metrics-grid{grid-template-columns:1fr}.table-toolbar{flex-direction:column;align-items:stretch}.search-box{max-width:100%}.data-table{font-size:var(--font-size-xs)}.data-table th,.data-table td{padding:var(--spacing-sm)}.report-row{grid-template-columns:1fr;gap:var(--spacing-xs)}.amount{text-align:left}}.text-center{text-align:center}.text-right{text-align:right}.mt-1{margin-top:var(--spacing-sm)}.mt-2{margin-top:var(--spacing-md)}.mt-3{margin-top:var(--spacing-lg)}.mt-4{margin-top:var(--spacing-xl)}.mb-1{margin-bottom:var(--spacing-sm)}.mb-2{margin-bottom:var(--spacing-md)}.mb-3{margin-bottom:var(--spacing-lg)}.mb-4{margin-bottom:var(--spacing-xl)}.hidden{display:none!important}.loading{opacity:.6;pointer-events:none}
