:root{--primary-color:#004459;--primary-light:#20778d;--primary-dark:#003342;--secondary-color:#34495e;--accent-color:#3498db;--success-color:#27ae60;--warning-color:#f39c12;--danger-color:#e74c3c;--info-color:#17a2b8;--light-bg:#ecf0f1;--white:#fff;--gray-100:#f8f9fa;--gray-200:#e9ecef;--gray-300:#dee2e6;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#495057;--gray-800:#343a40;--gray-900:#212529;--card-shadow:0 2px 10px rgba(0,68,89,.1);--card-shadow-hover:0 5px 20px rgba(0,68,89,.15);--navbar-shadow:0 2px 5px rgba(0,68,89,.1);--transition-fast:0.2s ease;--transition-normal:0.3s ease;--transition-slow:0.5s ease;--navbar-height:60px;--sidebar-width:250px;--sidebar-collapsed-width:70px;--border-radius-sm:5px;--border-radius-md:8px;--border-radius-lg:10px;--border-radius-xl:15px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background-color:var(--light-bg);overflow-x:hidden;color:var(--gray-700);line-height:1.6}h1,h2,h3,h4,h5,h6{color:var(--primary-color);font-weight:600;margin-bottom:1rem}h1{font-size:2.5rem}h2{font-size:2rem}h3{font-size:1.75rem}h4{font-size:1.5rem}h5{font-size:1.25rem}h6{font-size:1rem}p{margin-bottom:1rem;color:var(--gray-600)}a{color:var(--accent-color);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--primary-color)}.btn{padding:10px 20px;border:none;border-radius:var(--border-radius-sm);font-weight:500;cursor:pointer;transition:all var(--transition-normal);display:inline-flex;align-items:center;gap:8px;text-decoration:none}.btn-primary{background-color:var(--primary-color);color:var(--white)}.btn-primary:hover{background-color:var(--primary-light);transform:translateY(-2px);box-shadow:0 5px 15px rgba(0,68,89,.3)}.page-header .header-actions .btn.btn-primary{font-size:1.08rem}.btn-secondary{background-color:var(--gray-500);color:var(--white)}.btn-success{background-color:var(--success-color);color:var(--white)}.btn-warning{background-color:var(--warning-color);color:var(--white)}.btn-danger{background-color:var(--danger-color);color:var(--white)}.btn-outline-primary{background-color:transparent;color:var(--primary-color);border:1px solid var(--primary-color)}.btn-outline-primary:hover{background-color:var(--primary-color);color:var(--white)}.btn-sm{padding:6px 12px;font-size:.875rem}.btn-lg{padding:12px 24px;font-size:1.125rem}.form-control{width:100%;padding:10px 12px;border:1px solid var(--gray-300);border-radius:var(--border-radius-sm);font-size:1rem;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.form-control:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px rgba(0,68,89,.2)}.form-label{display:block;margin-bottom:5px;color:var(--gray-700);font-weight:500}.form-select{width:100%;padding:10px 12px;border:1px solid var(--gray-300);border-radius:var(--border-radius-sm);background-color:var(--white);cursor:pointer}.input-group{display:flex;align-items:stretch}.input-group-text{padding:10px 12px;background-color:var(--gray-100);border:1px solid var(--gray-300);border-right:none;border-radius:var(--border-radius-sm) 0 0 var(--border-radius-sm);color:var(--gray-600)}.input-group .form-control{border-left:none;border-radius:0 var(--border-radius-sm) var(--border-radius-sm) 0}.card{background:var(--white);border-radius:var(--border-radius-lg);padding:20px;box-shadow:var(--card-shadow);margin-bottom:20px;transition:transform var(--transition-normal),box-shadow var(--transition-normal)}.card:hover{transform:translateY(-2px);box-shadow:var(--card-shadow-hover)}.card-header{padding-bottom:15px;margin-bottom:20px;border-bottom:2px solid var(--gray-100)}.card-title{color:var(--primary-color);margin-bottom:0}.badge{padding:4px 8px;border-radius:12px;font-size:.75rem;font-weight:600;color:var(--white);display:inline-block}.badge-primary{background-color:var(--primary-color)}.badge-secondary{background-color:var(--gray-500)}.badge-success{background-color:var(--success-color)}.badge-warning{background-color:var(--warning-color)}.badge-danger{background-color:var(--danger-color)}.badge-info{background-color:var(--info-color)}.table{width:100%;border-collapse:collapse;margin-bottom:1rem}.table td,.table th{padding:12px;text-align:left;border-bottom:1px solid var(--gray-200)}.table th{background-color:var(--primary-color);color:var(--white);font-weight:600}.table tbody tr:hover{background-color:var(--gray-100)}.table-responsive{overflow-x:auto;border-radius:var(--border-radius-lg);box-shadow:var(--card-shadow)}.progress{height:8px;background-color:var(--gray-200);border-radius:4px;overflow:hidden}.progress-bar{height:100%;background-color:var(--primary-color);transition:width var(--transition-normal)}.fade-enter-active,.fade-leave-active{transition:opacity var(--transition-normal)}.fade-enter-from,.fade-leave-to{opacity:0}.slide-fade-enter-active{transition:all var(--transition-normal) ease-out}.slide-fade-leave-active{transition:all var(--transition-normal) cubic-bezier(1,.5,.8,1)}.slide-fade-enter-from,.slide-fade-leave-to{transform:translateX(20px);opacity:0}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.d-flex{display:flex}.d-block{display:block}.d-none{display:none}.justify-content-center{justify-content:center}.justify-content-between{justify-content:space-between}.justify-content-end{justify-content:flex-end}.align-items-center{align-items:center}.align-items-start{align-items:flex-start}.w-100{width:100%}.h-100{height:100%}.m-0{margin:0}.m-1{margin:.25rem}.m-2{margin:.5rem}.m-3{margin:1rem}.m-4{margin:1.5rem}.m-5{margin:3rem}.p-0{padding:0}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:1rem}.p-4{padding:1.5rem}.p-5{padding:3rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:1rem}.mt-4{margin-top:1.5rem}.mt-5{margin-top:3rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:1rem}.mb-4{margin-bottom:1.5rem}.mb-5{margin-bottom:3rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:1rem}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:1rem}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:1rem}@media (max-width:768px){:root{--sidebar-width:100%}.btn{width:100%;justify-content:center}.card{margin-bottom:15px;padding:15px}h1{font-size:2rem}h2{font-size:1.5rem}h3{font-size:1.25rem}}@media (max-width:576px){.card{padding:10px}.btn{padding:8px 16px;font-size:.875rem}}#app{min-height:100vh}