.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border:none;border-radius:.375rem;font-weight:600;cursor:pointer;transition:all .15s ease-in-out;font-family:inherit;white-space:nowrap}.btn-small{padding:.375rem .75rem;font-size:.75rem}.btn-medium{padding:.5rem 1rem;font-size:.8125rem}.btn-large{padding:.75rem 1.5rem;font-size:.875rem}.btn-primary{background:#2563eb;color:white}.btn-primary:hover:not(.btn-disabled){background:#1d4ed8}.btn-secondary{background:#f3f4f6;color:#374151}.btn-secondary:hover:not(.btn-disabled){background:#e5e7eb}.btn-outline{background:transparent;border:1px solid #e5e7eb;color:#374151}.btn-outline:hover:not(.btn-disabled){background:#f9fafb;border-color:#d1d5db}.btn-danger{background:#ef4444;color:white}.btn-danger:hover:not(.btn-disabled){background:#dc2626}.btn-success{background:#10b981;color:white}.btn-success:hover:not(.btn-disabled){background:#059669}.btn-disabled{opacity:.5;cursor:not-allowed}.btn-full-width{width:100%}.btn-icon,.btn-spinner{width:16px;height:16px}.btn-spinner{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem}.loading-small{padding:1rem}.loading-medium{padding:2rem}.loading-large{padding:4rem}.loading-spinner{width:32px;height:32px;color:#2563eb;animation:spin 1s linear infinite}.loading-message{margin-top:.75rem;font-size:.8125rem;color:#6b7280}.loading-progress-container{margin-top:1rem;width:100%;max-width:300px;display:flex;flex-direction:column;align-items:center;gap:.5rem}.loading-progress-bar{width:100%;height:8px;background:#e5e7eb;border-radius:4px;overflow:hidden;position:relative}.loading-progress-fill{height:100%;background:linear-gradient(90deg,#2563eb,#3b82f6);border-radius:4px;transition:width .3s ease-out;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.8}}.loading-progress-text{font-size:.75rem;color:#6b7280;font-weight:600}.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.4);display:flex;align-items:center;justify-content:center;z-index:1050;padding:1rem;animation:fadeIn .2s ease-in-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:white;border-radius:.5rem;box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04);max-height:90vh;display:flex;flex-direction:column;animation:slideUp .2s ease-out}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-small{width:100%;max-width:400px}.modal-medium{width:100%;max-width:600px}.modal-large{width:100%;max-width:800px}.modal-xlarge{width:100%;max-width:1200px}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid #f3f4f6;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:.5rem .5rem 0 0}.modal-title{font-size:1rem;font-weight:700;color:#ffffff}.modal-close-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;color:#ffffff!important;border-radius:.375rem;cursor:pointer;transition:all .15s ease-in-out;flex-shrink:0}.modal-close-btn svg{width:28px;height:28px;stroke-width:2.5;color:inherit}.modal-close-btn:hover{background:rgba(255,255,255,.2);color:#ffffff!important}.modal-close-btn:focus{outline:2px solid #3b82f6;outline-offset:2px}.modal-body{padding:1.5rem;overflow-y:auto;flex:1 1}.metric-card{background:white;border:1px solid #f3f4f6;border-left:3px solid #2563eb;border-radius:.5rem;padding:1.25rem;transition:all .15s ease-in-out}.metric-card-clickable{cursor:pointer}.metric-card-clickable:hover{box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);border-color:#e5e7eb}.metric-card-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:.875rem}.metric-card-title-row{display:flex;align-items:center;gap:.375rem}.metric-card-title{font-size:.8125rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.025em}.metric-card-tooltip{color:#9ca3af;cursor:help}.metric-card-tooltip svg{width:14px;height:14px}.metric-card-icon{width:36px;height:36px;border-radius:.5rem;background:#f3f4f6;display:flex;align-items:center;justify-content:center}.metric-card-icon svg{width:20px;height:20px}.metric-card-body{display:flex;flex-direction:column;gap:.375rem}.metric-card-value{font-size:1.75rem;font-weight:700;color:#111827;line-height:1.2}.metric-card-trend{display:flex;align-items:center;gap:.25rem;font-size:.75rem;font-weight:600}.metric-card-trend-up{color:#10b981}.metric-card-trend-down{color:#ef4444}.metric-card-trend-neutral{color:#6b7280}.metric-card-trend-icon{font-size:1rem}.metric-card-subtitle{font-size:.8125rem;color:#6b7280}.metric-card-content{margin-top:.5rem}