.client-portal{display:flex;min-height:100vh;background-color:#f7fafc}.sidebar{width:250px;background-color:#1f2937;color:white;padding:1.5rem;display:flex;flex-direction:column}.sidebar-header{margin-bottom:2rem}.sidebar-title{font-size:1.5rem;font-weight:700;margin-bottom:.5rem}.sidebar-subtitle{font-size:.875rem;color:#9ca3af}.nav-list{list-style:none;padding:0;margin:0}.nav-item{margin-bottom:.5rem}.nav-link{display:flex;align-items:center;padding:.75rem;border-radius:.5rem;color:#d1d5db;text-decoration:none;transition:all .2s}.nav-link:hover{background-color:#374151;color:white}.nav-link.active{background-color:#7c3aed;color:white}.nav-icon{margin-right:.75rem;width:20px;height:20px}.main-content{flex:1 1;display:flex;flex-direction:column;overflow-x:hidden}.top-bar{background-color:white;border-bottom:1px solid #e5e7eb;padding:1rem 2rem;display:flex;justify-content:space-between;align-items:center;box-shadow:0 1px 3px rgba(0,0,0,.1)}.search-bar{flex:1 1;max-width:400px}.search-input{width:100%;padding:.5rem 1rem;border:1px solid #d1d5db;border-radius:.5rem;font-size:.875rem}.user-menu{display:flex;align-items:center;gap:1rem}.notification-btn,.theme-toggle{background:none;border:none;cursor:pointer;padding:.5rem;border-radius:.5rem;transition:background-color .2s}.notification-btn:hover,.theme-toggle:hover{background-color:#f3f4f6}.content{padding:2rem;background-color:#f9fafb;flex:1 1}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));grid-gap:1.5rem;gap:1.5rem;margin-bottom:2rem}.stat-card{background:white;padding:1.5rem;border-radius:.75rem;box-shadow:0 1px 3px rgba(0,0,0,.1);transition:transform .2s,box-shadow .2s}.stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 6px rgba(0,0,0,.15)}.stat-label{font-size:.875rem;color:#6b7280;margin-bottom:.5rem}.stat-value{font-size:2rem;font-weight:700;color:#1f2937}.stat-change{font-size:.75rem;margin-top:.5rem}.stat-change.positive{color:#10b981}.stat-change.negative{color:#ef4444}.data-table{width:100%;background:white;border-radius:.75rem;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,.1)}.table-header{padding:1rem 1.5rem;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;align-items:center}.table-title{font-size:1.125rem;font-weight:600;color:#1f2937}.table-actions{display:flex;gap:.5rem}table{width:100%;border-collapse:collapse}thead{background-color:#f9fafb;border-bottom:1px solid #e5e7eb}th{padding:.75rem 1.5rem;text-align:left;font-size:.75rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.05em}tbody tr{border-bottom:1px solid #f3f4f6;transition:background-color .2s}tbody tr:hover{background-color:#f9fafb}td{padding:1rem 1.5rem;color:#374151}.btn,td{font-size:.875rem}.btn{padding:.5rem 1rem;border-radius:.5rem;font-weight:500;cursor:pointer;transition:all .2s;border:none;display:inline-flex;align-items:center;gap:.5rem}.btn-primary{background-color:#7c3aed;color:white}.btn-primary:hover{background-color:#6d28d9}.btn-secondary{background-color:#f3f4f6;color:#374151;border:1px solid #d1d5db}.btn-secondary:hover{background-color:#e5e7eb}.btn-danger{background-color:#ef4444;color:white}.btn-danger:hover{background-color:#dc2626}.btn-success{background-color:#10b981;color:white}.btn-success:hover{background-color:#059669}.form-group{margin-bottom:1.5rem}.form-label{display:block;margin-bottom:.5rem;font-size:.875rem;font-weight:500;color:#374151}.form-input,.form-select,.form-textarea{width:100%;padding:.5rem .75rem;border:1px solid #d1d5db;border-radius:.5rem;font-size:.875rem;transition:border-color .2s}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:#7c3aed;box-shadow:0 0 0 3px rgba(124,58,237,.1)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:white;border-radius:.75rem;max-width:500px;width:90%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 25px -5px rgba(0,0,0,.1)}.modal-header{padding:1.5rem;border-bottom:1px solid #e5e7eb}.modal-title{font-size:1.25rem;font-weight:600;color:#1f2937}.modal-body,.modal-footer{padding:1.5rem}.modal-footer{border-top:1px solid #e5e7eb;display:flex;justify-content:flex-end;gap:.75rem}.chart-container{background:white;padding:1.5rem;border-radius:.75rem;box-shadow:0 1px 3px rgba(0,0,0,.1)}.chart-header{margin-bottom:1.5rem}.chart-title{font-size:1.125rem;font-weight:600;color:#1f2937}.loading-skeleton{background:linear-gradient(90deg,#f3f4f6 25%,#e5e7eb 50%,#f3f4f6 75%);background-size:200% 100%;animation:loading 1.5s infinite;border-radius:.25rem}@keyframes loading{0%{background-position:200% 0}to{background-position:-200% 0}}.spinner-container{display:flex;justify-content:center;align-items:center;padding:2rem}.dark-mode{background-color:#111827}.dark-mode .sidebar{background-color:#0f172a}.dark-mode .main-content{background-color:#111827}.dark-mode .top-bar{background-color:#1f2937;border-color:#374151}.dark-mode .content{background-color:#111827}.dark-mode .chart-container,.dark-mode .data-table,.dark-mode .modal,.dark-mode .stat-card{background-color:#1f2937}.dark-mode .stat-label,.dark-mode th{color:#9ca3af}.dark-mode .chart-title,.dark-mode .modal-title,.dark-mode .stat-value,.dark-mode .table-title{color:#f3f4f6}.dark-mode .form-label,.dark-mode td{color:#d1d5db}.dark-mode .form-input,.dark-mode .form-select,.dark-mode .form-textarea{background-color:#374151;border-color:#4b5563;color:#f3f4f6}.dark-mode tbody tr:hover{background-color:#374151}@media (max-width:768px){.sidebar{width:0;position:fixed;z-index:999;transition:width .3s}.sidebar.open{width:250px}.dashboard-grid{grid-template-columns:1fr}.content,.top-bar{padding:1rem}}.text-center{text-align:center}.text-right{text-align:right}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}