:root{--primary-color: #2563eb;--secondary-color: #10b981;--danger-color: #ef4444;--warning-color: #f59e0b;--success-color: #22c55e;--bg-primary: #ffffff;--bg-secondary: #f9fafb;--bg-card: #ffffff;--text-primary: #111827;--text-secondary: #6b7280;--border-color: #e5e7eb;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1);--sidebar-width: 260px;--header-height: 64px;--spacing-unit: 8px}[data-theme=dark]{--bg-primary: #111827;--bg-secondary: #1f2937;--bg-card: #1f2937;--text-primary: #f9fafb;--text-secondary: #d1d5db;--border-color: #374151;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .4);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .5)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;line-height:1.5;background:var(--bg-primary);color:var(--text-primary);transition:background-color .3s ease,color .3s ease}#app{min-height:100vh}.auth-container{display:flex;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(135deg,var(--primary-color) 0%,#1e40af 100%);padding:calc(var(--spacing-unit) * 2)}.auth-box{background:var(--bg-card);border-radius:16px;box-shadow:var(--shadow-lg);padding:calc(var(--spacing-unit) * 6);width:100%;max-width:440px;text-align:center}.auth-box h1{color:var(--text-primary);margin-bottom:calc(var(--spacing-unit) * 4);font-size:28px;font-weight:700}.auth-box .auth-icon{font-size:48px;color:var(--primary-color);margin-bottom:calc(var(--spacing-unit) * 2)}.auth-form{display:flex;flex-direction:column;gap:calc(var(--spacing-unit) * 3)}.form-group{text-align:left}.form-group label{display:block;margin-bottom:calc(var(--spacing-unit));color:var(--text-primary);font-weight:500;font-size:14px}.form-group input{width:100%;padding:calc(var(--spacing-unit) * 1.5);border:1px solid var(--border-color);border-radius:8px;font-size:15px;background:var(--bg-primary);color:var(--text-primary);transition:border-color .2s ease}.form-group input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #2563eb1a}.btn{padding:calc(var(--spacing-unit) * 1.5) calc(var(--spacing-unit) * 3);border-radius:8px;border:none;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;justify-content:center;gap:calc(var(--spacing-unit))}.btn-primary{background:var(--primary-color);color:#fff}.btn-primary:hover{background:#1d4ed8;transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-success{background:var(--success-color);color:#fff}.btn-success:hover{background:#16a34a}.btn-danger{background:var(--danger-color);color:#fff}.btn-danger:hover{background:#dc2626}.btn-secondary{background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover{background:var(--border-color)}.btn-sm{padding:calc(var(--spacing-unit) * .75) calc(var(--spacing-unit) * 1.5);font-size:13px}.main-app{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-width);background:var(--bg-card);border-right:1px solid var(--border-color);position:fixed;left:0;top:0;height:100vh;overflow-y:auto;transition:transform .3s ease;z-index:1000}.sidebar-header{padding:calc(var(--spacing-unit) * 3);display:flex;align-items:center;gap:calc(var(--spacing-unit) * 1.5);border-bottom:1px solid var(--border-color)}.sidebar-header i{font-size:28px;color:var(--primary-color)}.sidebar-header h2{font-size:18px;font-weight:700;color:var(--text-primary)}.nav-menu{list-style:none;padding:calc(var(--spacing-unit) * 2)}.nav-item{display:flex;align-items:center;gap:calc(var(--spacing-unit) * 1.5);padding:calc(var(--spacing-unit) * 1.5) calc(var(--spacing-unit) * 2);border-radius:8px;cursor:pointer;color:var(--text-secondary);margin-bottom:calc(var(--spacing-unit));transition:all .2s ease}.nav-item:hover{background:var(--bg-secondary);color:var(--text-primary)}.nav-item.active{background:var(--primary-color);color:#fff}.nav-item i{font-size:18px;width:20px}.main-content{flex:1;margin-left:var(--sidebar-width);display:flex;flex-direction:column}.top-bar{height:var(--header-height);background:var(--bg-card);border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between;padding:0 calc(var(--spacing-unit) * 3);position:sticky;top:0;z-index:100}.menu-toggle{display:none;background:none;border:none;font-size:24px;color:var(--text-primary);cursor:pointer}.header-right{display:flex;align-items:center;gap:calc(var(--spacing-unit) * 2)}.theme-toggle{background:none;border:none;font-size:20px;color:var(--text-primary);cursor:pointer;padding:calc(var(--spacing-unit));border-radius:8px;transition:background .2s ease}.theme-toggle:hover{background:var(--bg-secondary)}.user-profile{display:flex;align-items:center;gap:calc(var(--spacing-unit) * 1.5)}.user-profile span{font-weight:600;color:var(--text-primary)}.btn-logout{background:none;border:none;font-size:18px;color:var(--danger-color);cursor:pointer;padding:calc(var(--spacing-unit));border-radius:8px;transition:background .2s ease}.btn-logout:hover{background:#ef44441a}.content-area{padding:calc(var(--spacing-unit) * 3);flex:1;overflow-y:auto}.page-header{margin-bottom:calc(var(--spacing-unit) * 4)}.page-header h1{font-size:28px;font-weight:700;color:var(--text-primary);margin-bottom:calc(var(--spacing-unit))}.page-header p{color:var(--text-secondary);font-size:15px}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:calc(var(--spacing-unit) * 3);margin-bottom:calc(var(--spacing-unit) * 4)}.stat-card{background:var(--bg-card);border-radius:12px;padding:calc(var(--spacing-unit) * 3);box-shadow:var(--shadow-sm);border:1px solid var(--border-color);transition:transform .2s ease,box-shadow .2s ease}.stat-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.stat-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:calc(var(--spacing-unit) * 2)}.stat-title{font-size:14px;color:var(--text-secondary);font-weight:500}.stat-icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:20px}.stat-icon.blue{background:#2563eb1a;color:var(--primary-color)}.stat-icon.green{background:#22c55e1a;color:var(--success-color)}.stat-icon.orange{background:#f59e0b1a;color:var(--warning-color)}.stat-icon.red{background:#ef44441a;color:var(--danger-color)}.stat-value{font-size:32px;font-weight:700;color:var(--text-primary);margin-bottom:calc(var(--spacing-unit) * .5)}.stat-change{font-size:13px;color:var(--text-secondary)}.charts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:calc(var(--spacing-unit) * 3);margin-bottom:calc(var(--spacing-unit) * 4)}.chart-card{background:var(--bg-card);border-radius:12px;padding:calc(var(--spacing-unit) * 3);box-shadow:var(--shadow-sm);border:1px solid var(--border-color)}.chart-card h3{font-size:18px;font-weight:600;color:var(--text-primary);margin-bottom:calc(var(--spacing-unit) * 3)}.chart-container{height:300px;display:flex;align-items:center;justify-content:center}.quick-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:calc(var(--spacing-unit) * 2);margin-bottom:calc(var(--spacing-unit) * 4)}.action-btn{background:var(--bg-card);border:2px solid var(--border-color);border-radius:12px;padding:calc(var(--spacing-unit) * 3);text-align:center;cursor:pointer;transition:all .2s ease}.action-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--primary-color)}.action-btn i{font-size:32px;color:var(--primary-color);margin-bottom:calc(var(--spacing-unit) * 1.5)}.action-btn span{display:block;font-weight:600;color:var(--text-primary)}.data-table-container{background:var(--bg-card);border-radius:12px;box-shadow:var(--shadow-sm);border:1px solid var(--border-color);overflow:hidden}.table-header{padding:calc(var(--spacing-unit) * 3);border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:calc(var(--spacing-unit) * 2)}.table-header h3{font-size:18px;font-weight:600;color:var(--text-primary)}.table-controls{display:flex;gap:calc(var(--spacing-unit) * 2);flex-wrap:wrap}.search-box{position:relative}.search-box input{padding:calc(var(--spacing-unit) * 1.25) calc(var(--spacing-unit) * 5) calc(var(--spacing-unit) * 1.25) calc(var(--spacing-unit) * 2);border:1px solid var(--border-color);border-radius:8px;background:var(--bg-primary);color:var(--text-primary);font-size:14px;width:280px}.search-box i{position:absolute;right:calc(var(--spacing-unit) * 2);top:50%;transform:translateY(-50%);color:var(--text-secondary)}.filter-group{display:flex;gap:calc(var(--spacing-unit))}.filter-btn{padding:calc(var(--spacing-unit) * 1.25) calc(var(--spacing-unit) * 2);border:1px solid var(--border-color);border-radius:8px;background:var(--bg-primary);color:var(--text-secondary);font-size:14px;cursor:pointer;transition:all .2s ease}.filter-btn:hover,.filter-btn.active{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.data-table{width:100%;border-collapse:collapse;overflow-x:auto;display:block}.data-table thead{background:var(--bg-secondary);display:table;width:100%;table-layout:fixed}.data-table tbody{display:block;max-height:500px;overflow-y:auto}.data-table tbody tr{display:table;width:100%;table-layout:fixed}.data-table th,.data-table td{padding:calc(var(--spacing-unit) * 2);text-align:left;border-bottom:1px solid var(--border-color)}.data-table th{font-weight:600;font-size:13px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.data-table td{font-size:14px;color:var(--text-primary)}.data-table tbody tr:hover{background:var(--bg-secondary)}.status-badge{display:inline-block;padding:calc(var(--spacing-unit) * .5) calc(var(--spacing-unit) * 1.5);border-radius:12px;font-size:12px;font-weight:600;text-transform:uppercase}.status-badge.active,.status-badge.paid,.status-badge.approved{background:#22c55e1a;color:var(--success-color)}.status-badge.inactive{background:#6b72801a;color:var(--text-secondary)}.status-badge.overdue,.status-badge.unpaid,.status-badge.rejected{background:#ef44441a;color:var(--danger-color)}.status-badge.pending{background:#f59e0b1a;color:var(--warning-color)}.table-actions{display:flex;gap:calc(var(--spacing-unit))}.action-icon-btn{background:none;border:none;font-size:16px;cursor:pointer;padding:calc(var(--spacing-unit) * .5);border-radius:4px;transition:background .2s ease;color:var(--text-secondary)}.action-icon-btn:hover{background:var(--bg-secondary);color:var(--text-primary)}.action-icon-btn.edit:hover{color:var(--primary-color)}.action-icon-btn.delete:hover{color:var(--danger-color)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:2000;padding:calc(var(--spacing-unit) * 2)}.modal{background:var(--bg-card);border-radius:16px;box-shadow:var(--shadow-lg);width:100%;max-width:600px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column}.modal-header{padding:calc(var(--spacing-unit) * 3);border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between}.modal-header h2{font-size:20px;font-weight:600;color:var(--text-primary)}.modal-close{background:none;border:none;font-size:24px;color:var(--text-secondary);cursor:pointer;padding:calc(var(--spacing-unit));border-radius:8px;transition:background .2s ease}.modal-close:hover{background:var(--bg-secondary);color:var(--text-primary)}.modal-body{padding:calc(var(--spacing-unit) * 3);overflow-y:auto}.modal-footer{padding:calc(var(--spacing-unit) * 3);border-top:1px solid var(--border-color);display:flex;gap:calc(var(--spacing-unit) * 2);justify-content:flex-end}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:calc(var(--spacing-unit) * 3)}.form-group-full{grid-column:1 / -1}select{width:100%;padding:calc(var(--spacing-unit) * 1.5);border:1px solid var(--border-color);border-radius:8px;font-size:15px;background:var(--bg-primary);color:var(--text-primary);cursor:pointer}textarea{width:100%;padding:calc(var(--spacing-unit) * 1.5);border:1px solid var(--border-color);border-radius:8px;font-size:15px;background:var(--bg-primary);color:var(--text-primary);font-family:inherit;resize:vertical;min-height:100px}.family-tree{background:var(--bg-card);border-radius:12px;padding:calc(var(--spacing-unit) * 3);border:1px solid var(--border-color);margin-top:calc(var(--spacing-unit) * 3)}.tree-node{position:relative;padding:calc(var(--spacing-unit) * 2);margin:calc(var(--spacing-unit) * 2) 0;border-left:3px solid var(--primary-color);background:var(--bg-secondary);border-radius:8px}.tree-node.level-1{margin-left:calc(var(--spacing-unit) * 3)}.tree-node.level-2{margin-left:calc(var(--spacing-unit) * 6)}.tree-node-header{display:flex;align-items:center;justify-content:space-between}.tree-node-info{display:flex;align-items:center;gap:calc(var(--spacing-unit) * 2)}.tree-node-name{font-weight:600;color:var(--text-primary)}.tree-node-relationship{font-size:13px;color:var(--text-secondary)}.empty-state{text-align:center;padding:calc(var(--spacing-unit) * 8) calc(var(--spacing-unit) * 3)}.empty-state i{font-size:64px;color:var(--text-secondary);opacity:.5;margin-bottom:calc(var(--spacing-unit) * 2)}.empty-state h3{font-size:20px;color:var(--text-primary);margin-bottom:calc(var(--spacing-unit))}.empty-state p{color:var(--text-secondary);margin-bottom:calc(var(--spacing-unit) * 3)}.loading{display:flex;align-items:center;justify-content:center;padding:calc(var(--spacing-unit) * 6)}.spinner{border:3px solid var(--border-color);border-top:3px solid var(--primary-color);border-radius:50%;width:40px;height:40px;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.alert{padding:calc(var(--spacing-unit) * 2);border-radius:8px;margin-bottom:calc(var(--spacing-unit) * 3);display:flex;align-items:center;gap:calc(var(--spacing-unit) * 1.5)}.alert i{font-size:20px}.alert.success{background:#22c55e1a;color:var(--success-color);border:1px solid var(--success-color)}.alert.error{background:#ef44441a;color:var(--danger-color);border:1px solid var(--danger-color)}.alert.warning{background:#f59e0b1a;color:var(--warning-color);border:1px solid var(--warning-color)}@media (max-width: 1024px){.sidebar{transform:translate(-100%)}.sidebar.active{transform:translate(0)}.main-content{margin-left:0}.menu-toggle{display:block}.charts-grid{grid-template-columns:1fr}}@media (max-width: 768px){.stats-grid{grid-template-columns:1fr}.search-box input{width:100%}.table-header{flex-direction:column;align-items:flex-start}.data-table{font-size:13px}.data-table th,.data-table td{padding:calc(var(--spacing-unit))}.form-grid{grid-template-columns:1fr}}@media (max-width: 480px){:root{--sidebar-width: 100%}.content-area{padding:calc(var(--spacing-unit) * 2)}.modal{max-width:100%;margin:calc(var(--spacing-unit) * 2)}}
